asin 0.5.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -30,7 +30,7 @@ require 'base64'
30
30
  # Amazon Standard Identification Number (ASIN):
31
31
  #
32
32
  # item = lookup '1430218150'
33
- # item.title
33
+ # item.first.title
34
34
  # => "Learn Objective-C on the Mac (Learn Series)"
35
35
  #
36
36
  # OR search with fulltext/ASIN/ISBN
@@ -128,11 +128,16 @@ module ASIN
128
128
 
129
129
  # Performs an +ItemLookup+ REST call against the Amazon API.
130
130
  #
131
- # Expects an ASIN (Amazon Standard Identification Number) and returns an +SimpleItem+:
131
+ # Expects an arbitrary number of ASIN (Amazon Standard Identification Number) and returns an array of +SimpleItem+:
132
132
  #
133
133
  # item = lookup '1430218150'
134
134
  # item.title
135
135
  # => "Learn Objective-C on the Mac (Learn Series)"
136
+ # items = lookup ['1430218150', '0439023521']
137
+ # items[0].title
138
+ # => "Learn Objective-C on the Mac (Learn Series)"
139
+ # items[1].title
140
+ # => "The Hunger Games"
136
141
  #
137
142
  # ==== Options:
138
143
  #
@@ -140,9 +145,10 @@ module ASIN
140
145
  #
141
146
  # lookup(asin, :ResponseGroup => :Medium)
142
147
  #
143
- def lookup(asin, params={:ResponseGroup => :Medium})
144
- response = call(params.merge(:Operation => :ItemLookup, :ItemId => asin))
145
- handle_item(response['ItemLookupResponse']['Items']['Item'])
148
+ def lookup(*asins)
149
+ params = asins.last.is_a?(Hash) ? asins.pop : {:ResponseGroup => :Medium}
150
+ response = call(params.merge(:Operation => :ItemLookup, :ItemId => asins.join(',')))
151
+ arrayfy(response['ItemLookupResponse']['Items']['Item']).map {|item| handle_item(item)}
146
152
  end
147
153
 
148
154
  # Performs an +ItemSearch+ REST call against the Amazon API.
@@ -328,13 +334,8 @@ module ASIN
328
334
  handle_type(cart, Configuration.cart_type)
329
335
  end
330
336
 
331
-
332
- def credentials_valid?
333
- Configuration.secret && Configuration.key
334
- end
335
-
336
337
  def call(params)
337
- raise "you have to configure ASIN: 'configure :secret => 'your-secret', :key => 'your-key''" unless credentials_valid?
338
+ Configuration.validate_credentials!
338
339
 
339
340
  log(:debug, "calling with params=#{params}")
340
341
  signed = create_signed_query_string(params)
@@ -15,9 +15,11 @@ module ASIN
15
15
  #
16
16
  # ASIN::Configuration.configure do |config|
17
17
  # config.secret = 'your-secret'
18
- # config.key = 'your-key'
18
+ # config.key = 'your-key'
19
19
  # end
20
20
  #
21
+ # With the latest version of the Product Advertising API you need to include your associate_tag[https://affiliate-program.amazon.com/gp/advertising/api/detail/api-changes.html].
22
+ #
21
23
  # You may pass options as a hash as well:
22
24
  #
23
25
  # ASIN::Configuration.configure :secret => 'your-secret', :key => 'your-key'
@@ -32,15 +34,15 @@ module ASIN
32
34
  #
33
35
  # ==== Options:
34
36
  #
35
- # [secret] the API secret key
36
- # [key] the API access key
37
+ # [secret] the API secret key (required)
38
+ # [key] the API access key (required)
39
+ # [associate_tag] your Amazon associate tag. Default is blank (required in latest API version)
37
40
  # [host] the host, which defaults to 'webservices.amazon.com'
38
41
  # [logger] a different logger than logging to STDERR (nil for no logging)
42
+ # [version] a custom version of the API calls. Default is 2010-11-01
39
43
  # [item_type] a different class for SimpleItem, use :mash / :rash for Hashie::Mash / Hashie::Rash or :raw for a plain hash
40
44
  # [cart_type] a different class for SimpleCart, use :mash / :rash for Hashie::Mash / Hashie::Rash or :raw for a plain hash
