Sha256: 77025b1fe7c0f7d11a1d8409a2d63464128e0366a649f6e5fb928d838954fbf0
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
require './lib/marver.rb' # TODO: Refactor, I guess? module Marver module CommonEntitiesBuilder COMMON_ENTITIES = %w(prices images urls textObjects thumbnail dates) extend Marver::StringHelper def self.build!(object) COMMON_ENTITIES.each do |entity| # If the object's JSON has this entity.. if object.json.has_key?(entity) # get the entity lists entities = entity_items(object, entity) # find the class for this type of entity klass = common_class(entity) # parameterize the entity string # i.e. textObjects => TextObject parameterized_entity = parameterize(entity) if entities.kind_of?(Array) object.class.send(:define_method, parameterized_entity) do entities.collect do |ent| klass.new(ent) end end else object.class.send(:define_method, parameterized_entity) do klass.new(entities) end end end end end def self.entity_items(object, entity) if object.json[entity].kind_of?(Hash) && object.json[entity].has_key?('items') [object.json[entity]['items']].compact.flatten(1) else object.json[entity] end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
marver-0.0.2 | lib/marver/builders/common_entities_builder.rb |