vacuum 3.2.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/lib/vacuum/locale.rb +1 -0
- data/lib/vacuum/request.rb +1 -1
- data/lib/vacuum/response.rb +10 -5
- data/lib/vacuum/version.rb +1 -1
- data/test/helper.rb +10 -0
- data/test/integration_helper.rb +2 -2
- data/test/locales.yml +28 -0
- data/test/vacuum/test_locale.rb +7 -7
- data/test/vacuum/test_operation.rb +1 -1
- data/test/vacuum/test_response.rb +1 -1
- metadata +21 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1b71a457cf1479084393d842f764c235df227e69df803d3831a61ad58c17e58
|
4
|
+
data.tar.gz: 58f3653a02464e6c84d2bb6eca1b5ef1d38beef082c08586850fd2819411e2e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78da469aa7084427b691489bfc180f280cd3dab342665d1ce4b8df5cb996b497a5344bd764fa8122f25a37f9df080580b4057ce70287982654b18b9032a2bc17
|
7
|
+
data.tar.gz: 6a5bdede32ec18b191e1204b7fad7a5559ddeed01ab4316131b8349ca8037528612a9c6b0f56f6579e986e85ec644cbfa35c65663129406854dc62ec200f1eca
|
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# Vacuum
|
2
2
|
|
3
3
|
[](https://github.com/hakanensari/vacuum/actions)
|
4
|
+
[](https://codeclimate.com/github/hakanensari/vacuum/maintainability)
|
5
|
+
[](https://codeclimate.com/github/hakanensari/vacuum/test_coverage)
|
4
6
|
|
5
7
|
Vacuum is a Ruby wrapper to [Amazon Product Advertising API 5.0](https://webservices.amazon.com/paapi5/documentation/). The API provides programmatic access to query product information on the Amazon marketplaces.
|
6
8
|
|
data/lib/vacuum/locale.rb
CHANGED
@@ -19,6 +19,7 @@ module Vacuum
|
|
19
19
|
it: ['webservices.amazon.it', 'eu-west-1'],
|
20
20
|
jp: ['webservices.amazon.co.jp', 'us-west-2'],
|
21
21
|
mx: ['webservices.amazon.com.mx', 'us-east-1'],
|
22
|
+
sg: ['webservices.amazon.sg', 'us-west-2'],
|
22
23
|
es: ['webservices.amazon.es', 'eu-west-1'],
|
23
24
|
tr: ['webservices.amazon.com.tr', 'eu-west-1'],
|
24
25
|
ae: ['webservices.amazon.ae', 'eu-west-1'],
|
data/lib/vacuum/request.rb
CHANGED
@@ -28,7 +28,7 @@ module Vacuum
|
|
28
28
|
# @param [String] partner_type
|
29
29
|
# @raise [Locale::NotFound] if marketplace is not found
|
30
30
|
def initialize(marketplace: :us, **args)
|
31
|
-
@locale = Locale.new(marketplace, args)
|
31
|
+
@locale = Locale.new(marketplace, **args)
|
32
32
|
@client = HTTP::Client.new
|
33
33
|
end
|
34
34
|
|
data/lib/vacuum/response.rb
CHANGED
@@ -10,24 +10,29 @@ module Vacuum
|
|
10
10
|
extend Forwardable
|
11
11
|
|
12
12
|
# @!method dig(*key)
|
13
|
-
# Delegates to {Response#to_h} to extract a nested
|
14
|
-
#
|
15
|
-
# @param [String] key
|
13
|
+
# Delegates to the Hash returned by {Response#to_h} to extract a nested
|
14
|
+
# value specified by the sequence of keys
|
15
|
+
# @param [String] key one or more keys
|
16
16
|
# @see https://ruby-doc.org/core/Hash.html#method-i-dig
|
17
17
|
def_delegator :to_h, :dig
|
18
18
|
|
19
19
|
class << self
|
20
|
+
# @return [nil,.parse] an optional custom parser
|
20
21
|
attr_accessor :parser
|
21
22
|
end
|
22
23
|
|
23
|
-
|
24
|
-
|
24
|
+
# @return [nil,.parse] an optional custom parser
|
25
25
|
attr_writer :parser
|
26
26
|
|
27
|
+
# @!attribute [r] parser
|
28
|
+
# @return [nil,.parse] an optional custom parser
|
27
29
|
def parser
|
28
30
|
@parser || self.class.parser
|
29
31
|
end
|
30
32
|
|
33
|
+
# Parses the response body
|
34
|
+
#
|
35
|
+
# @note Delegates to {#to_h} if no custom parser is set
|
31
36
|
def parse
|
32
37
|
parser ? parser.parse(body) : to_h
|
33
38
|
end
|
data/lib/vacuum/version.rb
CHANGED
data/test/helper.rb
ADDED
data/test/integration_helper.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'helper'
|
4
4
|
require 'vcr'
|
5
5
|
|
6
6
|
require 'locales'
|
@@ -45,7 +45,7 @@ module Vacuum
|
|
45
45
|
private
|
46
46
|
|
47
47
|
def requests
|
48
|
-
Locales.map { |credentials| Vacuum.new(credentials) }.shuffle
|
48
|
+
Locales.map { |credentials| Vacuum.new(**credentials) }.shuffle
|
49
49
|
end
|
50
50
|
end
|
51
51
|
end
|
data/test/locales.yml
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
- :marketplace: CA
|
2
|
+
:access_key: AKIAIWQTVHVWCQA5THXQ
|
3
|
+
:secret_key: VOhSIqIY1wF5selhhJYJGVnIET9k5q0J8QjTX38i
|
4
|
+
:partner_tag: adabo00-20
|
5
|
+
- :marketplace: ES
|
6
|
+
:access_key: AKIAJJF26BJLZLSJLFBQ
|
7
|
+
:secret_key: txz+ESbb9Gzw6adcdKtIsLGOP0POFxtP0GHDw1ul
|
8
|
+
:partner_tag: adabo00-21
|
9
|
+
- :marketplace: DE
|
10
|
+
:access_key: AKIAJGN5UNM43HHV5MZA
|
11
|
+
:secret_key: ZdccSATM45MN9mjRTTw89mee5VbFoTRd9hYI2sMV
|
12
|
+
:partner_tag: adabo23-21
|
13
|
+
- :marketplace: FR
|
14
|
+
:access_key: AKIAJDNYBNMN23YBFK3A
|
15
|
+
:secret_key: hMet2Z4I5tgT6M8mHlGBGUajGyAZN/h2DPFb9z3j
|
16
|
+
:partner_tag: adabo-21
|
17
|
+
- :marketplace: IT
|
18
|
+
:access_key: AKIAJVBAH4XJHK6YF46Q
|
19
|
+
:secret_key: aCb2AeLxjNf4KM+Fxx2+ZOw0ftOnnMkuWqVR1kuE
|
20
|
+
:partner_tag: adabo0c-21
|
21
|
+
- :marketplace: GB
|
22
|
+
:access_key: AKIAJPAXMP45DOQJPHJQ
|
23
|
+
:secret_key: feZKxFjRGLtmEO3JXpmCGdDaCPA7AHiVFBhQ/fkf
|
24
|
+
:partner_tag: adabo21-21
|
25
|
+
- :marketplace: US
|
26
|
+
:access_key: AKIAIWQTVHVWCQA5THXQ
|
27
|
+
:secret_key: VOhSIqIY1wF5selhhJYJGVnIET9k5q0J8QjTX38i
|
28
|
+
:partner_tag: adabo-20
|
data/test/vacuum/test_locale.rb
CHANGED
@@ -1,36 +1,36 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'helper'
|
4
4
|
require 'vacuum/locale'
|
5
5
|
|
6
6
|
module Vacuum
|
7
7
|
class TestLocale < Minitest::Test
|
8
8
|
def test_host
|
9
|
-
locale = Locale.new(:us, credentials)
|
9
|
+
locale = Locale.new(:us, **credentials)
|
10
10
|
assert locale.host
|
11
11
|
end
|
12
12
|
|
13
13
|
def test_region
|
14
|
-
locale = Locale.new(:us, credentials)
|
14
|
+
locale = Locale.new(:us, **credentials)
|
15
15
|
assert locale.region
|
16
16
|
end
|
17
17
|
|
18
18
|
def test_partner_type_default
|
19
|
-
locale = Locale.new(:us, credentials)
|
19
|
+
locale = Locale.new(:us, **credentials)
|
20
20
|
assert locale.partner_type
|
21
21
|
end
|
22
22
|
|
23
23
|
def test_upcased_marketplace
|
24
|
-
Locale.new('US', credentials) # does not raise
|
24
|
+
Locale.new('US', **credentials) # does not raise
|
25
25
|
end
|
26
26
|
|
27
27
|
def test_uk
|
28
|
-
Locale.new(:uk, credentials) # does not raise
|
28
|
+
Locale.new(:uk, **credentials) # does not raise
|
29
29
|
end
|
30
30
|
|
31
31
|
def test_not_found
|
32
32
|
assert_raises Locale::NotFound do
|
33
|
-
Locale.new(:foo, credentials)
|
33
|
+
Locale.new(:foo, **credentials)
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vacuum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hakan Ensari
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sigv4
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: simplecov
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: vcr
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -139,8 +153,10 @@ files:
|
|
139
153
|
- lib/vacuum/response.rb
|
140
154
|
- lib/vacuum/version.rb
|
141
155
|
- test/cassettes/vacuum.yml
|
156
|
+
- test/helper.rb
|
142
157
|
- test/integration_helper.rb
|
143
158
|
- test/locales.rb
|
159
|
+
- test/locales.yml
|
144
160
|
- test/locales.yml.example
|
145
161
|
- test/vacuum/test_locale.rb
|
146
162
|
- test/vacuum/test_operation.rb
|
@@ -165,11 +181,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
165
181
|
- !ruby/object:Gem::Version
|
166
182
|
version: '0'
|
167
183
|
requirements: []
|
168
|
-
rubygems_version: 3.
|
184
|
+
rubygems_version: 3.1.2
|
169
185
|
signing_key:
|
170
186
|
specification_version: 4
|
171
187
|
summary: Amazon Product Advertising in Ruby
|
172
188
|
test_files:
|
189
|
+
- test/helper.rb
|
173
190
|
- test/vacuum/test_operation.rb
|
174
191
|
- test/vacuum/test_request.rb
|
175
192
|
- test/vacuum/test_response.rb
|
@@ -177,4 +194,5 @@ test_files:
|
|
177
194
|
- test/cassettes/vacuum.yml
|
178
195
|
- test/integration_helper.rb
|
179
196
|
- test/locales.rb
|
197
|
+
- test/locales.yml
|
180
198
|
- test/locales.yml.example
|