asin 0.5.1 → 0.6.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.
@@ -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