Method: ActionView::LookupContext.register_detail

Defined in:
actionview/lib/action_view/lookup_context.rb

.register_detail(name, &block) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'actionview/lib/action_view/lookup_context.rb', line 21

def self.register_detail(name, &block)
  registered_details << name
  Accessors::DEFAULT_PROCS[name] = block

  Accessors.define_method(:"default_#{name}", &block)
  Accessors.module_eval <<-METHOD, __FILE__, __LINE__ + 1
    def #{name}
      @details[:#{name}] || []
    end

    def #{name}=(value)
      value = value.present? ? Array(value) : default_#{name}
      _set_detail(:#{name}, value) if value != @details[:#{name}]
    end
  METHOD
end