paapi 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 575a4e25893cf1bb736c8408e3e20bc6b5715106c08fb2091f345da874ef92e7
4
- data.tar.gz: fc0bd5eb43f322b06791debb6e5bbbfed24229d05b976eadab85ade83db460e4
3
+ metadata.gz: cd5bdeba6d4ee3d4958b7d23f6cc3402a2461a6ea3791411d5f43db1bef8a9b6
4
+ data.tar.gz: 240b621b910f947bd7b6bfdec340ee435439262b28435c16b8f95073ac6e9ae7
5
5
  SHA512:
6
- metadata.gz: a64c83aed626c43c29506fe089ea12bf9bfc462e47ea638b6b9a7c3c85e7d056cb28627bb78e6c7337fd1c8bd612d2a9c78e21fbb2b6a37530650731b66d1aa5
7
- data.tar.gz: db1456668417437c546c32141b5cb9491ced6ee78ce1fab75854d8f9423ea92683bf836df3a9b0dc024d63f238fc4c7f4769bdc6f363c5230c410cf22f2ae3d7
6
+ metadata.gz: cfac80fc181b08a016f061811582f64f5bfbed490296899097d8942df86c90f6182e59dc622755d79a3203eee4e3a3aa62e5284e2cdcbc7defc6f67c12a09e68
7
+ data.tar.gz: 767aaa41948585bd10b9a6fd4a25a3957028cf102bcd72c4cfebf65e7db9ff0c842396db5865824977eeba1d37182c10e5bed59054a0ddc558fd2928f6fdc2ca
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
+ ## 0.0.7
2
+ - Rename Item#json to Item#hash for consistency
3
+ - Add offer / listing parsing
4
+
1
5
  ## 0.0.6
2
6
  - Handle more date parsing failures.
3
7
  - Get width, height, depth and weight from items
8
+
4
9
  ## 0.0.5
5
10
 
6
11
  - Merged pull request #3 allowing options to be passed into the get_items and get_variations request
data/lib/paapi.rb CHANGED
@@ -2,6 +2,7 @@ require 'paapi/version'
2
2
 
3
3
  require 'paapi/client'
4
4
  require 'paapi/item'
5
+ require 'paapi/listing'
5
6
  require 'paapi/response'
6
7
 
7
8
  module Paapi
data/lib/paapi/item.rb CHANGED
@@ -13,7 +13,7 @@ module Paapi
13
13
  end
14
14
 
15
15
  def listings
16
- get(['Offers', 'Listings']).map {|d| Listing.new(d)}
16
+ get(['Offers', 'Listings'])&.map {|d| Listing.new(d)}
17
17
  end
18
18
 
19
19
  def asin
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'forwardable'
4
+
5
+ module Paapi
6
+ class Listing
7
+ extend Forwardable
8
+ def_delegators :@hash, :dig
9
+
10
+ attr_accessor :hash
11
+ def initialize(data)
12
+ @hash = data
13
+ end
14
+
15
+ def availability
16
+ get(%w{Availability Message})
17
+ end
18
+
19
+ def amazon_fulfilled?
20
+ get(%w{DeliveryInfo IsAmazonFulfilled})
21
+ end
22
+
23
+ def free_shipping_eligible?
24
+ get(%w{DeliveryInfo IsFreeShippingEligible})
25
+ end
26
+
27
+ def prime_eligible?
28
+ get(%w{DeliveryInfo IsPrimeEligible})
29
+ end
30
+
31
+ def price
32
+ get(%w{Price})
33
+ end
34
+
35
+ def merchant
36
+ get(%w{MerchantInfo Name})
37
+ end
38
+
39
+ def condition
40
+ get(%w{Condition Value})
41
+ end
42
+
43
+ def get(keys)
44
+ @hash.dig(*keys)
45
+ end
46
+
47
+ end
48
+ end
@@ -2,14 +2,14 @@ require 'json'
2
2
 
3
3
  module Paapi
4
4
  class Response
5
- attr_reader :http_response, :json, :datas, :doc, :items
5
+ attr_reader :http_response, :hash, :datas, :doc, :items
6
6
 
7
7
  def initialize(response)
8
8
  @http_response = response
9
- @json = JSON.parse(response.body.to_s)
9
+ @hash = JSON.parse(response.body.to_s)
10
10
 
11
- @items_data = @json.dig('ItemsResult', 'Items')
12
- @items_data ||= @json.dig('SearchResult', 'Items')
11
+ @items_data = @hash.dig('ItemsResult', 'Items')
12
+ @items_data ||= @hash.dig('SearchResult', 'Items')
13
13
  @items_data ||= []
14
14
 
15
15
  @items = @items_data.map {|d| Item.new(d)}
@@ -17,10 +17,7 @@ module Paapi
17
17
  end
18
18
 
19
19
  def result_count
20
- @json.dig('SearchResult', 'TotalResultCount')
20
+ @hash.dig('SearchResult', 'TotalResultCount')
21
21
  end
22
-
23
-
24
-
25
22
  end
26
23
  end
data/lib/paapi/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Paapi
2
- VERSION = '0.0.6'
2
+ VERSION = '0.0.7'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Milne
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-14 00:00:00.000000000 Z
11
+ date: 2019-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -141,6 +141,7 @@ files:
141
141
  - lib/paapi.rb
142
142
  - lib/paapi/client.rb
143
143
  - lib/paapi/item.rb
144
+ - lib/paapi/listing.rb
144
145
  - lib/paapi/response.rb
145
146
  - lib/paapi/version.rb
146
147
  - paapi.gemspec