Class: ActiveRepository::ResultSet
- Inherits:
-
Object
- Object
- ActiveRepository::ResultSet
- Defined in:
- lib/active_repository/result_set.rb
Instance Method Summary collapse
- #all ⇒ Object
- #build(attributes) ⇒ Object
- #count ⇒ Object
- #create(attributes) ⇒ Object
- #each(&block) ⇒ Object
- #first ⇒ Object
- #first_or_create ⇒ Object
- #first_or_initialize ⇒ Object
-
#initialize(klass, query = {}, attributes = {}) ⇒ ResultSet
constructor
A new instance of ResultSet.
- #last ⇒ 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.
2 3 4 5 6 |
# File 'lib/active_repository/result_set.rb', line 2 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
8 9 10 |
# File 'lib/active_repository/result_set.rb', line 8 def all @query ? get_result(@query) : @klass.all end |
#build(attributes) ⇒ Object
20 21 22 |
# File 'lib/active_repository/result_set.rb', line 20 def build(attributes) @klass.new(@attributes.merge(attributes)) end |
#count ⇒ Object
28 29 30 |
# File 'lib/active_repository/result_set.rb', line 28 def count all.size end |
#create(attributes) ⇒ Object
24 25 26 |
# File 'lib/active_repository/result_set.rb', line 24 def create(attributes) @klass.create(@attributes.merge(attributes)) end |
#each(&block) ⇒ Object
12 13 14 |
# File 'lib/active_repository/result_set.rb', line 12 def each(&block) all.each(&block) end |
#first ⇒ Object
32 33 34 |
# File 'lib/active_repository/result_set.rb', line 32 def first @query ? all.first : @klass.all.first end |
#first_or_create ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/active_repository/result_set.rb', line 42 def first_or_create object = first_or_initialize object.new_record? ? object.save : object object.reload end |
#first_or_initialize ⇒ Object
36 37 38 39 40 |
# File 'lib/active_repository/result_set.rb', line 36 def first_or_initialize object = all.first object ? object : @klass.new(@attributes) end |
#last ⇒ Object
50 51 52 |
# File 'lib/active_repository/result_set.rb', line 50 def last @query ? all.last : @klass.all.last end |
#or(query) ⇒ Object
62 63 64 65 66 |
# File 'lib/active_repository/result_set.rb', line 62 def or(query) query = join_query(query, 'or') ActiveRepository::ResultSet.new(@klass, query, @attributes) end |
#pluck(attribute) ⇒ Object
16 17 18 |
# File 'lib/active_repository/result_set.rb', line 16 def pluck(attribute) all.map(&attribute) end |
#where(query) ⇒ Object Also known as: and
54 55 56 57 58 59 |
# File 'lib/active_repository/result_set.rb', line 54 def where(query) @attributes = @attributes.merge(query) if query.is_a?(Hash) query = join_query(query, 'and') ActiveRepository::ResultSet.new(@klass, query, @attributes) end |