Module: RestModel::Embeddable::Retriever

Included in:
RestModel::Embeddable
Defined in:
lib/rest_model/key/embeddable/retriever.rb

Instance Method Summary collapse

Instance Method Details

#digg(input) ⇒ Object



16
17
18
# File 'lib/rest_model/key/embeddable/retriever.rb', line 16

def digg(input)
  source_path.inject(input) {|buffer, key| buffer = buffer[key]}
end

#from_source(item, resource = nil) ⇒ Object



4
5
6
7
8
9
10
# File 'lib/rest_model/key/embeddable/retriever.rb', line 4

def from_source(item, resource = nil)
  return handle_fields(item) if fields

  value = digg(item)
  parsed_value = raw? ? value : resource_class.from_source(value)
  one? ? parsed_value.first : parsed_value
end

#handle_fields(item) ⇒ Object



12
13
14
# File 'lib/rest_model/key/embeddable/retriever.rb', line 12

def handle_fields(item)
  convert_input_keys.call(fields).map {|field| item[field]}
end