41
45
  # [node_type] a different class for SimpleNode, use :mash / :rash for Hashie::Mash / Hashie::Rash or :raw for a plain hash
42
- # [version] a custom version of the API calls. Default is 2010-11-01
43
- # [associate_tag] your Amazon associate tag. Default is blank.
44
46
  #
45
47
  def configure(options={})
46
48
  init_config
@@ -63,27 +65,33 @@ module ASIN
63
65
  self
64
66
  end
65
67
 
68
+ # Checks if given credentials are valid and raises an error if not.
69
+ #
70
+ def validate_credentials!
71
+ raise "you have to configure ASIN: 'configure :secret => 'your-secret', :key => 'your-key''" unless @secret && @key
72
+ end
73
+
66
74
  # Resets configuration to defaults
67
75
  #
68
76
  def reset
69
77
  init_config(true)
70
78
  end
71
79
 
72
- private
80
+ private()
73
81
 
74
- def init_config(force=false)
75
- return if @init && !force
76
- @init = true
77
- @secret = ''
78
- @key = ''
79
- @host = 'webservices.amazon.com'
80
- @logger = Logger.new(STDERR)
81
- @item_type = SimpleItem
82
- @cart_type = SimpleCart
83
- @node_type = SimpleNode
84
- @version = '2010-11-01'
85
- @associate_tag = ''
86
- end
82
+ def init_config(force=false)
83
+ return if @init && !force
84
+ @init = true
85
+ @secret = ''
86
+ @key = ''
87
+ @host = 'webservices.amazon.com'
88
+ @logger = Logger.new(STDERR)
89
+ @item_type = SimpleItem
90
+ @cart_type = SimpleCart
91
+ @node_type = SimpleNode
92
+ @version = '2010-11-01'
93
+ @associate_tag = ''
94
+ end
87
95
  end
88
96
  end
89
97
  end
@@ -1,3 +1,3 @@
1
1
  module ASIN
2
- VERSION = "0.5.1"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -12,15 +12,17 @@ module ASIN
12
12
  puts "configure #{@secret} and #{@key} for this test"
13
13
  end
14
14
 
15
- context "lookup and search" do
15
+ context "browse_node" do
16
16
  before do
17
17
  @helper.configure :secret => @secret, :key => @key
18
18
  end
19
19
 
20
- it "should lookup a book" do
21
- item = @helper.browse_node(ANY_BROWSE_NODE_ID)
22
- item.node_id.should eql(ANY_BROWSE_NODE_ID)
23
- item.name.should eql('Comedy')
20
+ it "should lookup a browse_node" do
21
+ VCR.use_cassette("browse_node_#{ANY_BROWSE_NODE_ID}", :match_requests_on => [:host, :path]) do
22
+ item = @helper.browse_node(ANY_BROWSE_NODE_ID)
23
+ item.node_id.should eql(ANY_BROWSE_NODE_ID)
24
+ item.name.should eql('Comedy')
25
+ end
24
26
  end
25
27
  end
26
28
  end
@@ -16,9 +16,11 @@ module ASIN
16
16
  context "cart" do
17
17
 
18
18
  it "should create a cart" do
19
- cart = @helper.create_cart({:asin => ANY_ASIN, :quantity => 1}, {:asin => ANY_OTHER_ASIN, :quantity => 2})
20
- cart.valid?.should be(true)
21
- cart.empty?.should be(false)
19
+ VCR.use_cassette("create_cart_with_asin_#{ANY_ASIN}_and_other_asin_#{ANY_OTHER_ASIN}", :match_requests_on => [:host, :path]) do
20
+ cart = @helper.create_cart({:asin => ANY_ASIN, :quantity => 1}, {:asin => ANY_OTHER_ASIN, :quantity => 2})
21
+ cart.valid?.should be(true)
22
+ cart.empty?.should be(false)
23
+ end
22
24
  end
23
25
 
24
26
  it "should handle item paramters" do
@@ -28,35 +30,42 @@ module ASIN
28
30
 
29
31
  context "with an existing cart" do
30
32
 
31
- before do
32
- @cart = @helper.create_cart({:asin => ANY_ASIN, :quantity => 1})
33
- @cart.valid?.should be(true)
34
- end
35
-
36
33
  it "should clear a cart" do
