Class: A2z::Responses::Item
- Includes:
- Helpers
- Defined in:
- lib/a2z/responses/item.rb
Instance Attribute Summary collapse
-
#asin ⇒ Object
Returns the value of attribute asin.
-
#detail_page_url ⇒ Object
Returns the value of attribute detail_page_url.
-
#image_sets ⇒ Object
Returns the value of attribute image_sets.
-
#large_image ⇒ Object
Returns the value of attribute large_image.
-
#links ⇒ Object
Returns the value of attribute links.
-
#medium_image ⇒ Object
Returns the value of attribute medium_image.
-
#parent_asin ⇒ Object
Returns the value of attribute parent_asin.
-
#small_image ⇒ Object
Returns the value of attribute small_image.
Class Method Summary collapse
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
- #has_key?(key) ⇒ Boolean
-
#initialize ⇒ Item
constructor
A new instance of Item.
- #keys ⇒ Object
- #method_missing(name, *args, &block) ⇒ Object
- #respond_to_missing?(name, include_private = false) ⇒ Boolean
Methods included from Helpers
Constructor Details
#initialize ⇒ Item
Returns a new instance of Item.
9 10 11 12 13 |
# File 'lib/a2z/responses/item.rb', line 9 def initialize @links = [] @attrs = {} @image_sets = {} end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/a2z/responses/item.rb', line 23 def method_missing(name, *args, &block) method_name = name.to_s if method_name.end_with?('?') # && method_name != 'has_key?' has_key?(method_name.sub(/\?$/, '')) elsif has_key?(method_name) self[method_name] else super end end |
Instance Attribute Details
#asin ⇒ Object
Returns the value of attribute asin.
6 7 8 |
# File 'lib/a2z/responses/item.rb', line 6 def asin @asin end |
#detail_page_url ⇒ Object
Returns the value of attribute detail_page_url.
6 7 8 |
# File 'lib/a2z/responses/item.rb', line 6 def detail_page_url @detail_page_url end |
#image_sets ⇒ Object
Returns the value of attribute image_sets.
6 7 8 |
# File 'lib/a2z/responses/item.rb', line 6 def image_sets @image_sets end |
#large_image ⇒ Object
Returns the value of attribute large_image.
6 7 8 |
# File 'lib/a2z/responses/item.rb', line 6 def large_image @large_image end |
#links ⇒ Object
Returns the value of attribute links.
6 7 8 |
# File 'lib/a2z/responses/item.rb', line 6 def links @links end |
#medium_image ⇒ Object
Returns the value of attribute medium_image.
6 7 8 |
# File 'lib/a2z/responses/item.rb', line 6 def medium_image @medium_image end |
#parent_asin ⇒ Object
Returns the value of attribute parent_asin.
6 7 8 |
# File 'lib/a2z/responses/item.rb', line 6 def parent_asin @parent_asin end |
#small_image ⇒ Object
Returns the value of attribute small_image.
6 7 8 |
# File 'lib/a2z/responses/item.rb', line 6 def small_image @small_image end |
Class Method Details
.from_response(data) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/a2z/responses/item.rb', line 47 def self.from_response(data) new.tap do |item| item.asin = data['ASIN'] item.parent_asin = data['ParentASIN'] item.detail_page_url = data['DetailPageURL'] if data['ItemLinks'] item.links = data['ItemLinks']['ItemLink'].collect { |link| ItemLink.from_response(link) } end if data['ItemAttributes'] data['ItemAttributes'].each { |key, value| item[underscore(key)] = value } end if data['ImageSets'] && data['ImageSets']['ImageSet'] image_sets = data['ImageSets']['ImageSet'] image_sets = [image_sets] unless image_sets.kind_of?(Array) image_sets.each do |image_set| image_set = ImageSet.from_response(image_set) item.image_sets[image_set.category.to_sym] = image_set end end item.small_image = Image.from_response(data['SmallImage']) if data['SmallImage'] item.medium_image = Image.from_response(data['MediumImage']) if data['MediumImage'] item.large_image = Image.from_response(data['LargeImage']) if data['LargeImage'] item.freeze end end |
Instance Method Details
#[](key) ⇒ Object
39 40 41 |
# File 'lib/a2z/responses/item.rb', line 39 def [](key) @attrs[key] end |
#[]=(key, value) ⇒ Object
35 36 37 |
# File 'lib/a2z/responses/item.rb', line 35 def []=(key, value) @attrs[key] = value end |
#has_key?(key) ⇒ Boolean
43 44 45 |
# File 'lib/a2z/responses/item.rb', line 43 def has_key?(key) @attrs.has_key?(key) end |
#keys ⇒ Object
15 16 17 |
# File 'lib/a2z/responses/item.rb', line 15 def keys @attrs.keys end |
#respond_to_missing?(name, include_private = false) ⇒ Boolean
19 20 21 |
# File 'lib/a2z/responses/item.rb', line 19 def respond_to_missing?(name, include_private = false) name.to_s.end_with?('?') || super end |