Class: JsonapiCompliable::Adapters::ActiveRecord
- Defined in:
- lib/jsonapi_compliable/adapters/active_record.rb
Instance Method Summary collapse
- #associate(parent, child, association_name, association_type) ⇒ Object
- #average(scope, attr) ⇒ Object
- #count(scope, attr) ⇒ Object
- #create(model_class, create_params) ⇒ Object
- #destroy(model_class, id) ⇒ Object
- #filter(scope, attribute, value) ⇒ Object
- #maximum(scope, attr) ⇒ Object
- #minimum(scope, attr) ⇒ Object
- #order(scope, attribute, direction) ⇒ Object
- #paginate(scope, current_page, per_page) ⇒ Object
- #resolve(scope) ⇒ Object
- #sideloading_module ⇒ Object
- #sum(scope, attr) ⇒ Object
- #transaction(model_class) ⇒ Object
- #update(model_class, update_params) ⇒ Object
Methods inherited from Abstract
Instance Method Details
#associate(parent, child, association_name, association_type) ⇒ Object
52 53 54 55 56 57 58 59 |
# File 'lib/jsonapi_compliable/adapters/active_record.rb', line 52 def associate(parent, child, association_name, association_type) if association_type == :has_many parent.association(association_name).loaded! parent.association(association_name).add_to_target(child, :skip_callbacks) else child.send("#{association_name}=", parent) end end |
#average(scope, attr) ⇒ Object
22 23 24 |
# File 'lib/jsonapi_compliable/adapters/active_record.rb', line 22 def average(scope, attr) scope.average(attr).to_f end |
#count(scope, attr) ⇒ Object
18 19 20 |
# File 'lib/jsonapi_compliable/adapters/active_record.rb', line 18 def count(scope, attr) scope.count end |
#create(model_class, create_params) ⇒ Object
61 62 63 64 65 |
# File 'lib/jsonapi_compliable/adapters/active_record.rb', line 61 def create(model_class, create_params) instance = model_class.new(create_params) instance.save instance end |
#destroy(model_class, id) ⇒ Object
73 74 75 76 77 |
# File 'lib/jsonapi_compliable/adapters/active_record.rb', line 73 def destroy(model_class, id) instance = model_class.find(id) instance.destroy instance end |
#filter(scope, attribute, value) ⇒ Object
6 7 8 |
# File 'lib/jsonapi_compliable/adapters/active_record.rb', line 6 def filter(scope, attribute, value) scope.where(attribute => value) end |
#maximum(scope, attr) ⇒ Object
30 31 32 |
# File 'lib/jsonapi_compliable/adapters/active_record.rb', line 30 def maximum(scope, attr) scope.maximum(attr) end |
#minimum(scope, attr) ⇒ Object
34 35 36 |
# File 'lib/jsonapi_compliable/adapters/active_record.rb', line 34 def minimum(scope, attr) scope.minimum(attr) end |
#order(scope, attribute, direction) ⇒ Object
10 11 12 |
# File 'lib/jsonapi_compliable/adapters/active_record.rb', line 10 def order(scope, attribute, direction) scope.order(attribute => direction) end |
#paginate(scope, current_page, per_page) ⇒ Object
14 15 16 |
# File 'lib/jsonapi_compliable/adapters/active_record.rb', line 14 def paginate(scope, current_page, per_page) scope.page(current_page).per(per_page) end |
#resolve(scope) ⇒ Object
38 39 40 |
# File 'lib/jsonapi_compliable/adapters/active_record.rb', line 38 def resolve(scope) scope.to_a end |
#sideloading_module ⇒ Object
48 49 50 |
# File 'lib/jsonapi_compliable/adapters/active_record.rb', line 48 def sideloading_module JsonapiCompliable::Adapters::ActiveRecordSideloading end |
#sum(scope, attr) ⇒ Object
26 27 28 |
# File 'lib/jsonapi_compliable/adapters/active_record.rb', line 26 def sum(scope, attr) scope.sum(attr) end |
#transaction(model_class) ⇒ Object
42 43 44 45 46 |
# File 'lib/jsonapi_compliable/adapters/active_record.rb', line 42 def transaction(model_class) model_class.transaction do yield end end |
#update(model_class, update_params) ⇒ Object
67 68 69 70 71 |
# File 'lib/jsonapi_compliable/adapters/active_record.rb', line 67 def update(model_class, update_params) instance = model_class.find(update_params.delete(:id)) instance.update_attributes(update_params) instance end |