Class: Rapa::Resources::ItemResource

Inherits:
BaseResource show all
Defined in:
lib/rapa/resources/item_resource.rb

Instance Method Summary collapse

Methods inherited from BaseResource

#initialize, #source

Constructor Details

This class inherits a constructor from Rapa::Resources::BaseResource

Instance Method Details

#adult_product?Boolean?

Returns:

  • (Boolean, nil)


7
8
9
10
11
# File 'lib/rapa/resources/item_resource.rb', line 7

def adult_product?
  if flag_source = source.dig("ItemAttributes", "IsAdultProduct")
    flag_source != "0"
  end
end

#alternate_versionsArray<Rapa::AlternateVersion>

Returns:



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/rapa/resources/item_resource.rb', line 14

def alternate_versions
  case alternate_version_source_or_sources = source.dig("AlternateVersions", "AlternateVersion")
  when ::Array
    alternate_version_source_or_sources
  when ::Hash
    [alternate_version_source_or_sources]
  else
    []
  end.map do |alternate_version_source|
    ::Rapa::AlternateVersion.new(alternate_version_source)
  end
end

#asinString

Returns:

  • (String)


28
29
30
# File 'lib/rapa/resources/item_resource.rb', line 28

def asin
  source["ASIN"]
end

#authorsArray<String>

Returns:

  • (Array<String>)


33
34
35
36
37
38
39
40
41
42
# File 'lib/rapa/resources/item_resource.rb', line 33

def authors
  case author_source_or_sources = source.dig("ItemAttributes", "Author")
  when ::Array
    author_source_or_sources
  when ::String
    [author_source_or_sources]
  else
    []
  end
end

#bindingString?

Returns:

  • (String, nil)


45
46
47
# File 'lib/rapa/resources/item_resource.rb', line 45

def binding
  source.dig("ItemAttributes", "Binding")
end

#browse_nodesArray<Rapa::BrowseNode>

Returns:



50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/rapa/resources/item_resource.rb', line 50

def browse_nodes
  case browse_node_source_or_sources = source.dig("BrowseNodes", "BrowseNode")
  when ::Array
    browse_node_source_or_sources
  when ::Hash
    [browse_node_source_or_sources]
  else
    []
  end.map do |browse_node_source|
    ::Rapa::BrowseNode.new(browse_node_source)
  end
end

#creator_nameString?

Returns:

  • (String, nil)


64
65
66
# File 'lib/rapa/resources/item_resource.rb', line 64

def creator_name
  source.dig("ItemAttributes", "Creator", "__content__")
end

#creator_roleString?

Returns:

  • (String, nil)


69
70
71
# File 'lib/rapa/resources/item_resource.rb', line 69

def creator_role
  source.dig("ItemAttributes", "Creator", "Role")
end

#eanString?

Returns:

  • (String, nil)


74
75
76
# File 'lib/rapa/resources/item_resource.rb', line 74

def ean
  source.dig("ItemAttributes", "EAN")
end

#ebook?Boolean

Returns:

  • (Boolean)


79
80
81
# File 'lib/rapa/resources/item_resource.rb', line 79

def ebook?
  source.dig("ItemAttributes", "ProductGroup") == "eBooks"
end

#episode_sequenceInteger?

Returns:

  • (Integer, nil)


84
85
86
87
88
# File 'lib/rapa/resources/item_resource.rb', line 84

def episode_sequence
  if value = source.dig("ItemAttributes", "EpisodeSequence")
    value.to_i
  end
end

#genreString?

Returns:

  • (String, nil)


91
92
93
# File 'lib/rapa/resources/item_resource.rb', line 91

def genre
  source.dig("ItemAttributes", "Genre")
end

#has_customer_reviews?Boolean

Returns:

  • (Boolean)


96
97
98
# File 'lib/rapa/resources/item_resource.rb', line 96

def has_customer_reviews?
  source.dig("CustomerReviews", "HasReviews") == "true"
end

#image_hi_resRapa::Image?

Returns:



101
102
103
# File 'lib/rapa/resources/item_resource.rb', line 101

def image_hi_res
  find_image("HiResImage")
end

#image_largeRapa::Image?

Returns:



106
107
108
# File 'lib/rapa/resources/item_resource.rb', line 106

def image_large
  find_image("LargeImage")
end

#image_mediumRapa::Image?

Returns:



111
112
113
# File 'lib/rapa/resources/item_resource.rb', line 111

def image_medium
  find_image("MediumImage")
end

#image_smallRapa::Image?

Returns:



116
117
118
# File 'lib/rapa/resources/item_resource.rb', line 116

def image_small
  find_image("SmallImage")
end

#image_swatchRapa::Image?

Returns:



121
122
123
# File 'lib/rapa/resources/item_resource.rb', line 121

def image_swatch
  find_image("SwatchImage")
end