37
- cart = @helper.clear_cart(@cart)
38
- cart.valid?.should be(true)
39
- cart.empty?.should be(true)
34
+ VCR.use_cassette("clear_cart", :match_requests_on => [:host, :path]) do
35
+ @cart = @helper.create_cart({:asin => ANY_ASIN, :quantity => 1})
36
+ cart = @helper.clear_cart(@cart)
37
+ cart.valid?.should be(true)
38
+ cart.empty?.should be(true)
39
+ end
40
40
  end
41
41
 
42
42
  it "should get a cart" do
43
- cart = @helper.get_cart(@cart.cart_id, @cart.hmac)
44
- cart.valid?.should be(true)
45
- cart.empty?.should be(false)
43
+ VCR.use_cassette("get_cart", :match_requests_on => [:host, :path]) do
44
+ @cart = @helper.create_cart({:asin => ANY_ASIN, :quantity => 1})
45
+ cart = @helper.get_cart(@cart.cart_id, @cart.hmac)
46
+ cart.valid?.should be(true)
47
+ cart.empty?.should be(false)
48
+ end
46
49
  end
47
50
 
48
51
  it "should add items to a cart" do
49
- cart = @helper.add_items(@cart, {:asin => ANY_OTHER_ASIN, :quantity => 2})
50
- cart.valid?.should be(true)
51
- cart.empty?.should be(false)
52
- cart.items.should have(2).things
52
+ VCR.use_cassette("add_items#{ANY_OTHER_ASIN}", :match_requests_on => [:host, :path]) do
53
+ @cart = @helper.create_cart({:asin => ANY_ASIN, :quantity => 1})
54
+ cart = @helper.add_items(@cart, {:asin => ANY_OTHER_ASIN, :quantity => 2})
55
+ cart.valid?.should be(true)
56
+ cart.empty?.should be(false)
57
+ cart.items.should have(2).things
58
+ end
53
59
  end
54
60
 
55
61
  it "should update a cart" do
56
- item_id = @cart.items.first.CartItemId
57
- cart = @helper.update_items(@cart, {:cart_item_id => item_id, :action => 'SaveForLater'}, {:cart_item_id => item_id, :quantity => 7})
58
- cart.saved_items.should have(1).things
59
- cart.valid?.should be(true)
62
+ VCR.use_cassette("update_items", :match_requests_on => [:host, :path]) do
63
+ @cart = @helper.create_cart({:asin => ANY_ASIN, :quantity => 1})
64
+ item_id = @cart.items.first.CartItemId
65
+ cart = @helper.update_items(@cart, {:cart_item_id => item_id, :action => 'SaveForLater'}, {:cart_item_id => item_id, :quantity => 7})
66
+ cart.saved_items.should have(1).things
67
+ cart.valid?.should be(true)
68
+ end
60
69
  end
61
70
 
62
71
  end
@@ -14,7 +14,9 @@ module ASIN
14
14
 
15
15
  context "configuration" do
16
16
  it "should fail without secret and key" do
17
- lambda { @helper.lookup 'bla' }.should raise_error(RuntimeError)
17
+ VCR.use_cassette("bad_configuration", :match_requests_on => [:host, :path]) do
18
+ lambda { @helper.lookup 'bla' }.should raise_error(RuntimeError)
19
+ end
18
20
  end
19
21
 
20
22
  it "should fail with wrong configuration key" do
@@ -61,77 +63,107 @@ module ASIN
61
63
  end
62
64
 
63
65
  it "should lookup a book" do
64
- item = @helper.lookup(ANY_ASIN)
65
- item.title.should =~ /Learn Objective/
66
+ VCR.use_cassette("lookup_#{ANY_ASIN}", :match_requests_on => [:host, :path]) do
67
+ items = @helper.lookup(ANY_ASIN)
68
+ items.first.title.should =~ /Learn Objective/
69
+ end
66
70
  end
67
71
 
68
72
  it "should have metadata" do
