Class: DMM::Response::ItemInfo
- Inherits:
-
Object
- Object
- DMM::Response::ItemInfo
- Defined in:
- lib/ruby-dmm/response/item_info.rb
Constant Summary collapse
- PLURAL_MAP =
for defining
alias_method :actors, :actor
{ :actor => :actors, :actress => :actresses, :artist => :artists, :author => :authors, :color => :colors, :director => :directors, :fighter => :fighters, :genre => :genres, :keyword => :keywords, :label => :labels, :maker => :makers, }
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(item_info) ⇒ ItemInfo
constructor
A new instance of ItemInfo.
Constructor Details
#initialize(item_info) ⇒ ItemInfo
Returns a new instance of ItemInfo.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/ruby-dmm/response/item_info.rb', line 21 def initialize(item_info) item_info.each do |key, value| key = key.to_s value = self.class.integrate(value) self.class.class_eval do unless method_defined?(key) attr_reader key if (plural = PLURAL_MAP[key.to_sym]) alias_method plural, key.to_sym end end end instance_variable_set("@#{key}", value) end end |
Class Method Details
.integrate(h) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/ruby-dmm/response/item_info.rb', line 37 def self.integrate(h) return nil unless h hashes = [h].flatten.inject({}) do |hash, params| id, key = params['id'].split('_') hash[id] ||= { 'id' => id } if key hash[id].merge!(key => params['name']) else hash[id].merge!('name' => params['name']) end hash end hashes.values end |