Class: DMM::Response::Item

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby-dmm/response/item.rb

Constant Summary collapse

PREDEFINED_KEYS =
[
  :date,
  :iteminfo,
  :list_price,
  :price,
  :price_all,
  :prices,
  :small_images,
]
ALIAS_METHOD_MAP =
{
  :bandaiinfo => :bandai_info,
  :cdinfo     => :cd_info,
  :image_url  => :images,
}

Instance Method Summary collapse

Constructor Details

#initialize(item) ⇒ Item

Returns a new instance of Item.



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/ruby-dmm/response/item.rb', line 26

def initialize(item)
  item.each do |key, value|
    key = key.to_sym
    case key
    when :date
      @date = Time.parse(value) if value
    when :iteminfo
      @iteminfo = ItemInfo.new(value) if value
    when :sample_image_url
      @small_images = value[:sample_s][:image] if value
    when :prices
      setup_prices(value) if value
    else
      self.class.class_eval do
        unless method_defined?(key)
          attr_reader key
          if (name = ALIAS_METHOD_MAP[key.to_sym])
            alias_method name, key.to_sym
          end
        end
      end
      instance_variable_set("@#{key}", item[key])
    end
  end
end

Instance Method Details

#large_imagesObject



52
53
54
55
56
# File 'lib/ruby-dmm/response/item.rb', line 52

def large_images
  @small_images && @small_images.map do |image|
    image.gsub(/(-[0-9]+\.jpg)/, 'jp\1')
  end
end