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

#price_lowest_collectibleRapa::Price?

Returns:



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

def price_lowest_collectible
  if price_source = source.dig("OfferSummary", "LowestCollectiblePrice")
    ::Rapa::Price.new(price_source)
  end
end

#price_lowest_newRapa::Price?

Returns:



228
229
230
231
232
# File 'lib/rapa/resources/item_resource.rb', line 228

def price_lowest_new
  if price_source = source.dig("OfferSummary", "LowestNewPrice")
    ::Rapa::Price.new(price_source)
  end
end

#price_lowest_usedRapa::Price?

Returns:



235
236
237
238
239
# File 'lib/rapa/resources/item_resource.rb', line 235

def price_lowest_used
  if price_source = source.dig("OfferSummary", "LowestUsedPrice")
    ::Rapa::Price.new(price_source)
  end
end

#product_groupString?

Returns:

  • (String, nil)


242
243
244
# File 'lib/rapa/resources/item_resource.rb', line 242

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

#product_type_nameString?

Returns:

  • (String, nil)


247
248
249
# File 'lib/rapa/resources/item_resource.rb', line 247

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

#publication_dateDate?

Returns:

  • (Date, nil)


252
253
254
255
256
# File 'lib/rapa/resources/item_resource.rb', line 252

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

#publisherString?

Returns:

  • (String, nil)


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

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

Returns:

  • (Integer, nil)


264
265
266
267
268
# File 'lib/rapa/resources/item_resource.rb', line 264

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

Returns:

  • (Integer, nil)


271
272
273
274
275
# File 'lib/rapa/resources/item_resource.rb', line 271

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

Returns:

  • (Integer, nil)


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

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

Returns:



285
286
287
288
289
290
291
292
293
294
295
296
# File 'lib/rapa/resources/item_resource.rb', line 285

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)


299
300
301
# File 'lib/rapa/resources/item_resource.rb', line 299

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

#relationship_typeString?

Returns:

  • (String, nil)


304
305
306
# File 'lib/rapa/resources/item_resource.rb', line 304

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

#release_dateDate?

Returns:

  • (Date, nil)


309
310
311
312
313
# File 'lib/rapa/resources/item_resource.rb', line 309

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

#running_timeRapa::Quantity?

Returns:



316
317
318
319
320
# File 'lib/rapa/resources/item_resource.rb', line 316

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

#sales_rankInteger?

Returns:

  • (Integer, nil)


323
324
325
# File 'lib/rapa/resources/item_resource.rb', line 323

def sales_rank
  source["SalesRank"]
end

#season_sequenceInteger?

Returns:

  • (Integer, nil)


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

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

#similar_productsArray<Rapa::SimilarProduct>

Returns:



335
336
337
338
339
340
341
342
343
344
345
346
# File 'lib/rapa/resources/item_resource.rb', line 335

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)


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

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

#titleString?

Returns:

  • (String, nil)


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

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

#url_add_to_wishlistString?

Returns:

  • (String, nil)


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

def url_add_to_wishlist
  item_links["Add To Wishlist"]
end

#url_all_customer_reviewsString?

Returns:

  • (String, nil)


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

def url_all_customer_reviews
  item_links["All Customer Reviews"]
end

#url_all_offersString?

Returns:

  • (String, nil)


369
370
371
# File 'lib/rapa/resources/item_resource.rb', line 369

def url_all_offers
  item_links["All Offers"]
end

#url_customer_reviews_iframeString?

Returns:

  • (String, nil)


374
375
376
# File 'lib/rapa/resources/item_resource.rb', line 374

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

#url_details_pageString

Returns:

  • (String)


379
380
381
# File 'lib/rapa/resources/item_resource.rb', line 379

def url_details_page
  source["DetailPageURL"]
end

#url_tell_a_friendString?

Returns:

  • (String, nil)


384
385
386
# File 'lib/rapa/resources/item_resource.rb', line 384

def url_tell_a_friend
  item_links["Tell A Friend"]
end