Class: Listings::Sources::ObjectField

Inherits:
Field
  • Object
show all
Defined in:
lib/listings/sources/object_data_source.rb

Instance Attribute Summary

Attributes inherited from Field

#data_source

Instance Method Summary collapse

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_nameObject



94
95
96
# File 'lib/listings/sources/object_data_source.rb', line 94

def human_name
  @path.join(' ')
end

#keyObject



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