Sha256: cfb02edb5d3bfbaab6c849981eb5831e76e4911f10780cd898ba8eb4b13c6a9d

Contents?: true

Size: 532 Bytes

Versions: 18

Compression:

Stored size: 532 Bytes

Contents

class RestModel
  class Embeddable
    module Retriever
      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

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

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

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
rest_model-0.1.17 lib/rest_model/key/embeddable/retriever.rb
rest_model-0.1.16 lib/rest_model/key/embeddable/retriever.rb
rest_model-0.1.15 lib/rest_model/key/embeddable/retriever.rb
rest_model-0.1.14 lib/rest_model/key/embeddable/retriever.rb
rest_model-0.1.13 lib/rest_model/key/embeddable/retriever.rb
rest_model-0.1.12 lib/rest_model/key/embeddable/retriever.rb
rest_model-0.1.11 lib/rest_model/key/embeddable/retriever.rb
rest_model-0.1.10 lib/rest_model/key/embeddable/retriever.rb
rest_model-0.1.9 lib/rest_model/key/embeddable/retriever.rb
rest_model-0.1.8 lib/rest_model/key/embeddable/retriever.rb
rest_model-0.1.7 lib/rest_model/key/embeddable/retriever.rb
rest_model-0.1.6 lib/rest_model/key/embeddable/retriever.rb
rest_model-0.1.5 lib/rest_model/key/embeddable/retriever.rb
rest_model-0.1.4 lib/rest_model/key/embeddable/retriever.rb
rest_model-0.1.3 lib/rest_model/key/embeddable/retriever.rb
rest_model-0.1.2 lib/rest_model/key/embeddable/retriever.rb
rest_model-0.1.1 lib/rest_model/key/embeddable/retriever.rb
rest_model-0.1.0 lib/rest_model/key/embeddable/retriever.rb