Class: ActiveMapper::Adapter::ActiveRecord
- Inherits:
-
Object
- Object
- ActiveMapper::Adapter::ActiveRecord
- Defined in:
- lib/active_mapper/adapter/active_record.rb,
lib/active_mapper/adapter/active_record/order.rb,
lib/active_mapper/adapter/active_record/query.rb,
lib/active_mapper/adapter/active_record/order/attribute.rb,
lib/active_mapper/adapter/active_record/query/attribute.rb,
lib/active_mapper/adapter/active_record/query/expression.rb
Defined Under Namespace
Instance Method Summary collapse
- #average(klass, attribute, &block) ⇒ Object
- #count(klass, &block) ⇒ Object
- #delete(klass, object) ⇒ Object
- #delete_all(klass, &block) ⇒ Object
- #find(klass, id) ⇒ Object
-
#initialize ⇒ ActiveRecord
constructor
A new instance of ActiveRecord.
- #insert(klass, object) ⇒ Object
- #maximum(klass, attribute, &block) ⇒ Object
- #minimum(klass, attribute, &block) ⇒ Object
- #serialize(klass, object) ⇒ Object
- #sum(klass, attribute, &block) ⇒ Object
- #unserialize(klass, object) ⇒ Object
- #update(klass, object) ⇒ Object
- #where(klass, options = {}, &block) ⇒ Object
Constructor Details
#initialize ⇒ ActiveRecord
8 9 10 |
# File 'lib/active_mapper/adapter/active_record.rb', line 8 def initialize @collection = {} end |
Instance Method Details
#average(klass, attribute, &block) ⇒ Object
41 42 43 |
# File 'lib/active_mapper/adapter/active_record.rb', line 41 def average(klass, attribute, &block) calculate(:average, klass, attribute, &block) end |
#count(klass, &block) ⇒ Object
29 30 31 |
# File 'lib/active_mapper/adapter/active_record.rb', line 29 def count(klass, &block) where(klass, &block).count end |
#delete(klass, object) ⇒ Object
73 74 75 |
# File 'lib/active_mapper/adapter/active_record.rb', line 73 def delete(klass, object) find(klass, object.id).delete end |
#delete_all(klass, &block) ⇒ Object
77 78 79 |
# File 'lib/active_mapper/adapter/active_record.rb', line 77 def delete_all(klass, &block) where(klass, &block).delete_all end |
#find(klass, id) ⇒ Object
12 13 14 |
# File 'lib/active_mapper/adapter/active_record.rb', line 12 def find(klass, id) collection(klass).find_by(id: id) end |
#insert(klass, object) ⇒ Object
49 50 51 52 53 54 55 56 |
# File 'lib/active_mapper/adapter/active_record.rb', line 49 def insert(klass, object) active_record = collection(klass) attributes = serialize(klass, object) record = active_record.new(attributes) record.save record.id end |
#maximum(klass, attribute, &block) ⇒ Object
37 38 39 |
# File 'lib/active_mapper/adapter/active_record.rb', line 37 def maximum(klass, attribute, &block) calculate(:maximum, klass, attribute, &block) end |
#minimum(klass, attribute, &block) ⇒ Object
33 34 35 |
# File 'lib/active_mapper/adapter/active_record.rb', line 33 def minimum(klass, attribute, &block) calculate(:minimum, klass, attribute, &block) end |
#serialize(klass, object) ⇒ Object
62 63 64 65 66 67 |
# File 'lib/active_mapper/adapter/active_record.rb', line 62 def serialize(klass, object) collection(klass).column_names.dup.inject({}) do |memo, attribute| memo[attribute] = object.send(attribute) memo end end |
#sum(klass, attribute, &block) ⇒ Object
45 46 47 |
# File 'lib/active_mapper/adapter/active_record.rb', line 45 def sum(klass, attribute, &block) calculate(:sum, klass, attribute, &block) end |
#unserialize(klass, object) ⇒ Object
69 70 71 |
# File 'lib/active_mapper/adapter/active_record.rb', line 69 def unserialize(klass, object) klass.new(serialize(klass, object)) end |
#update(klass, object) ⇒ Object
58 59 60 |
# File 'lib/active_mapper/adapter/active_record.rb', line 58 def update(klass, object) find(klass, object.id).update_columns(serialize(klass, object)) end |
#where(klass, options = {}, &block) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/active_mapper/adapter/active_record.rb', line 16 def where(klass, = {}, &block) active_record = collection(klass) query = Query.new(active_record.arel_table, &block) order = Order.new(&[:order]) records = active_record.where(query.to_sql) records = records.limit([:limit]) if [:limit] records = records.offset([:offset]) if [:offset] records = records.order(order.to_sql) records end |