Class: Zena::Use::NestedAttributesAlias::ViewMethods::InstanceTag

Inherits:
ActionView::Helpers::InstanceTag
  • Object
show all
Defined in:
lib/zena/use/nested_attributes_alias.rb

Instance Method Summary collapse

Instance Method Details

#value(object) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/zena/use/nested_attributes_alias.rb', line 8

def value(object)
  if object.respond_to?(:nested_model_names_for_alias) && nested_model_names = object.nested_model_names_for_alias(@method_name)
    method_name = nested_model_names.pop # remove method
    nested_model_names.each do |nested_model_name|
      object = object.send(nested_model_name)
    end
    self.class.value(object, method_name)
  else
    self.class.value(object, @method_name)
  end
end

#value_before_type_cast(object) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/zena/use/nested_attributes_alias.rb', line 20

def value_before_type_cast(object)
  if object.respond_to?(:nested_model_names_for_alias) && nested_model_names = object.nested_model_names_for_alias(@method_name)
    method_name = nested_model_names.pop # remove method
    nested_model_names.each do |nested_model_name|
      object = object.send(nested_model_name)
    end
    self.class.value_before_type_cast(object, method_name)
  else
    self.class.value_before_type_cast(object, @method_name)
  end
end