module Draper::DecoratesAssigned

def decorates_assigned(*variables)

Options Hash: (**options)
  • :context (Hash, #call) --
  • :with (Decorator, CollectionDecorator) --

Parameters:
  • options (Hash) --
  • variables (Symbols*) --

Overloads:
  • decorates_assigned(*variables, options = {})
def decorates_assigned(*variables)
  factory = Draper::Factory.new(variables.extract_options!)
  variables.each do |variable|
    undecorated = "@#{variable}"
    decorated = "@decorated_#{variable}"
    define_method variable do
      return instance_variable_get(decorated) if instance_variable_defined?(decorated)
      instance_variable_set decorated, factory.decorate(instance_variable_get(undecorated), context_args: self)
    end
    helper_method variable
  end
end