69
- item = @helper.lookup(ANY_ASIN, :ResponseGroup => :Medium)
70
- item.asin.should eql(ANY_ASIN)
71
- item.title.should =~ /Learn Objective/
72
- item.amount.should eql(3999)
73
- item.details_url.should eql('http://www.amazon.com/Learn-Objective-C-Mac-Mark-Dalrymple/dp/1430218150%3FSubscriptionId%3DAKIAJFA5X7RTOKFNPVZQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1430218150')
74
- item.image_url.should eql('http://ecx.images-amazon.com/images/I/41kq5bDvnUL.jpg')
75
- item.review.should =~ /Learn Objective-C on the Macintosh/
73
+ VCR.use_cassette("lookup_#{ANY_ASIN}_medium", :match_requests_on => [:host, :path]) do
74
+ items = @helper.lookup(ANY_ASIN, :ResponseGroup => :Medium)
75
+ item = items.first
76
+ item.asin.should eql(ANY_ASIN)
77
+ item.title.should =~ /Learn Objective/
78
+ item.amount.should eql(3999)
79
+ item.details_url.should eql('http://www.amazon.com/Learn-Objective-C-Mac-Mark-Dalrymple/dp/1430218150%3FSubscriptionId%3DAKIAJFA5X7RTOKFNPVZQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1430218150')
80
+ item.image_url.should eql('http://ecx.images-amazon.com/images/I/41kq5bDvnUL.jpg')
81
+ item.review.should =~ /Learn Objective-C on the Macintosh/
82
+ end
83
+ end
84
+
85
+ it "should lookup multiple books" do
86
+ VCR.use_cassette("lookup_multiple_asins", :match_requests_on => [:host, :path]) do
87
+ items = @helper.lookup(ANY_ASIN, ANY_OTHER_ASIN)
88
+
89
+ items.first.title.should =~ /Learn Objective/
90
+ items.last.title.should =~ /Beginning iPhone Development/
91
+ end
76
92
  end
77
93
 
78
94
  it "should return a custom item class" do
79
- module TEST
80
- class TestItem
81
- attr_accessor :testo
82
- def initialize(hash)
83
- @testo = hash
95
+ VCR.use_cassette("lookup_#{ANY_ASIN}_item_class", :match_requests_on => [:host, :path]) do
96
+ module TEST
97
+ class TestItem
98
+ attr_accessor :testo
99
+ def initialize(hash)
100
+ @testo = hash
101
+ end
84
102
  end
85
103
  end
104
+ @helper.configure :item_type => TEST::TestItem
105
+ @helper.lookup(ANY_ASIN).first.testo.should_not be_nil
86
106
  end
87
- @helper.configure :item_type => TEST::TestItem
88
- @helper.lookup(ANY_ASIN).testo.should_not be_nil
89
107
  end
90
108
 
91
109
  it "should return a raw value" do
92
- @helper.configure :item_type => :raw
93
- @helper.lookup(ANY_ASIN)['ItemAttributes']['Title'].should_not be_nil
110
+ VCR.use_cassette("lookup_#{ANY_ASIN}_raw", :match_requests_on => [:host, :path]) do
111
+ @helper.configure :item_type => :raw
112
+ @helper.lookup(ANY_ASIN).first['ItemAttributes']['Title'].should_not be_nil
113
+ end
94
114
  end
95
115
 
96
116
  it "should return a mash value" do
97
- @helper.configure :item_type => :mash
98
- @helper.lookup(ANY_ASIN).ItemAttributes.Title.should_not be_nil
117
+ VCR.use_cassette("lookup_#{ANY_ASIN}_mash", :match_requests_on => [:host, :path]) do
118
+ @helper.configure :item_type => :mash
119
+ @helper.lookup(ANY_ASIN).first.ItemAttributes.Title.should_not be_nil
120
+ end
99
121
  end
100
122
 
101
123
  it "should return a rash value" do
102
- @helper.configure :item_type => :rash
103
- @helper.lookup(ANY_ASIN).item_attributes.title.should_not be_nil
124
+ VCR.use_cassette("lookup_#{ANY_ASIN}_rash", :match_requests_on => [:host, :path]) do
125
+ @helper.configure :item_type => :rash
126
+ @helper.lookup(ANY_ASIN).first.item_attributes.title.should_not be_nil
127
+ end
104
128
  end
105
-
129
+
106
130
  it "should search_keywords and handle a single result" do
107
- items = @helper.search_keywords('0471317519')
108
- items.first.title.should =~ /A Self-Teaching Guide/
131
+ VCR.use_cassette("search_keywords_single_result", :match_requests_on => [:host, :path]) do
132
+ items = @helper.search_keywords('0471317519')
133
+ items.first.title.should =~ /A Self-Teaching Guide/
134
+ end
109
135
  end
