Class: Liquor::Drop::Scope
- Inherits:
-
Object
- Object
- Liquor::Drop::Scope
- Includes:
- External
- Defined in:
- lib/liquor/drop/drop_scope.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#source ⇒ Object
readonly
Returns the value of attribute source.
Instance Method Summary collapse
- #[](index) ⇒ Object
- #count ⇒ Object (also: #size)
-
#each ⇒ Object
Not exported.
- #entity ⇒ Object
- #except(record) ⇒ Object
- #find_all_by(_, fields = {}) ⇒ Object
- #find_by(_, fields = {}) ⇒ Object
- #find_except_by(_, fields = {}) ⇒ Object
- #first ⇒ Object
-
#include?(elem) ⇒ Boolean
Not exported.
-
#initialize(source) ⇒ Scope
constructor
A new instance of Scope.
- #last ⇒ Object
- #limit(count) ⇒ Object
- #offset(count) ⇒ Object
- #pluck(attribute) ⇒ Object
- #reverse ⇒ Object
-
#to_a ⇒ Object
(also: #to_ary)
Not exported.
Methods included from External
Constructor Details
#initialize(source) ⇒ Scope
Returns a new instance of Scope.
7 8 9 10 11 12 13 |
# File 'lib/liquor/drop/drop_scope.rb', line 7 def initialize(source) unless source.respond_to? :each source = source.where(nil) end @source = source end |
Instance Attribute Details
#source ⇒ Object (readonly)
Returns the value of attribute source.
5 6 7 |
# File 'lib/liquor/drop/drop_scope.rb', line 5 def source @source end |
Instance Method Details
#[](index) ⇒ Object
71 72 73 |
# File 'lib/liquor/drop/drop_scope.rb', line 71 def [](index) DropDelegation.wrap_element @source[index] end |
#count ⇒ Object Also known as: size
97 98 99 |
# File 'lib/liquor/drop/drop_scope.rb', line 97 def count @source.count end |
#each ⇒ Object
Not exported. No block support in Liquor.
76 77 78 79 80 |
# File 'lib/liquor/drop/drop_scope.rb', line 76 def each @source.each do |elem| yield DropDelegation.wrap_element(elem) end end |
#entity ⇒ Object
23 24 25 |
# File 'lib/liquor/drop/drop_scope.rb', line 23 def entity @source.model_name.to_s end |
#except(record) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/liquor/drop/drop_scope.rb', line 44 def except(record) record, = Drop.unwrap_scope_arguments([ record ]) result = @source.where(@source.arel_table[:id].in(record).not) DropDelegation.wrap_scope(result) end |
#find_all_by(_, fields = {}) ⇒ Object
35 36 37 38 39 40 |
# File 'lib/liquor/drop/drop_scope.rb', line 35 def find_all_by(_, fields={}) fields, = Drop.unwrap_scope_arguments([ fields ]) result = @source.where(fields) DropDelegation.wrap_scope(result) end |
#find_by(_, fields = {}) ⇒ Object
28 29 30 31 32 33 |
# File 'lib/liquor/drop/drop_scope.rb', line 28 def find_by(_, fields={}) fields, = Drop.unwrap_scope_arguments([ fields ]) result = @source.where(fields).first DropDelegation.wrap_element result if result end |
#find_except_by(_, fields = {}) ⇒ Object
51 52 53 54 55 56 57 58 59 |
# File 'lib/liquor/drop/drop_scope.rb', line 51 def find_except_by(_, fields={}) fields, = Drop.unwrap_scope_arguments([ fields ]) result = @source. where(fields.map do |key, value| @source.arel_table[key].eq(value) end.reduce(&:and).not) DropDelegation.wrap_scope(result) end |
#first ⇒ Object
63 64 65 |
# File 'lib/liquor/drop/drop_scope.rb', line 63 def first DropDelegation.wrap_element @source.first end |
#include?(elem) ⇒ Boolean
Not exported. No ? in names in Liquor.
83 84 85 86 87 88 89 |
# File 'lib/liquor/drop/drop_scope.rb', line 83 def include?(elem) if elem.is_a? Liquor::Drop @source.include? elem.source else false end end |
#last ⇒ Object
67 68 69 |
# File 'lib/liquor/drop/drop_scope.rb', line 67 def last DropDelegation.wrap_element @source.last end |
#limit(count) ⇒ Object
104 105 106 |
# File 'lib/liquor/drop/drop_scope.rb', line 104 def limit(count) DropDelegation.wrap_scope @source.limit(count) end |
#offset(count) ⇒ Object
108 109 110 |
# File 'lib/liquor/drop/drop_scope.rb', line 108 def offset(count) DropDelegation.wrap_scope @source.offset(count) end |
#pluck(attribute) ⇒ Object
91 92 93 94 95 |
# File 'lib/liquor/drop/drop_scope.rb', line 91 def pluck(attribute) @source.map do |elem| DropDelegation.wrap_element(elem).liquor_send(attribute.to_s, []) end end |
#reverse ⇒ Object
112 113 114 |
# File 'lib/liquor/drop/drop_scope.rb', line 112 def reverse DropDelegation.wrap_scope @source.reverse_order end |
#to_a ⇒ Object Also known as: to_ary
Not exported.
16 17 18 19 20 |
# File 'lib/liquor/drop/drop_scope.rb', line 16 def to_a @source.map do |elem| DropDelegation.wrap_element(elem) end end |