#image_thumbnailRapa::Image?

Returns:



126
127
128
# File 'lib/rapa/resources/item_resource.rb', line 126

def image_thumbnail
  find_image("ThumbnailImage")
end

#image_tinyRapa::Image?

Returns:



131
132
133
# File 'lib/rapa/resources/item_resource.rb', line 131

def image_tiny
  find_image("TinyImage")
end

#isbnString?

Returns:

  • (String, nil)


136
137
138
# File 'lib/rapa/resources/item_resource.rb', line 136

def isbn
  source.dig("ItemAttributes", "ISBN")
end

#item_heightRapa::Quantity

Returns:



141
142
143
144
145
# File 'lib/rapa/resources/item_resource.rb', line 141

def item_height
  if quantity_source = source.dig("ItemAttributes", "ItemDimensions", "Height")
    ::Rapa::Quantity.new(quantity_source)
  end
end

#item_lengthRapa::Quantity

Returns:



148
149
150
151
152
# File 'lib/rapa/resources/item_resource.rb', line 148

def item_length
  if quantity_source = source.dig("ItemAttributes", "ItemDimensions", "Length")
    ::Rapa::Quantity.new(quantity_source)
  end
end

#item_widthRapa::Quantity

Returns:



155
156
157
158
159
# File 'lib/rapa/resources/item_resource.rb', line 155

def item_width
  if quantity_source = source.dig("ItemAttributes", "ItemDimensions", "Width")
    ::Rapa::Quantity.new(quantity_source)
  end
end

#labelString?

Returns:

  • (String, nil)


162
163
164
# File 'lib/rapa/resources/item_resource.rb', line 162

def label
  source.dig("ItemAttributes", "Label")
end

#languagesArray<Rapa::Language>

Returns:



167
168
169
170
171
172
173
174
175
176
177
178
# File 'lib/rapa/resources/item_resource.rb', line 167

def languages
  case language_source_or_sources = source.dig("ItemAttributes", "Languages", "Language")
  when ::Array
    language_source_or_sources
  when ::Hash
    [language_source_or_sources]
  else
    []
  end.map do |language_source|
    ::Rapa::Language.new(language_source)
  end
end

#manufacturerString?

Returns:

  • (String, nil)


181
182
183
# File 'lib/rapa/resources/item_resource.rb', line 181

def manufacturer
  source.dig("ItemAttributes", "Manufacturer")
end

#number_of_pagesInteger?

Returns:

  • (Integer, nil)


186
187
188
189
190
# File 'lib/rapa/resources/item_resource.rb', line 186

def number_of_pages
  if value = source.dig("ItemAttributes", "NumberOfPages")
    value.to_i
  end
end

#package_heightRapa::Quantity

Returns:



193
194
195
196
197
# File 'lib/rapa/resources/item_resource.rb', line 193

def package_height
  if quantity_source = source.dig("ItemAttributes", "PackageDimensions", "Height")
    ::Rapa::Quantity.new(quantity_source)
  end
end

#package_lengthRapa::Quantity

Returns:



200
201
202
203
204
# File 'lib/rapa/resources/item_resource.rb', line 200

def package_length
  if quantity_source = source.dig("ItemAttributes", "PackageDimensions", "Length")
    ::Rapa::Quantity.new(quantity_source)
  end
end

#package_weightRapa::Quantity

Returns:



207
208
209
210
211
# File 'lib/rapa/resources/item_resource.rb', line 207

def package_weight
  if quantity_source = source.dig("ItemAttributes", "PackageDimensions", "Weight")
    ::Rapa::Quantity.new(quantity_source)
  end
end

#package_widthRapa::Quantity

Returns:



214
215
216
217
218
# File 'lib/rapa/resources/item_resource.rb', line 214

def package_width
  if quantity_source = source.dig("ItemAttributes", "PackageDimensions", "Width")
    ::Rapa::Quantity.new(quantity_source)
  end
end

#product_groupString?

Returns:

  • (String, nil)


221
222
223
# File 'lib/rapa/resources/item_resource.rb', line 221

def product_group
  source.dig("ItemAttributes", "ProductGroup")
end

#product_type_nameString?

Returns:

  • (String, nil)


226
227
228
# File 'lib/rapa/resources/item_resource.rb', line 226

def product_type_name
  source.dig("ItemAttributes", "ProductTypeName")
end

#publication_dateDate?

Returns:

  • (Date, nil)


231
232
233
234
235
# File 'lib/rapa/resources/item_resource.rb', line 231

def publication_date
  if value = source.dig("ItemAttributes", "PublicationDate")
    parse_date(value)
  end
end

#publisherString?

Returns:

  • (String, nil)


238
239
240
# File 'lib/rapa/resources/item_resource.rb', line 238

def publisher
  source.dig("ItemAttributes", "Publisher")
end

Returns:

  • (Integer, nil)