110
136
 
111
- it "should search_keywords book with fulltext" do
112
- items = @helper.search_keywords 'Learn', 'Objective-C'
113
- items.should have(10).things
114
-
115
- items.first.title.should =~ /Learn Objective/
137
+ it "should search_keywords a book with fulltext" do
138
+ VCR.use_cassette("search_keywords", :match_requests_on => [:host, :path]) do
139
+ items = @helper.search_keywords 'Learn', 'Objective-C'
140
+ items.should have(10).things
141
+ items.first.title.should =~ /Learn Objective/
142
+ end
116
143
  end
117
144
 
118
145
  it "should search_keywords never mind music" do
119
- items = @helper.search_keywords 'nirvana', 'never mind', :SearchIndex => :Music
120
- items.should have(10).things
121
-
122
- items.first.title.should =~ /Nevermind/
146
+ VCR.use_cassette("search_keywords_index_music", :match_requests_on => [:host, :path]) do
147
+ items = @helper.search_keywords 'nirvana', 'never mind', :SearchIndex => :Music
148
+ items.should have(10).things
149
+ items.first.title.should =~ /Nevermind/
150
+ end
123
151
  end
124
152
 
125
153
  it "should search music" do
126
- items = @helper.search :SearchIndex => :Music
127
- items.should have(0).things
154
+ VCR.use_cassette("search_index_music", :match_requests_on => [:host, :path]) do
155
+ items = @helper.search :SearchIndex => :Music
156
+ items.should have(0).things
157
+ end
128
158
  end
129
159
 
130
160
  it "should search never mind music" do
131
- items = @helper.search :Keywords => 'nirvana', :SearchIndex => :Music
132
- items.should have(10).things
161
+ VCR.use_cassette("search_keywords_key_index_music", :match_requests_on => [:host, :path]) do
162
+ items = @helper.search :Keywords => 'nirvana', :SearchIndex => :Music
163
+ items.should have(10).things
133
164
 
134
- items.first.title.should =~ /Nevermind/
165
+ items.first.title.should =~ /Nevermind/
166
+ end
135
167
  end
136
168
  end
137
169
  end
@@ -1,12 +1,26 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__),'..','..','lib')
2
+
2
3
  require 'rspec'
3
4
  require 'asin'
4
5
  require 'pp'
6
+ require 'httpclient'
7
+ require 'vcr'
8
+
9
+ VCR.config do |c|
10
+ c.cassette_library_dir = 'cassettes'
11
+ c.stub_with :webmock
12
+ # c.default_cassette_options = { :record => :new_episodes }
13
+ end
5
14
 
6
15
  ANY_ASIN = '1430218150'
7
16
  ANY_OTHER_ASIN = '1430216263'
8
17
  ANY_BROWSE_NODE_ID = '599826'
9
18
 
10
- RSpec.configure do |c|
11
- c.mock_with :rspec
19
+ RSpec.configure do |config|
20
+ config.mock_with :rspec
21
+ config.extend VCR::RSpec::Macros
12
22
  end
23
+
24
+ # setup for travis-ci
25
+ ENV['ASIN_SECRET'] ||= 'any_secret'
26
+ ENV['ASIN_KEY'] ||= 'any_key'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-08-03 00:00:00.000000000 +02:00
12
+ date: 2011-08-16 00:00:00.000000000 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: crack
17
- requirement: &2153681520 !ruby/object:Gem::Requirement
17
+ requirement: &2153806140 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 0.1.8
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2153681520
25
+ version_requirements: *2153806140
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: hashie
28
- requirement: &2153681020 !ruby/object:Gem::Requirement
28
+ requirement: &2153805640 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,32 +33,32 @@ dependencies:
33
33
  version: 1.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2153681020
36
+ version_requirements: *2153805640
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: httpi
39
- requirement: &2153680560 !ruby/object:Gem::Requirement
39
+ requirement: &2153805180 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
43
43
  - !ruby/object:Gem::Version
44
- version: 0.9.2
44
+ version: 0.9.5
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *2153680560
47
+ version_requirements: *2153805180
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: httpclient
50
- requirement: &2153680100 !ruby/object:Gem::Requirement
50
+ requirement: &2153804720 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ~>
54
54
  - !ruby/object:Gem::Version
