Class: ActiveRepository::ResultSet
- Inherits:
-
Object
- Object
- ActiveRepository::ResultSet
- Defined in:
- lib/active_repository/result_set.rb
Instance Method Summary collapse
- #all ⇒ Object
- #any? ⇒ Boolean
- #build(attributes) ⇒ Object
- #count ⇒ Object
- #create(attributes) ⇒ Object
- #each(&block) ⇒ Object
- #empty? ⇒ Boolean
- #first ⇒ Object
- #first_or_create ⇒ Object
- #first_or_initialize ⇒ Object
-
#initialize(klass, query = {}, attributes = {}) ⇒ ResultSet
constructor
A new instance of ResultSet.
- #last ⇒ Object
- #map(&block) ⇒ Object
- #or(query) ⇒ Object
- #pluck(attribute) ⇒ Object
- #where(query) ⇒ Object (also: #and)
Constructor Details
#initialize(klass, query = {}, attributes = {}) ⇒ ResultSet
Returns a new instance of ResultSet.
3 4 5 6 7 |
# File 'lib/active_repository/result_set.rb', line 3 def initialize(klass, query={}, attributes={}) @klass = klass convert_query(query) @attributes = attributes.merge(SqlQueryExecutor::Query::Normalizers::QueryNormalizer.attributes_from_query(query)) end |
Instance Method Details
#all ⇒ Object
9 10 11 |
# File 'lib/active_repository/result_set.rb', line 9 def all @query ? get_result(@query) : @klass.all end |
#any? ⇒ Boolean
21 22 23 |
# File 'lib/active_repository/result_set.rb', line 21 def any? all.any? end |
#build(attributes) ⇒ Object
33 34 35 |
# File 'lib/active_repository/result_set.rb', line 33 def build(attributes) @klass.new(@attributes.merge(attributes)) end |
#count ⇒ Object
41 42 43 |
# File 'lib/active_repository/result_set.rb', line 41 def count all.size end |
#create(attributes) ⇒ Object
37 38 39 |
# File 'lib/active_repository/result_set.rb', line 37 def create(attributes) @klass.create(@attributes.merge(attributes)) end |
#each(&block) ⇒ Object
13 14 15 |
# File 'lib/active_repository/result_set.rb', line 13 def each(&block) all.each(&block) end |
#empty? ⇒ Boolean
17 18 19 |
# File 'lib/active_repository/result_set.rb', line 17 def empty? all.empty? end |
#first ⇒ Object
45 46 47 |
# File 'lib/active_repository/result_set.rb', line 45 def first @query ? all.first : @klass.first end |
#first_or_create ⇒ Object
55 56 57 58 59 60 61 |
# File 'lib/active_repository/result_set.rb', line 55 def first_or_create object = first_or_initialize object.new_record? ? object.save : object object.reload end |
#first_or_initialize ⇒ Object
49 50 51 52 53 |
# File 'lib/active_repository/result_set.rb', line 49 def first_or_initialize object = all.first object ? object : @klass.new(@attributes) end |
#last ⇒ Object
63 64 65 |
# File 'lib/active_repository/result_set.rb', line 63 def last @query ? all.last : @klass.last end |
#map(&block) ⇒ Object
25 26 27 |
# File 'lib/active_repository/result_set.rb', line 25 def map(&block) all.map(&block) end |
#or(query) ⇒ Object
75 76 77 78 79 |
# File 'lib/active_repository/result_set.rb', line 75 def or(query) query = join_query(query, 'or') ActiveRepository::ResultSet.new(@klass, query, @attributes) end |
#pluck(attribute) ⇒ Object
29 30 31 |
# File 'lib/active_repository/result_set.rb', line 29 def pluck(attribute) all.map(&attribute) end |
#where(query) ⇒ Object Also known as: and
67 68 69 70 71 72 |
# File 'lib/active_repository/result_set.rb', line 67 def where(query) @attributes = @attributes.merge(SqlQueryExecutor::Query::Normalizers::QueryNormalizer.attributes_from_query(query)) query = join_query(query, 'and') ActiveRepository::ResultSet.new(@klass, query, @attributes) end |