243
244
245
246
247
# File 'lib/rapa/resources/item_resource.rb', line 243

def related_item_count
  if value = source.dig("RelatedItems", "RelatedItemCount")
    value.to_i
  end
end

Returns:

  • (Integer, nil)


250
251
252
253
254
# File 'lib/rapa/resources/item_resource.rb', line 250

def related_item_page
  if value = source.dig("RelatedItems", "RelatedItemPage")
    value.to_i
  end
end

Returns:

  • (Integer, nil)


257
258
259
260
261
# File 'lib/rapa/resources/item_resource.rb', line 257

def related_item_page_count
  if value = source.dig("RelatedItems", "RelatedItemPageCount")
    value.to_i
  end
end

Returns:



264
265
266
267
268
269
270
271
272
273
274
275
# File 'lib/rapa/resources/item_resource.rb', line 264

def related_items
  case item_source_or_sources = source.dig("RelatedItems", "RelatedItem")
  when ::Array
    item_source_or_sources
  when ::Hash
    [item_source_or_sources]
  else
    []
  end.map do |related_item_source|
    ::Rapa::Resources::ItemResource.new(related_item_source["Item"])
  end
end

#relationshipString?

Returns:

  • (String, nil)


278
279
280
# File 'lib/rapa/resources/item_resource.rb', line 278

def relationship
  source.dig("RelatedItems", "Relationship")
end

#relationship_typeString?

Returns:

  • (String, nil)


283
284
285
# File 'lib/rapa/resources/item_resource.rb', line 283

def relationship_type
  source.dig("RelatedItems", "RelationshipType")
end

#release_dateDate?

Returns:

  • (Date, nil)


288
289
290
291
292
# File 'lib/rapa/resources/item_resource.rb', line 288

def release_date
  if value = source.dig("ItemAttributes", "ReleaseDate")
    parse_date(value)
  end
end

#running_timeRapa::Quantity?

Returns:



295
296
297
298
299
# File 'lib/rapa/resources/item_resource.rb', line 295

def running_time
  if value = source.dig("ItemAttributes", "RunningTime")
    ::Rapa::Quantity.new(value)
  end
end

#sales_rankInteger?

Returns:

  • (Integer, nil)


302
303
304
# File 'lib/rapa/resources/item_resource.rb', line 302

def sales_rank
  source["SalesRank"]
end

#season_sequenceInteger?

Returns:

  • (Integer, nil)


307
308
309
310
311
# File 'lib/rapa/resources/item_resource.rb', line 307

def season_sequence
  if value = source.dig("ItemAttributes", "SeasonSequence")
    value.to_i
  end
end

#similar_productsArray<Rapa::SimilarProduct>

Returns:



314
315
316
317
318
319
320
321
322
323
324
325
# File 'lib/rapa/resources/item_resource.rb', line 314

def similar_products
  case similar_product_source_or_sources = source["SimilarProducts"]
  when ::Array
    similar_product_sources
  when ::Hash
    [similar_product_source_or_sources]
  else
    []
  end.map do |similar_product_source|
    ::Rapa::SimilarProduct.new(similar_product_source)
  end
end

#studioString?

Returns:

  • (String, nil)


328
329
330
# File 'lib/rapa/resources/item_resource.rb', line 328

def studio
  source.dig("ItemAttributes", "Studio")
end

#titleString?

Returns:

  • (String, nil)


333
334
335
# File 'lib/rapa/resources/item_resource.rb', line 333

def title
  source.dig("ItemAttributes", "Title")
end

#url_add_to_wishlistString?

Returns:

  • (String, nil)


338
339
340
# File 'lib/rapa/resources/item_resource.rb', line 338

def url_add_to_wishlist
  item_links["Add To Wishlist"]
end

#url_all_customer_reviewsString?

Returns:

  • (String, nil)


343
344
345
# File 'lib/rapa/resources/item_resource.rb', line 343

def url_all_customer_reviews
  item_links["All Customer Reviews"]
end

#url_all_offersString?

Returns:

  • (String, nil)


348
349
350
# File 'lib/rapa/resources/item_resource.rb', line 348

def url_all_offers
  item_links["All Offers"]
end

#url_customer_reviews_iframeString?

Returns:

  • (String, nil)


353
354
355
# File 'lib/rapa/resources/item_resource.rb', line 353

def url_customer_reviews_iframe
  source.dig("CustomerReviews", "IFrameURL")
end

#url_details_pageString

Returns:

  • (String)


358
359
360
# File 'lib/rapa/resources/item_resource.rb', line 358

def url_details_page
  source["DetailPageURL"]
end

#url_tell_a_friendString?

Returns:

  • (String, nil)


363
364
365
# File 'lib/rapa/resources/item_resource.rb', line 363

def url_tell_a_friend
  item_links["Tell A Friend"]
end