55
- version: 2.2.0.2
55
+ version: 2.2.1
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *2153680100
58
+ version_requirements: *2153804720
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: rash
61
- requirement: &2153679640 !ruby/object:Gem::Requirement
61
+ requirement: &2153804260 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ~>
@@ -66,10 +66,54 @@ dependencies:
66
66
  version: 0.3.0
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *2153679640
69
+ version_requirements: *2153804260
70
+ - !ruby/object:Gem::Dependency
71
+ name: rake
72
+ requirement: &2153803800 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 0.9.2
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: *2153803800
81
+ - !ruby/object:Gem::Dependency
82
+ name: httpclient
83
+ requirement: &2153803340 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ~>
87
+ - !ruby/object:Gem::Version
88
+ version: 2.2.1
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: *2153803340
92
+ - !ruby/object:Gem::Dependency
93
+ name: vcr
94
+ requirement: &2153802880 !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ~>
98
+ - !ruby/object:Gem::Version
99
+ version: 1.10.3
100
+ type: :development
101
+ prerelease: false
102
+ version_requirements: *2153802880
103
+ - !ruby/object:Gem::Dependency
104
+ name: webmock
105
+ requirement: &2153802420 !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: 1.6.4
111
+ type: :development
112
+ prerelease: false
113
+ version_requirements: *2153802420
70
114
  - !ruby/object:Gem::Dependency
71
115
  name: rspec
72
- requirement: &2153679180 !ruby/object:Gem::Requirement
116
+ requirement: &2153801960 !ruby/object:Gem::Requirement
73
117
  none: false
74
118
  requirements:
75
119
  - - ~>
@@ -77,18 +121,18 @@ dependencies:
77
121
  version: 2.6.0
78
122
  type: :development
79
123
  prerelease: false
80
- version_requirements: *2153679180
124
+ version_requirements: *2153801960
81
125
  - !ruby/object:Gem::Dependency
82
126
  name: fuubar
83
- requirement: &2153678720 !ruby/object:Gem::Requirement
127
+ requirement: &2153801500 !ruby/object:Gem::Requirement
84
128
  none: false
85
129
  requirements:
86
130
  - - ~>
87
131
  - !ruby/object:Gem::Version
88
- version: 0.0.4
132
+ version: 0.0.5
89
133
  type: :development
90
134
  prerelease: false
91
- version_requirements: *2153678720
135
+ version_requirements: *2153801500
92
136
  description: Amazon Simple INterface.
93
137
  email:
94
138
  - phoetmail@googlemail.com
@@ -99,11 +143,32 @@ files:
99
143
  - .document
100
144
  - .gitignore
101
145
  - .rvmrc
146
+ - .travis.yml
102
147
  - CHANGELOG.rdoc
103
148
  - Gemfile
104
149
  - Gemfile.lock
105
150
  - README.rdoc
106
151
  - asin.gemspec
152
+ - cassettes/add_items1430216263.yml
153
+ - cassettes/bad_configuration.yml
154
+ - cassettes/browse_node_599826.yml
155
+ - cassettes/clear_cart.yml
156
+ - cassettes/create_cart_with_asin_1430218150_and_other_asin_1430216263.yml
157
+ - cassettes/get_cart.yml
158
+ - cassettes/lookup_1430218150-0439023521_multiple.yml
159
+ - cassettes/lookup_1430218150.yml
160
+ - cassettes/lookup_1430218150_item_class.yml
161
+ - cassettes/lookup_1430218150_mash.yml
162
+ - cassettes/lookup_1430218150_medium.yml
163
+ - cassettes/lookup_1430218150_rash.yml
164
+ - cassettes/lookup_1430218150_raw.yml
165
+ - cassettes/lookup_multiple_asins.yml
166
+ - cassettes/search_index_music.yml
167
+ - cassettes/search_keywords.yml
168
+ - cassettes/search_keywords_index_music.yml
169
+ - cassettes/search_keywords_key_index_music.yml
170
+ - cassettes/search_keywords_single_result.yml
171
+ - cassettes/update_items.yml
107
172
  - lib/asin.rb
108
173
  - lib/asin/client.rb
109
174
  - lib/asin/configuration.rb