Class: Listings::Sources::ObjectField
- Defined in:
- lib/listings/sources/object_data_source.rb
Instance Attribute Summary
Attributes inherited from Field
Instance Method Summary collapse
- #human_name ⇒ Object
-
#initialize(path, data_source) ⇒ ObjectField
constructor
A new instance of ObjectField.
- #key ⇒ Object
- #value_for(item) ⇒ Object
Constructor Details
#initialize(path, data_source) ⇒ ObjectField
Returns a new instance of ObjectField.
73 74 75 76 |
# File 'lib/listings/sources/object_data_source.rb', line 73 def initialize(path, data_source) super(data_source) @path = path end |
Instance Method Details
#human_name ⇒ Object
94 95 96 |
# File 'lib/listings/sources/object_data_source.rb', line 94 def human_name @path.join(' ') end |
#key ⇒ Object
90 91 92 |
# File 'lib/listings/sources/object_data_source.rb', line 90 def key @path.join('_') end |
#value_for(item) ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/listings/sources/object_data_source.rb', line 78 def value_for(item) @path.inject(item) do |obj, attribute| if obj.nil? nil elsif obj.is_a?(Hash) && obj.key?(attribute) obj[attribute] else obj.send attribute end end end |