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.



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

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)
          define_method "#{key}" do
            instance_variable_get("@#{key}")
          end
          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



55
56
57
58
59
# File 'lib/ruby-dmm/response/item.rb', line 55

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