module Light::Decorator::Concerns::Associations::CollectionProxy
Public Instance Methods
decorate(options = {})
click to toggle source
Decorate ActiveRecord::Model associations
@param [Hash] options (optional) @return [ActiveRecord::Associations::CollectionProxy]
# File lib/light/decorator/concerns/associations/collection_proxy.rb, line 12 def decorate(options = {}) @decorated = true override_scope(options) override_load_target(options) self end
decorated?()
click to toggle source
Check current association is decorated or not
@return [Bool]
# File lib/light/decorator/concerns/associations/collection_proxy.rb, line 24 def decorated? !@decorated.nil? end
Private Instance Methods
override_load_target(options)
click to toggle source
Calls superclass method
# File lib/light/decorator/concerns/associations/collection_proxy.rb, line 36 def override_load_target(options) @association.define_singleton_method :load_target do super().map { |target| target.decorate(options) } end end
override_scope(options)
click to toggle source
Calls superclass method
# File lib/light/decorator/concerns/associations/collection_proxy.rb, line 30 def override_scope(options) @association.define_singleton_method :scope do |opts = {}| super(opts).decorate(options) end end