asin 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/Gemfile.lock +4 -4
  2. data/lib/asin/client.rb +13 -2
  3. data/lib/asin/version.rb +1 -1
  4. data/spec/browse_node_spec.rb +0 -10
  5. data/spec/cart_spec.rb +0 -7
  6. data/spec/cassettes/add_items1430216263.yml +67 -0
  7. data/spec/cassettes/browse_node_599826.yml +38 -0
  8. data/spec/cassettes/clear_cart.yml +65 -0
  9. data/spec/cassettes/create_cart_with_asin_1430218150_and_other_asin_1430216263.yml +36 -0
  10. data/spec/cassettes/get_cart.yml +67 -0
  11. data/spec/cassettes/lookup_1430218150.yml +63 -0
  12. data/spec/cassettes/lookup_1430218150_item_class.yml +63 -0
  13. data/spec/cassettes/lookup_1430218150_mash.yml +63 -0
  14. data/spec/cassettes/lookup_1430218150_medium.yml +63 -0
  15. data/spec/cassettes/lookup_1430218150_rash.yml +63 -0
  16. data/spec/cassettes/lookup_1430218150_raw.yml +63 -0
  17. data/spec/cassettes/lookup_1430218150_small_and_alternateversions.yml +43 -0
  18. data/{cassettes → spec/cassettes}/lookup_multiple_asins.yml +12 -11
  19. data/spec/cassettes/search_index_music.yml +32 -0
  20. data/spec/cassettes/search_keywords.yml +479 -0
  21. data/{cassettes → spec/cassettes}/search_keywords_index_music.yml +36 -36
  22. data/spec/cassettes/search_keywords_key_index_music.yml +113 -0
  23. data/{cassettes → spec/cassettes}/search_keywords_single_result.yml +13 -13
  24. data/spec/cassettes/update_items.yml +70 -0
  25. data/spec/config_spec.rb +53 -0
  26. data/spec/search_spec.rb +13 -58
  27. data/spec/spec_helper.rb +13 -1
  28. metadata +134 -106
  29. data/cassettes/add_items1430216263.yml +0 -204
  30. data/cassettes/browse_node_599826.yml +0 -112
  31. data/cassettes/clear_cart.yml +0 -196
  32. data/cassettes/create_cart_with_asin_1430218150_and_other_asin_1430216263.yml +0 -36
  33. data/cassettes/get_cart.yml +0 -199
  34. data/cassettes/lookup_1430218150-0439023521_multiple.yml +0 -26
  35. data/cassettes/lookup_1430218150.yml +0 -184
  36. data/cassettes/lookup_1430218150_item_class.yml +0 -184
  37. data/cassettes/lookup_1430218150_mash.yml +0 -184
  38. data/cassettes/lookup_1430218150_medium.yml +0 -184
  39. data/cassettes/lookup_1430218150_rash.yml +0 -184
  40. data/cassettes/lookup_1430218150_raw.yml +0 -184
  41. data/cassettes/search_index_music.yml +0 -92
  42. data/cassettes/search_keywords.yml +0 -1513
  43. data/cassettes/search_keywords_key_index_music.yml +0 -231
  44. data/cassettes/update_items.yml +0 -208
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- asin (0.6.0)
4
+ asin (0.6.2)
5
5
  crack (~> 0.1.8)
6
6
  hashie (~> 1.0.0)
7
7
  httpi (~> 0.9.5)
@@ -11,10 +11,10 @@ GEM
11
11
  specs:
12
12
  addressable (2.2.6)
13
13
  crack (0.1.8)
14
- diff-lcs (1.1.2)
15
- fuubar (0.0.5)
14
+ diff-lcs (1.1.3)
15
+ fuubar (0.0.6)
16
16
  rspec (~> 2.0)
17
- rspec-instafail (~> 0.1.4)
17
+ rspec-instafail (~> 0.1.8)
18
18
  ruby-progressbar (~> 0.0.10)
19
19
  hashie (1.0.0)
20
20
  httpclient (2.2.1)
data/lib/asin/client.rb CHANGED
@@ -145,6 +145,10 @@ module ASIN
145
145
  #
146
146
  # lookup(asin, :ResponseGroup => :Medium)
147
147
  #
148
+ # Or with multiple parameters:
149
+ #
150
+ # lookup(asin, :ResponseGroup => [:Small, :AlternateVersions])
151
+ #
148
152
  def lookup(*asins)
149
153
  params = asins.last.is_a?(Hash) ? asins.pop : {:ResponseGroup => :Medium}
150
154
  response = call(params.merge(:Operation => :ItemLookup, :ItemId => asins.join(',')))
@@ -367,8 +371,8 @@ module ASIN
367
371
  # utc timestamp needed for signing
368
372
  params[:Timestamp] = Time.now.utc.strftime('%Y-%m-%dT%H:%M:%SZ')
369
373
 
370
- # signing needs to order the query alphabetically
371
- query = params.map{|key, value| "#{key}=#{CGI.escape(value.to_s)}" }.sort.join('&').gsub('+','%20')
374
+
375
+ query = create_query(params)
372
376
 
373
377
  # yeah, you really need to sign the get-request not the query
374
378
  request_to_sign = "GET\n#{Configuration.host}\n#{PATH}\n#{query}"
@@ -378,6 +382,13 @@ module ASIN
378
382
  signature = CGI.escape(Base64.encode64(hmac).chomp)
379
383
  "#{query}&Signature=#{signature}"
380
384
  end
385
+
386
+ def create_query(params)
387
+ params.map do |key, value|
388
+ value = value.collect{|v| v.to_s.strip}.join(',') if value.is_a?(Array)
389
+ "#{key}=#{CGI.escape(value.to_s)}"
390
+ end.sort.join('&').gsub('+','%20') # signing needs to order the query alphabetically
391
+ end
381
392
 
382
393
  def log(severity, message)
383
394
  Configuration.logger.send severity, message if Configuration.logger
data/lib/asin/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module ASIN
2
- VERSION = "0.6.1"
2
+ VERSION = "0.6.2"
3
3
  end
@@ -2,16 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  module ASIN
4
4
  describe ASIN do
5
- before do
6
- ASIN::Configuration.reset
7
- @helper = ASIN::Client.instance
8
- @helper.configure :logger => nil
9
-
10
- @secret = ENV['ASIN_SECRET']
11
- @key = ENV['ASIN_KEY']
12
- puts "configure #{@secret} and #{@key} for this test"
13
- end
14
-
15
5
  context "browse_node" do
16
6
  before do
17
7
  @helper.configure :secret => @secret, :key => @key
data/spec/cart_spec.rb CHANGED
@@ -3,13 +3,6 @@ require 'spec_helper'
3
3
  module ASIN
4
4
  describe ASIN do
5
5
  before do
6
- ASIN::Configuration.reset
7
- @helper = ASIN::Client.instance
8
- @helper.configure :logger => nil
9
-
10
- @secret = ENV['ASIN_SECRET']
11
- @key = ENV['ASIN_KEY']
12
- puts "configure #{@secret} and #{@key} for this test"
13
6
  @helper.configure :secret => @secret, :key => @key
14
7
  end
15
8
 
@@ -0,0 +1,67 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://webservices.amazon.com:80/onca/xml?AWSAccessKeyId=AKIAJFA5X7RTOKFNPVZQ&AssociateTag=&Item.0.ASIN=1430218150&Item.0.Quantity=1&Operation=CartCreate&Service=AWSECommerceService&Signature=teKwB2EafVm0YnL0yBFFiYYG7xmBGvoaLKLxDULbhTI=&Timestamp=2011-09-04T15:14:34Z&Version=2010-11-01
6
+ body: !!null
7
+ headers: !!null
8
+ response: !ruby/struct:VCR::Response
9
+ status: !ruby/struct:VCR::ResponseStatus
10
+ code: 200
11
+ message: OK
12
+ headers:
13
+ date:
14
+ - Sun, 04 Sep 2011 15:14:34 GMT
15
+ server:
16
+ - Server
17
+ content-type:
18
+ - text/xml;charset=UTF-8
19
+ vary:
20
+ - Accept-Encoding,User-Agent
21
+ nncoection:
22
+ - close
23
+ transfer-encoding:
24
+ - chunked
25
+ body: <?xml version="1.0" encoding="UTF-8"?><CartCreateResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2010-11-01"><OperationRequest><HTTPHeaders><Header
26
+ Name="UserAgent" Value="Jakarta Commons-HttpClient/3.0.1"></Header></HTTPHeaders><RequestId>18THXK6XGKZYXGB6J7PE</RequestId><Arguments><Argument
27
+ Name="AssociateTag"></Argument><Argument Name="Service" Value="AWSECommerceService"></Argument><Argument
28
+ Name="Item.0.Quantity" Value="1"></Argument><Argument Name="Signature" Value="teKwB2EafVm0YnL0yBFFiYYG7xmBGvoaLKLxDULbhTI="></Argument><Argument
29
+ Name="Item.0.ASIN" Value="1430218150"></Argument><Argument Name="Operation"
30
+ Value="CartCreate"></Argument><Argument Name="AWSAccessKeyId" Value="AKIAJFA5X7RTOKFNPVZQ"></Argument><Argument
31
+ Name="Version" Value="2010-11-01"></Argument><Argument Name="Timestamp" Value="2011-09-04T15:14:34Z"></Argument></Arguments><RequestProcessingTime>0.107334136962891</RequestProcessingTime></OperationRequest><Cart><Request><IsValid>True</IsValid><CartCreateRequest><Items><Item><ASIN>1430218150</ASIN><Quantity>1</Quantity></Item></Items></CartCreateRequest></Request><CartId>184-2045758-8444214</CartId><HMAC>ygwiou9hFiNQqNEBV+naz/iEIg0=</HMAC><URLEncodedHMAC>ygwiou9hFiNQqNEBV%2Bnaz%2FiEIg0%3D</URLEncodedHMAC><PurchaseURL>https://www.amazon.com/gp/cart/aws-merge.html?cart-id=184-2045758-8444214%26associate-id=ws%26hmac=ygwiou9hFiNQqNEBV%2Bnaz/iEIg0=%26SubscriptionId=AKIAJFA5X7RTOKFNPVZQ%26MergeCart=False</PurchaseURL><SubTotal><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></SubTotal><CartItems><SubTotal><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></SubTotal><CartItem><CartItemId>U3G241HVLLB8N6</CartItemId><ASIN>1430218150</ASIN><MerchantId>ATVPDKIKX0DER</MerchantId><SellerId>A2R2RITDJNW1Q6</SellerId><SellerNickname>Amazon.com</SellerNickname><Quantity>1</Quantity><Title>Learn
32
+ Objective-C on the Mac (Learn Series)</Title><ProductGroup>Book</ProductGroup><Price><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></Price><ItemTotal><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></ItemTotal></CartItem></CartItems></Cart></CartCreateResponse>
33
+ http_version: '1.1'
34
+ - !ruby/struct:VCR::HTTPInteraction
35
+ request: !ruby/struct:VCR::Request
36
+ method: :get
37
+ uri: http://webservices.amazon.com:80/onca/xml?AWSAccessKeyId=AKIAJFA5X7RTOKFNPVZQ&AssociateTag=&CartId=184-2045758-8444214&HMAC=ygwiou9hFiNQqNEBV+naz/iEIg0=&Item.0.ASIN=1430216263&Item.0.Quantity=2&Operation=CartAdd&Service=AWSECommerceService&Signature=krTtPiYQ+WqRqoN6mYUPrZy5Q2JL8HcZvKMlkwidl/s=&Timestamp=2011-09-04T15:14:34Z&Version=2010-11-01
38
+ body: !!null
39
+ headers: !!null
40
+ response: !ruby/struct:VCR::Response
41
+ status: !ruby/struct:VCR::ResponseStatus
42
+ code: 200
43
+ message: OK
44
+ headers:
45
+ date:
46
+ - Sun, 04 Sep 2011 15:14:34 GMT
47
+ server:
48
+ - Server
49
+ content-type:
50
+ - text/xml;charset=UTF-8
51
+ vary:
52
+ - Accept-Encoding,User-Agent
53
+ nncoection:
54
+ - close
55
+ transfer-encoding:
56
+ - chunked
57
+ body: ! '<?xml version="1.0" encoding="UTF-8"?><CartAddResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2010-11-01"><OperationRequest><HTTPHeaders><Header
58
+ Name="UserAgent" Value="Jakarta Commons-HttpClient/3.0.1"></Header></HTTPHeaders><RequestId>009ASSP2NBPMQ5BT7SC6</RequestId><Arguments><Argument
59
+ Name="AssociateTag"></Argument><Argument Name="Service" Value="AWSECommerceService"></Argument><Argument
60
+ Name="Item.0.Quantity" Value="2"></Argument><Argument Name="Signature" Value="krTtPiYQ+WqRqoN6mYUPrZy5Q2JL8HcZvKMlkwidl/s="></Argument><Argument
61
+ Name="Item.0.ASIN" Value="1430216263"></Argument><Argument Name="HMAC" Value="ygwiou9hFiNQqNEBV+naz/iEIg0="></Argument><Argument
62
+ Name="Operation" Value="CartAdd"></Argument><Argument Name="CartId" Value="184-2045758-8444214"></Argument><Argument
63
+ Name="AWSAccessKeyId" Value="AKIAJFA5X7RTOKFNPVZQ"></Argument><Argument Name="Timestamp"
64
+ Value="2011-09-04T15:14:34Z"></Argument><Argument Name="Version" Value="2010-11-01"></Argument></Arguments><RequestProcessingTime>0.124479055404663</RequestProcessingTime></OperationRequest><Cart><Request><IsValid>True</IsValid><CartAddRequest><CartId>184-2045758-8444214</CartId><HMAC>ygwiou9hFiNQqNEBV+naz/iEIg0=</HMAC><Items><Item><ASIN>1430216263</ASIN><Quantity>2</Quantity></Item></Items></CartAddRequest></Request><CartId>184-2045758-8444214</CartId><HMAC>ygwiou9hFiNQqNEBV+naz/iEIg0=</HMAC><URLEncodedHMAC>ygwiou9hFiNQqNEBV%2Bnaz%2FiEIg0%3D</URLEncodedHMAC><PurchaseURL>https://www.amazon.com/gp/cart/aws-merge.html?cart-id=184-2045758-8444214%26associate-id=ws%26hmac=ygwiou9hFiNQqNEBV%2Bnaz/iEIg0=%26SubscriptionId=AKIAJFA5X7RTOKFNPVZQ%26MergeCart=False</PurchaseURL><SubTotal><Amount>7712</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$77.12</FormattedPrice></SubTotal><CartItems><SubTotal><Amount>7712</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$77.12</FormattedPrice></SubTotal><CartItem><CartItemId>U3CFEHHIPJNW3L</CartItemId><ASIN>1430216263</ASIN><MerchantId>ATVPDKIKX0DER</MerchantId><SellerId>A2R2RITDJNW1Q6</SellerId><SellerNickname>Amazon.com</SellerNickname><Quantity>2</Quantity><Title>Beginning
65
+ iPhone Development: Exploring the iPhone SDK</Title><ProductGroup>Book</ProductGroup><Price><Amount>2639</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$26.39</FormattedPrice></Price><ItemTotal><Amount>5278</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$52.78</FormattedPrice></ItemTotal></CartItem><CartItem><CartItemId>U3G241HVLLB8N6</CartItemId><ASIN>1430218150</ASIN><MerchantId>ATVPDKIKX0DER</MerchantId><SellerId>A2R2RITDJNW1Q6</SellerId><SellerNickname>Amazon.com</SellerNickname><Quantity>1</Quantity><Title>Learn
66
+ Objective-C on the Mac (Learn Series)</Title><ProductGroup>Book</ProductGroup><Price><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></Price><ItemTotal><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></ItemTotal></CartItem></CartItems></Cart></CartAddResponse>'
67
+ http_version: '1.1'
@@ -0,0 +1,38 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://webservices.amazon.com:80/onca/xml?AWSAccessKeyId=AKIAJFA5X7RTOKFNPVZQ&AssociateTag=&BrowseNodeId=599826&Operation=BrowseNodeLookup&ResponseGroup=BrowseNodeInfo&Service=AWSECommerceService&Signature=in3sb43Mf0bUomPefvenStLtUHDLZ70uabaNFTJEhIE=&Timestamp=2011-09-04T15:14:31Z&Version=2010-11-01
6
+ body: !!null
7
+ headers: !!null
8
+ response: !ruby/struct:VCR::Response
9
+ status: !ruby/struct:VCR::ResponseStatus
10
+ code: 200
11
+ message: OK
12
+ headers:
13
+ date:
14
+ - Sun, 04 Sep 2011 15:14:31 GMT
15
+ server:
16
+ - Server
17
+ content-type:
18
+ - text/xml;charset=UTF-8
19
+ vary:
20
+ - Accept-Encoding,User-Agent
21
+ nncoection:
22
+ - close
23
+ transfer-encoding:
24
+ - chunked
25
+ body: <?xml version="1.0" encoding="UTF-8"?><BrowseNodeLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2010-11-01"><OperationRequest><HTTPHeaders><Header
26
+ Name="UserAgent" Value="Jakarta Commons-HttpClient/3.0.1"></Header></HTTPHeaders><RequestId>0VQQ8N4DGR07DYVX434N</RequestId><Arguments><Argument
27
+ Name="AssociateTag"></Argument><Argument Name="Service" Value="AWSECommerceService"></Argument><Argument
28
+ Name="Signature" Value="in3sb43Mf0bUomPefvenStLtUHDLZ70uabaNFTJEhIE="></Argument><Argument
29
+ Name="ResponseGroup" Value="BrowseNodeInfo"></Argument><Argument Name="Operation"
30
+ Value="BrowseNodeLookup"></Argument><Argument Name="BrowseNodeId" Value="599826"></Argument><Argument
31
+ Name="AWSAccessKeyId" Value="AKIAJFA5X7RTOKFNPVZQ"></Argument><Argument Name="Version"
32
+ Value="2010-11-01"></Argument><Argument Name="Timestamp" Value="2011-09-04T15:14:31Z"></Argument></Arguments><RequestProcessingTime>0.01361083984375</RequestProcessingTime></OperationRequest><BrowseNodes><Request><IsValid>True</IsValid><BrowseNodeLookupRequest><BrowseNodeId>599826</BrowseNodeId><ResponseGroup>BrowseNodeInfo</ResponseGroup></BrowseNodeLookupRequest></Request><BrowseNode><BrowseNodeId>599826</BrowseNodeId><Name>Comedy</Name><Ancestors><BrowseNode><BrowseNodeId>501230</BrowseNodeId><Name>Boxed
33
+ Sets</Name><Ancestors><BrowseNode><BrowseNodeId>2998369011</BrowseNodeId><Name>DVD
34
+ Custom Stores</Name><Ancestors><BrowseNode><BrowseNodeId>2644982011</BrowseNodeId><Name>Custom
35
+ Stores</Name><Ancestors><BrowseNode><BrowseNodeId>2644981011</BrowseNodeId><Name>Specialty
36
+ Stores</Name><Ancestors><BrowseNode><BrowseNodeId>2625373011</BrowseNodeId><Name>Movies
37
+ &amp; TV</Name></BrowseNode></Ancestors></BrowseNode></Ancestors></BrowseNode></Ancestors></BrowseNode></Ancestors></BrowseNode></Ancestors></BrowseNode></BrowseNodes></BrowseNodeLookupResponse>
38
+ http_version: '1.1'
@@ -0,0 +1,65 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://webservices.amazon.com:80/onca/xml?AWSAccessKeyId=AKIAJFA5X7RTOKFNPVZQ&AssociateTag=&Item.0.ASIN=1430218150&Item.0.Quantity=1&Operation=CartCreate&Service=AWSECommerceService&Signature=f867HKL2lUgVYFl1I7cYOSMtTSqoHXYXRrQE8nOk3ss=&Timestamp=2011-09-04T15:14:32Z&Version=2010-11-01
6
+ body: !!null
7
+ headers: !!null
8
+ response: !ruby/struct:VCR::Response
9
+ status: !ruby/struct:VCR::ResponseStatus
10
+ code: 200
11
+ message: OK
12
+ headers:
13
+ date:
14
+ - Sun, 04 Sep 2011 15:14:32 GMT
15
+ server:
16
+ - Server
17
+ content-type:
18
+ - text/xml;charset=UTF-8
19
+ vary:
20
+ - Accept-Encoding,User-Agent
21
+ nncoection:
22
+ - close
23
+ transfer-encoding:
24
+ - chunked
25
+ body: <?xml version="1.0" encoding="UTF-8"?><CartCreateResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2010-11-01"><OperationRequest><HTTPHeaders><Header
26
+ Name="UserAgent" Value="Jakarta Commons-HttpClient/3.0.1"></Header></HTTPHeaders><RequestId>0QJ23BCEVQDKBNSPPYXW</RequestId><Arguments><Argument
27
+ Name="AssociateTag"></Argument><Argument Name="Service" Value="AWSECommerceService"></Argument><Argument
28
+ Name="Item.0.Quantity" Value="1"></Argument><Argument Name="Signature" Value="f867HKL2lUgVYFl1I7cYOSMtTSqoHXYXRrQE8nOk3ss="></Argument><Argument
29
+ Name="Item.0.ASIN" Value="1430218150"></Argument><Argument Name="Operation"
30
+ Value="CartCreate"></Argument><Argument Name="AWSAccessKeyId" Value="AKIAJFA5X7RTOKFNPVZQ"></Argument><Argument
31
+ Name="Version" Value="2010-11-01"></Argument><Argument Name="Timestamp" Value="2011-09-04T15:14:32Z"></Argument></Arguments><RequestProcessingTime>0.1250159740448</RequestProcessingTime></OperationRequest><Cart><Request><IsValid>True</IsValid><CartCreateRequest><Items><Item><ASIN>1430218150</ASIN><Quantity>1</Quantity></Item></Items></CartCreateRequest></Request><CartId>191-4948901-2826126</CartId><HMAC>5HltElWE2HYIAFstNFV+rIkSqy0=</HMAC><URLEncodedHMAC>5HltElWE2HYIAFstNFV%2BrIkSqy0%3D</URLEncodedHMAC><PurchaseURL>https://www.amazon.com/gp/cart/aws-merge.html?cart-id=191-4948901-2826126%26associate-id=ws%26hmac=5HltElWE2HYIAFstNFV%2BrIkSqy0=%26SubscriptionId=AKIAJFA5X7RTOKFNPVZQ%26MergeCart=False</PurchaseURL><SubTotal><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></SubTotal><CartItems><SubTotal><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></SubTotal><CartItem><CartItemId>U3G241HVLLB8N6</CartItemId><ASIN>1430218150</ASIN><MerchantId>ATVPDKIKX0DER</MerchantId><SellerId>A2R2RITDJNW1Q6</SellerId><SellerNickname>Amazon.com</SellerNickname><Quantity>1</Quantity><Title>Learn
32
+ Objective-C on the Mac (Learn Series)</Title><ProductGroup>Book</ProductGroup><Price><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></Price><ItemTotal><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></ItemTotal></CartItem></CartItems></Cart></CartCreateResponse>
33
+ http_version: '1.1'
34
+ - !ruby/struct:VCR::HTTPInteraction
35
+ request: !ruby/struct:VCR::Request
36
+ method: :get
37
+ uri: http://webservices.amazon.com:80/onca/xml?AWSAccessKeyId=AKIAJFA5X7RTOKFNPVZQ&AssociateTag=&CartId=191-4948901-2826126&HMAC=5HltElWE2HYIAFstNFV+rIkSqy0=&Operation=CartClear&Service=AWSECommerceService&Signature=bA5VnHSLLFfb6MYE6o7R2a6XXr0SPPGQcVYZW9a/oe4=&Timestamp=2011-09-04T15:14:32Z&Version=2010-11-01
38
+ body: !!null
39
+ headers: !!null
40
+ response: !ruby/struct:VCR::Response
41
+ status: !ruby/struct:VCR::ResponseStatus
42
+ code: 200
43
+ message: OK
44
+ headers:
45
+ date:
46
+ - Sun, 04 Sep 2011 15:14:32 GMT
47
+ server:
48
+ - Server
49
+ content-type:
50
+ - text/xml;charset=UTF-8
51
+ vary:
52
+ - Accept-Encoding,User-Agent
53
+ nncoection:
54
+ - close
55
+ transfer-encoding:
56
+ - chunked
57
+ body: <?xml version="1.0" encoding="UTF-8"?><CartClearResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2010-11-01"><OperationRequest><HTTPHeaders><Header
58
+ Name="UserAgent" Value="Jakarta Commons-HttpClient/3.0.1"></Header></HTTPHeaders><RequestId>1NT20MGHK0464SCHHDFN</RequestId><Arguments><Argument
59
+ Name="Service" Value="AWSECommerceService"></Argument><Argument Name="Operation"
60
+ Value="CartClear"></Argument><Argument Name="Timestamp" Value="2011-09-04T15:14:32Z"></Argument><Argument
61
+ Name="Version" Value="2010-11-01"></Argument><Argument Name="AssociateTag"></Argument><Argument
62
+ Name="Signature" Value="bA5VnHSLLFfb6MYE6o7R2a6XXr0SPPGQcVYZW9a/oe4="></Argument><Argument
63
+ Name="HMAC" Value="5HltElWE2HYIAFstNFV+rIkSqy0="></Argument><Argument Name="CartId"
64
+ Value="191-4948901-2826126"></Argument><Argument Name="AWSAccessKeyId" Value="AKIAJFA5X7RTOKFNPVZQ"></Argument></Arguments><RequestProcessingTime>0.0305790901184082</RequestProcessingTime></OperationRequest><Cart><Request><IsValid>True</IsValid><CartClearRequest><CartId>191-4948901-2826126</CartId><HMAC>5HltElWE2HYIAFstNFV+rIkSqy0=</HMAC></CartClearRequest></Request><CartId>191-4948901-2826126</CartId><HMAC>5HltElWE2HYIAFstNFV+rIkSqy0=</HMAC><URLEncodedHMAC>5HltElWE2HYIAFstNFV%2BrIkSqy0%3D</URLEncodedHMAC></Cart></CartClearResponse>
65
+ http_version: '1.1'
@@ -0,0 +1,36 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://webservices.amazon.com:80/onca/xml?AWSAccessKeyId=AKIAJFA5X7RTOKFNPVZQ&AssociateTag=&Item.0.ASIN=1430218150&Item.0.Quantity=1&Item.1.ASIN=1430216263&Item.1.Quantity=2&Operation=CartCreate&Service=AWSECommerceService&Signature=BUUwXi4jBwiSkFyN1/K4ztUliQnwOgDZAGn3GYrH0wE=&Timestamp=2011-09-04T15:14:31Z&Version=2010-11-01
6
+ body: !!null
7
+ headers: !!null
8
+ response: !ruby/struct:VCR::Response
9
+ status: !ruby/struct:VCR::ResponseStatus
10
+ code: 200
11
+ message: OK
12
+ headers:
13
+ date:
14
+ - Sun, 04 Sep 2011 15:14:31 GMT
15
+ server:
16
+ - Server
17
+ content-type:
18
+ - text/xml;charset=UTF-8
19
+ vary:
20
+ - Accept-Encoding,User-Agent
21
+ nncoection:
22
+ - close
23
+ transfer-encoding:
24
+ - chunked
25
+ body: ! '<?xml version="1.0" encoding="UTF-8"?><CartCreateResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2010-11-01"><OperationRequest><HTTPHeaders><Header
26
+ Name="UserAgent" Value="Jakarta Commons-HttpClient/3.0.1"></Header></HTTPHeaders><RequestId>1AXVJR3CA495HBJSGG7X</RequestId><Arguments><Argument
27
+ Name="Timestamp" Value="2011-09-04T15:14:31Z"></Argument><Argument Name="Version"
28
+ Value="2010-11-01"></Argument><Argument Name="Signature" Value="BUUwXi4jBwiSkFyN1/K4ztUliQnwOgDZAGn3GYrH0wE="></Argument><Argument
29
+ Name="Item.0.ASIN" Value="1430218150"></Argument><Argument Name="AWSAccessKeyId"
30
+ Value="AKIAJFA5X7RTOKFNPVZQ"></Argument><Argument Name="Service" Value="AWSECommerceService"></Argument><Argument
31
+ Name="Item.0.Quantity" Value="1"></Argument><Argument Name="Item.1.Quantity"
32
+ Value="2"></Argument><Argument Name="Operation" Value="CartCreate"></Argument><Argument
33
+ Name="AssociateTag"></Argument><Argument Name="Item.1.ASIN" Value="1430216263"></Argument></Arguments><RequestProcessingTime>0.219246864318848</RequestProcessingTime></OperationRequest><Cart><Request><IsValid>True</IsValid><CartCreateRequest><Items><Item><ASIN>1430218150</ASIN><Quantity>1</Quantity></Item><Item><ASIN>1430216263</ASIN><Quantity>2</Quantity></Item></Items></CartCreateRequest></Request><CartId>177-4381811-0405801</CartId><HMAC>EdQk/2nKhLtbU4xuDGkY11HBZak=</HMAC><URLEncodedHMAC>EdQk%2F2nKhLtbU4xuDGkY11HBZak%3D</URLEncodedHMAC><PurchaseURL>https://www.amazon.com/gp/cart/aws-merge.html?cart-id=177-4381811-0405801%26associate-id=ws%26hmac=EdQk/2nKhLtbU4xuDGkY11HBZak=%26SubscriptionId=AKIAJFA5X7RTOKFNPVZQ%26MergeCart=False</PurchaseURL><SubTotal><Amount>7712</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$77.12</FormattedPrice></SubTotal><CartItems><SubTotal><Amount>7712</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$77.12</FormattedPrice></SubTotal><CartItem><CartItemId>U3G241HVLLB8N6</CartItemId><ASIN>1430218150</ASIN><MerchantId>ATVPDKIKX0DER</MerchantId><SellerId>A2R2RITDJNW1Q6</SellerId><SellerNickname>Amazon.com</SellerNickname><Quantity>1</Quantity><Title>Learn
34
+ Objective-C on the Mac (Learn Series)</Title><ProductGroup>Book</ProductGroup><Price><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></Price><ItemTotal><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></ItemTotal></CartItem><CartItem><CartItemId>U3CFEHHIPJNW3L</CartItemId><ASIN>1430216263</ASIN><MerchantId>ATVPDKIKX0DER</MerchantId><SellerId>A2R2RITDJNW1Q6</SellerId><SellerNickname>Amazon.com</SellerNickname><Quantity>2</Quantity><Title>Beginning
35
+ iPhone Development: Exploring the iPhone SDK</Title><ProductGroup>Book</ProductGroup><Price><Amount>2639</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$26.39</FormattedPrice></Price><ItemTotal><Amount>5278</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$52.78</FormattedPrice></ItemTotal></CartItem></CartItems></Cart></CartCreateResponse>'
36
+ http_version: '1.1'
@@ -0,0 +1,67 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://webservices.amazon.com:80/onca/xml?AWSAccessKeyId=AKIAJFA5X7RTOKFNPVZQ&AssociateTag=&Item.0.ASIN=1430218150&Item.0.Quantity=1&Operation=CartCreate&Service=AWSECommerceService&Signature=fQ1yWXRX44iW3XpOApWLW/9CBdV3K5mZdA3SZtg2fLI=&Timestamp=2011-09-04T15:14:33Z&Version=2010-11-01
6
+ body: !!null
7
+ headers: !!null
8
+ response: !ruby/struct:VCR::Response
9
+ status: !ruby/struct:VCR::ResponseStatus
10
+ code: 200
11
+ message: OK
12
+ headers:
13
+ date:
14
+ - Sun, 04 Sep 2011 15:14:33 GMT
15
+ server:
16
+ - Server
17
+ content-type:
18
+ - text/xml;charset=UTF-8
19
+ vary:
20
+ - Accept-Encoding,User-Agent
21
+ nncoection:
22
+ - close
23
+ transfer-encoding:
24
+ - chunked
25
+ body: <?xml version="1.0" encoding="UTF-8"?><CartCreateResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2010-11-01"><OperationRequest><HTTPHeaders><Header
26
+ Name="UserAgent" Value="Jakarta Commons-HttpClient/3.0.1"></Header></HTTPHeaders><RequestId>19RMKP8JAFT5TDJ8FBCD</RequestId><Arguments><Argument
27
+ Name="Service" Value="AWSECommerceService"></Argument><Argument Name="Item.0.Quantity"
28
+ Value="1"></Argument><Argument Name="Operation" Value="CartCreate"></Argument><Argument
29
+ Name="Version" Value="2010-11-01"></Argument><Argument Name="Timestamp" Value="2011-09-04T15:14:33Z"></Argument><Argument
30
+ Name="AssociateTag"></Argument><Argument Name="Signature" Value="fQ1yWXRX44iW3XpOApWLW/9CBdV3K5mZdA3SZtg2fLI="></Argument><Argument
31
+ Name="Item.0.ASIN" Value="1430218150"></Argument><Argument Name="AWSAccessKeyId"
32
+ Value="AKIAJFA5X7RTOKFNPVZQ"></Argument></Arguments><RequestProcessingTime>0.135751962661743</RequestProcessingTime></OperationRequest><Cart><Request><IsValid>True</IsValid><CartCreateRequest><Items><Item><ASIN>1430218150</ASIN><Quantity>1</Quantity></Item></Items></CartCreateRequest></Request><CartId>180-1285717-6097004</CartId><HMAC>zbxJIldBYcf8Ce73+9SUPpdqh4E=</HMAC><URLEncodedHMAC>zbxJIldBYcf8Ce73%2B9SUPpdqh4E%3D</URLEncodedHMAC><PurchaseURL>https://www.amazon.com/gp/cart/aws-merge.html?cart-id=180-1285717-6097004%26associate-id=ws%26hmac=zbxJIldBYcf8Ce73%2B9SUPpdqh4E=%26SubscriptionId=AKIAJFA5X7RTOKFNPVZQ%26MergeCart=False</PurchaseURL><SubTotal><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></SubTotal><CartItems><SubTotal><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></SubTotal><CartItem><CartItemId>U3G241HVLLB8N6</CartItemId><ASIN>1430218150</ASIN><MerchantId>ATVPDKIKX0DER</MerchantId><SellerId>A2R2RITDJNW1Q6</SellerId><SellerNickname>Amazon.com</SellerNickname><Quantity>1</Quantity><Title>Learn
33
+ Objective-C on the Mac (Learn Series)</Title><ProductGroup>Book</ProductGroup><Price><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></Price><ItemTotal><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></ItemTotal></CartItem></CartItems></Cart></CartCreateResponse>
34
+ http_version: '1.1'
35
+ - !ruby/struct:VCR::HTTPInteraction
36
+ request: !ruby/struct:VCR::Request
37
+ method: :get
38
+ uri: http://webservices.amazon.com:80/onca/xml?AWSAccessKeyId=AKIAJFA5X7RTOKFNPVZQ&AssociateTag=&CartId=180-1285717-6097004&HMAC=zbxJIldBYcf8Ce73+9SUPpdqh4E=&Operation=CartGet&Service=AWSECommerceService&Signature=+G/q1ITb0ceCsjLxZ5hY6121747ckI8kt1qYWn7vpiI=&Timestamp=2011-09-04T15:14:33Z&Version=2010-11-01
39
+ body: !!null
40
+ headers: !!null
41
+ response: !ruby/struct:VCR::Response
42
+ status: !ruby/struct:VCR::ResponseStatus
43
+ code: 200
44
+ message: OK
45
+ headers:
46
+ date:
47
+ - Sun, 04 Sep 2011 15:14:33 GMT
48
+ server:
49
+ - Server
50
+ content-type:
51
+ - text/xml;charset=UTF-8
52
+ vary:
53
+ - Accept-Encoding,User-Agent
54
+ nncoection:
55
+ - close
56
+ transfer-encoding:
57
+ - chunked
58
+ body: <?xml version="1.0" encoding="UTF-8"?><CartGetResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2010-11-01"><OperationRequest><HTTPHeaders><Header
59
+ Name="UserAgent" Value="Jakarta Commons-HttpClient/3.0.1"></Header></HTTPHeaders><RequestId>043J24JFBYP3C3N8CW4Y</RequestId><Arguments><Argument
60
+ Name="AssociateTag"></Argument><Argument Name="Service" Value="AWSECommerceService"></Argument><Argument
61
+ Name="Signature" Value="+G/q1ITb0ceCsjLxZ5hY6121747ckI8kt1qYWn7vpiI="></Argument><Argument
62
+ Name="HMAC" Value="zbxJIldBYcf8Ce73+9SUPpdqh4E="></Argument><Argument Name="Operation"
63
+ Value="CartGet"></Argument><Argument Name="CartId" Value="180-1285717-6097004"></Argument><Argument
64
+ Name="AWSAccessKeyId" Value="AKIAJFA5X7RTOKFNPVZQ"></Argument><Argument Name="Timestamp"
65
+ Value="2011-09-04T15:14:33Z"></Argument><Argument Name="Version" Value="2010-11-01"></Argument></Arguments><RequestProcessingTime>0.069011926651001</RequestProcessingTime></OperationRequest><Cart><Request><IsValid>True</IsValid><CartGetRequest><CartId>180-1285717-6097004</CartId><HMAC>zbxJIldBYcf8Ce73+9SUPpdqh4E=</HMAC></CartGetRequest></Request><CartId>180-1285717-6097004</CartId><HMAC>zbxJIldBYcf8Ce73+9SUPpdqh4E=</HMAC><URLEncodedHMAC>zbxJIldBYcf8Ce73%2B9SUPpdqh4E%3D</URLEncodedHMAC><PurchaseURL>https://www.amazon.com/gp/cart/aws-merge.html?cart-id=180-1285717-6097004%26associate-id=ws%26hmac=zbxJIldBYcf8Ce73%2B9SUPpdqh4E=%26SubscriptionId=AKIAJFA5X7RTOKFNPVZQ%26MergeCart=False</PurchaseURL><SubTotal><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></SubTotal><CartItems><SubTotal><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></SubTotal><CartItem><CartItemId>U3G241HVLLB8N6</CartItemId><ASIN>1430218150</ASIN><MerchantId>ATVPDKIKX0DER</MerchantId><SellerId>A2R2RITDJNW1Q6</SellerId><SellerNickname>Amazon.com</SellerNickname><Quantity>1</Quantity><Title>Learn
66
+ Objective-C on the Mac (Learn Series)</Title><ProductGroup>Book</ProductGroup><Price><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></Price><ItemTotal><Amount>2434</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$24.34</FormattedPrice></ItemTotal></CartItem></CartItems></Cart></CartGetResponse>
67
+ http_version: '1.1'
@@ -0,0 +1,63 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://webservices.amazon.com:80/onca/xml?AWSAccessKeyId=AKIAJFA5X7RTOKFNPVZQ&AssociateTag=&ItemId=1430218150&Operation=ItemLookup&ResponseGroup=Medium&Service=AWSECommerceService&Signature=o4arQ7mpwDM2yIOoXuXA3qSU7FsP8tBOxT3oWZu6T74=&Timestamp=2011-09-04T15:14:35Z&Version=2010-11-01
6
+ body: !!null
7
+ headers: !!null
8
+ response: !ruby/struct:VCR::Response
9
+ status: !ruby/struct:VCR::ResponseStatus
10
+ code: 200
11
+ message: OK
12
+ headers:
13
+ date:
14
+ - Sun, 04 Sep 2011 15:14:36 GMT
15
+ server:
16
+ - Server
17
+ content-type:
18
+ - text/xml;charset=UTF-8
19
+ vary:
20
+ - Accept-Encoding,User-Agent
21
+ nncoection:
22
+ - close
23
+ transfer-encoding:
24
+ - chunked
25
+ body: <?xml version="1.0" ?><ItemLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2010-11-01"><OperationRequest><RequestId>8f379224-95aa-42e8-8abd-274ded0ba08d</RequestId><Arguments><Argument
26
+ Name="Operation" Value="ItemLookup"></Argument><Argument Name="Service" Value="AWSECommerceService"></Argument><Argument
27
+ Name="ItemId" Value="1430218150"></Argument><Argument Name="AWSAccessKeyId"
28
+ Value="AKIAJFA5X7RTOKFNPVZQ"></Argument><Argument Name="Timestamp" Value="2011-09-04T15:14:35Z"></Argument><Argument
29
+ Name="Signature" Value="o4arQ7mpwDM2yIOoXuXA3qSU7FsP8tBOxT3oWZu6T74="></Argument><Argument
30
+ Name="ResponseGroup" Value="Medium"></Argument><Argument Name="AssociateTag"></Argument><Argument
31
+ Name="Version" Value="2010-11-01"></Argument></Arguments><RequestProcessingTime>0.0129220000000000</RequestProcessingTime></OperationRequest><Items><Request><IsValid>True</IsValid><ItemLookupRequest><Condition>New</Condition><DeliveryMethod>Ship</DeliveryMethod><IdType>ASIN</IdType><MerchantId>Amazon</MerchantId><OfferPage>1</OfferPage><ItemId>1430218150</ItemId><ResponseGroup>Medium</ResponseGroup><ReviewPage>1</ReviewPage><ReviewSort>-SubmissionDate</ReviewSort><VariationPage>All</VariationPage></ItemLookupRequest></Request><Item><ASIN>1430218150</ASIN><DetailPageURL>http://www.amazon.com/Learn-Objective-C-Mac-Mark-Dalrymple/dp/1430218150%3FSubscriptionId%3DAKIAJFA5X7RTOKFNPVZQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1430218150</DetailPageURL><ItemLinks><ItemLink><Description>Technical
32
+ Details</Description><URL>http://www.amazon.com/Learn-Objective-C-Mac-Mark-Dalrymple/dp/tech-data/1430218150%3FSubscriptionId%3DAKIAJFA5X7RTOKFNPVZQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D1430218150</URL></ItemLink><ItemLink><Description>Add
33
+ To Baby Registry</Description><URL>http://www.amazon.com/gp/registry/baby/add-item.html%3Fasin.0%3D1430218150%26SubscriptionId%3DAKIAJFA5X7RTOKFNPVZQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D1430218150</URL></ItemLink><ItemLink><Description>Add
34
+ To Wedding Registry</Description><URL>http://www.amazon.com/gp/registry/wedding/add-item.html%3Fasin.0%3D1430218150%26SubscriptionId%3DAKIAJFA5X7RTOKFNPVZQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D1430218150</URL></ItemLink><ItemLink><Description>Add
35
+ To Wishlist</Description><URL>http://www.amazon.com/gp/registry/wishlist/add-item.html%3Fasin.0%3D1430218150%26SubscriptionId%3DAKIAJFA5X7RTOKFNPVZQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D1430218150</URL></ItemLink><ItemLink><Description>Tell
36
+ A Friend</Description><URL>http://www.amazon.com/gp/pdp/taf/1430218150%3FSubscriptionId%3DAKIAJFA5X7RTOKFNPVZQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D1430218150</URL></ItemLink><ItemLink><Description>All
37
+ Customer Reviews</Description><URL>http://www.amazon.com/review/product/1430218150%3FSubscriptionId%3DAKIAJFA5X7RTOKFNPVZQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D1430218150</URL></ItemLink><ItemLink><Description>All
38
+ Offers</Description><URL>http://www.amazon.com/gp/offer-listing/1430218150%3FSubscriptionId%3DAKIAJFA5X7RTOKFNPVZQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D1430218150</URL></ItemLink></ItemLinks><SalesRank>92255</SalesRank><SmallImage><URL>http://ecx.images-amazon.com/images/I/41kq5bDvnUL._SL75_.jpg</URL><Height
39
+ Units="pixels">75</Height><Width Units="pixels">57</Width></SmallImage><MediumImage><URL>http://ecx.images-amazon.com/images/I/41kq5bDvnUL._SL160_.jpg</URL><Height
40
+ Units="pixels">160</Height><Width Units="pixels">121</Width></MediumImage><LargeImage><URL>http://ecx.images-amazon.com/images/I/41kq5bDvnUL.jpg</URL><Height
41
+ Units="pixels">500</Height><Width Units="pixels">379</Width></LargeImage><ImageSets><ImageSet
42
+ Category="primary"><SwatchImage><URL>http://ecx.images-amazon.com/images/I/41kq5bDvnUL._SL30_.jpg</URL><Height
43
+ Units="pixels">30</Height><Width Units="pixels">23</Width></SwatchImage><SmallImage><URL>http://ecx.images-amazon.com/images/I/41kq5bDvnUL._SL75_.jpg</URL><Height
44
+ Units="pixels">75</Height><Width Units="pixels">57</Width></SmallImage><ThumbnailImage><URL>http://ecx.images-amazon.com/images/I/41kq5bDvnUL._SL75_.jpg</URL><Height
45
+ Units="pixels">75</Height><Width Units="pixels">57</Width></ThumbnailImage><TinyImage><URL>http://ecx.images-amazon.com/images/I/41kq5bDvnUL._SL110_.jpg</URL><Height
46
+ Units="pixels">110</Height><Width Units="pixels">83</Width></TinyImage><MediumImage><URL>http://ecx.images-amazon.com/images/I/41kq5bDvnUL._SL160_.jpg</URL><Height
47
+ Units="pixels">160</Height><Width Units="pixels">121</Width></MediumImage><LargeImage><URL>http://ecx.images-amazon.com/images/I/41kq5bDvnUL.jpg</URL><Height
48
+ Units="pixels">500</Height><Width Units="pixels">379</Width></LargeImage></ImageSet></ImageSets><ItemAttributes><Author>Mark
49
+ Dalrymple</Author><Author>Scott Knaster</Author><Binding>Paperback</Binding><Brand>Apress</Brand><CatalogNumberList><CatalogNumberListElement>9781430218159</CatalogNumberListElement></CatalogNumberList><DeweyDecimalNumber>005.117</DeweyDecimalNumber><EAN>9781430218159</EAN><EANList><EANListElement>9781430218159</EANListElement></EANList><Edition>1st
50
+ ed. 2009. Corr. 3rd printing</Edition><Feature>Apress Learn ObjectiveC on the
51
+ Mac</Feature><Feature>Take your coding skills to the next level with this extensive
52
+ guide to ObjectiveC, the native programming language for developing sophisticated
53
+ software applications for Mac OS X.</Feature><ISBN>1430218150</ISBN><IsEligibleForTradeIn>1</IsEligibleForTradeIn><ItemDimensions><Height
54
+ Units="hundredths-inches">90</Height><Length Units="hundredths-inches">925</Length><Weight
55
+ Units="hundredths-pounds">122</Weight><Width Units="hundredths-inches">697</Width></ItemDimensions><Label>Apress</Label><Languages><Language><Name>English</Name><Type>Unknown</Type></Language><Language><Name>English</Name><Type>Original
56
+ Language</Type></Language><Language><Name>English</Name><Type>Published</Type></Language></Languages><ListPrice><Amount>3999</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$39.99</FormattedPrice></ListPrice><Manufacturer>Apress</Manufacturer><MPN>978-1-4302-1815-9</MPN><NumberOfItems>1</NumberOfItems><NumberOfPages>360</NumberOfPages><PackageDimensions><Height
57
+ Units="hundredths-inches">102</Height><Length Units="hundredths-inches">921</Length><Weight
58
+ Units="hundredths-pounds">123</Weight><Width Units="hundredths-inches">701</Width></PackageDimensions><PartNumber>978-1-4302-1815-9</PartNumber><ProductGroup>Book</ProductGroup><ProductTypeName>ABIS_BOOK</ProductTypeName><PublicationDate>2008-12-25</PublicationDate><Publisher>Apress</Publisher><SKU>mon0000005185</SKU><Studio>Apress</Studio><Title>Learn
59
+ Objective-C on the Mac (Learn Series)</Title><TradeInValue><Amount>432</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$4.32</FormattedPrice></TradeInValue></ItemAttributes><OfferSummary><LowestNewPrice><Amount>1394</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$13.94</FormattedPrice></LowestNewPrice><LowestUsedPrice><Amount>1499</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$14.99</FormattedPrice></LowestUsedPrice><TotalNew>48</TotalNew><TotalUsed>26</TotalUsed><TotalCollectible>0</TotalCollectible><TotalRefurbished>0</TotalRefurbished></OfferSummary><EditorialReviews><EditorialReview><Source>Product
60
+ Description</Source><Content>&lt;P&gt;Learn Objective-C on the Macintosh is
61
+ a classic programming primer for Mac OS X developers. And it’s hard to believe,
62
+ but this will be the only guide to Objective-C specifically aimed at new developers!&lt;/P&gt;</Content><IsLinkSuppressed>0</IsLinkSuppressed></EditorialReview></EditorialReviews></Item></Items></ItemLookupResponse>
63
+ http_version: '1.1'
@@ -0,0 +1,63 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://webservices.amazon.com:80/onca/xml?AWSAccessKeyId=AKIAJFA5X7RTOKFNPVZQ&AssociateTag=&ItemId=1430218150&Operation=ItemLookup&ResponseGroup=Medium&Service=AWSECommerceService&Signature=1J3L4fkcOeUxwwtQAzzt1iQDXJNsiS0N0SsK5IhIdAk=&Timestamp=2011-09-04T15:14:37Z&Version=2010-11-01
6
+ body: !!null
7
+ headers: !!null
8
+ response: !ruby/struct:VCR::Response
9
+ status: !ruby/struct:VCR::ResponseStatus
10
+ code: 200
11
+ message: OK
12
+ headers:
13
+ date:
14
+ - Sun, 04 Sep 2011 15:14:37 GMT
15
+ server:
16
+ - Server
17
+ content-type:
18
+ - text/xml;charset=UTF-8
19
+ vary:
20
+ - Accept-Encoding,User-Agent
21
+ nncoection:
22
+ - close
23
+ transfer-encoding:
24
+ - chunked
25
+ body: <?xml version="1.0" ?><ItemLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2010-11-01"><OperationRequest><RequestId>09b771bd-d14d-4e3c-b68e-b54a549f2a3f</RequestId><Arguments><Argument
26
+ Name="Operation" Value="ItemLookup"></Argument><Argument Name="Service" Value="AWSECommerceService"></Argument><Argument
27
+ Name="Signature" Value="1J3L4fkcOeUxwwtQAzzt1iQDXJNsiS0N0SsK5IhIdAk="></Argument><Argument
28
+ Name="AssociateTag"></Argument><Argument Name="Version" Value="2010-11-01"></Argument><Argument
29
+ Name="ItemId" Value="1430218150"></Argument><Argument Name="AWSAccessKeyId"
30
+ Value="AKIAJFA5X7RTOKFNPVZQ"></Argument><Argument Name="Timestamp" Value="2011-09-04T15:14:37Z"></Argument><Argument
31
+ Name="ResponseGroup" Value="Medium"></Argument></Arguments><RequestProcessingTime>0.0137080000000000</RequestProcessingTime></OperationRequest><Items><Request><IsValid>True</IsValid><ItemLookupRequest><Condition>New</Condition><DeliveryMethod>Ship</DeliveryMethod><IdType>ASIN</IdType><MerchantId>Amazon</MerchantId><OfferPage>1</OfferPage><ItemId>1430218150</ItemId><ResponseGroup>Medium</ResponseGroup><ReviewPage>1</ReviewPage><ReviewSort>-SubmissionDate</ReviewSort><VariationPage>All</VariationPage></ItemLookupRequest></Request><Item><ASIN>1430218150</ASIN><DetailPageURL>http://www.amazon.com/Learn-Objective-C-Mac-Mark-Dalrymple/dp/1430218150%3FSubscriptionId%3DAKIAJFA5X7RTOKFNPVZQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1430218150</DetailPageURL><ItemLinks><ItemLink><Description>Technical
32
+ Details</Description><URL>http://www.amazon.com/Learn-Objective-C-Mac-Mark-Dalrymple/dp/tech-data/1430218150%3FSubscriptionId%3DAKIAJFA5X7RTOKFNPVZQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D1430218150</URL></ItemLink><ItemLink><Description>Add
33
+ To Baby Registry</Description><URL>http://www.amazon.com/gp/registry/baby/add-item.html%3Fasin.0%3D1430218150%26SubscriptionId%3DAKIAJFA5X7RTOKFNPVZQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D1430218150</URL></ItemLink><ItemLink><Description>Add
34
+ To Wedding Registry</Description><URL>http://www.amazon.com/gp/registry/wedding/add-item.html%3Fasin.0%3D1430218150%26SubscriptionId%3DAKIAJFA5X7RTOKFNPVZQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D1430218150</URL></ItemLink><ItemLink><Description>Add
35
+ To Wishlist</Description><URL>http://www.amazon.com/gp/registry/wishlist/add-item.html%3Fasin.0%3D1430218150%26SubscriptionId%3DAKIAJFA5X7RTOKFNPVZQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D1430218150</URL></ItemLink><ItemLink><Description>Tell
36
+ A Friend</Description><URL>http://www.amazon.com/gp/pdp/taf/1430218150%3FSubscriptionId%3DAKIAJFA5X7RTOKFNPVZQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D1430218150</URL></ItemLink><ItemLink><Description>All
37
+ Customer Reviews</Description><URL>http://www.amazon.com/review/product/1430218150%3FSubscriptionId%3DAKIAJFA5X7RTOKFNPVZQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D1430218150</URL></ItemLink><ItemLink><Description>All
38
+ Offers</Description><URL>http://www.amazon.com/gp/offer-listing/1430218150%3FSubscriptionId%3DAKIAJFA5X7RTOKFNPVZQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D1430218150</URL></ItemLink></ItemLinks><SalesRank>92255</SalesRank><SmallImage><URL>http://ecx.images-amazon.com/images/I/41kq5bDvnUL._SL75_.jpg</URL><Height
39
+ Units="pixels">75</Height><Width Units="pixels">57</Width></SmallImage><MediumImage><URL>http://ecx.images-amazon.com/images/I/41kq5bDvnUL._SL160_.jpg</URL><Height
40
+ Units="pixels">160</Height><Width Units="pixels">121</Width></MediumImage><LargeImage><URL>http://ecx.images-amazon.com/images/I/41kq5bDvnUL.jpg</URL><Height
41
+ Units="pixels">500</Height><Width Units="pixels">379</Width></LargeImage><ImageSets><ImageSet
42
+ Category="primary"><SwatchImage><URL>http://ecx.images-amazon.com/images/I/41kq5bDvnUL._SL30_.jpg</URL><Height
43
+ Units="pixels">30</Height><Width Units="pixels">23</Width></SwatchImage><SmallImage><URL>http://ecx.images-amazon.com/images/I/41kq5bDvnUL._SL75_.jpg</URL><Height
44
+ Units="pixels">75</Height><Width Units="pixels">57</Width></SmallImage><ThumbnailImage><URL>http://ecx.images-amazon.com/images/I/41kq5bDvnUL._SL75_.jpg</URL><Height
45
+ Units="pixels">75</Height><Width Units="pixels">57</Width></ThumbnailImage><TinyImage><URL>http://ecx.images-amazon.com/images/I/41kq5bDvnUL._SL110_.jpg</URL><Height
46
+ Units="pixels">110</Height><Width Units="pixels">83</Width></TinyImage><MediumImage><URL>http://ecx.images-amazon.com/images/I/41kq5bDvnUL._SL160_.jpg</URL><Height
47
+ Units="pixels">160</Height><Width Units="pixels">121</Width></MediumImage><LargeImage><URL>http://ecx.images-amazon.com/images/I/41kq5bDvnUL.jpg</URL><Height
48
+ Units="pixels">500</Height><Width Units="pixels">379</Width></LargeImage></ImageSet></ImageSets><ItemAttributes><Author>Mark
49
+ Dalrymple</Author><Author>Scott Knaster</Author><Binding>Paperback</Binding><Brand>Apress</Brand><CatalogNumberList><CatalogNumberListElement>9781430218159</CatalogNumberListElement></CatalogNumberList><DeweyDecimalNumber>005.117</DeweyDecimalNumber><EAN>9781430218159</EAN><EANList><EANListElement>9781430218159</EANListElement></EANList><Edition>1st
50
+ ed. 2009. Corr. 3rd printing</Edition><Feature>Apress Learn ObjectiveC on the
51
+ Mac</Feature><Feature>Take your coding skills to the next level with this extensive
52
+ guide to ObjectiveC, the native programming language for developing sophisticated
53
+ software applications for Mac OS X.</Feature><ISBN>1430218150</ISBN><IsEligibleForTradeIn>1</IsEligibleForTradeIn><ItemDimensions><Height
54
+ Units="hundredths-inches">90</Height><Length Units="hundredths-inches">925</Length><Weight
55
+ Units="hundredths-pounds">122</Weight><Width Units="hundredths-inches">697</Width></ItemDimensions><Label>Apress</Label><Languages><Language><Name>English</Name><Type>Unknown</Type></Language><Language><Name>English</Name><Type>Original
56
+ Language</Type></Language><Language><Name>English</Name><Type>Published</Type></Language></Languages><ListPrice><Amount>3999</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$39.99</FormattedPrice></ListPrice><Manufacturer>Apress</Manufacturer><MPN>978-1-4302-1815-9</MPN><NumberOfItems>1</NumberOfItems><NumberOfPages>360</NumberOfPages><PackageDimensions><Height
57
+ Units="hundredths-inches">102</Height><Length Units="hundredths-inches">921</Length><Weight
58
+ Units="hundredths-pounds">123</Weight><Width Units="hundredths-inches">701</Width></PackageDimensions><PartNumber>978-1-4302-1815-9</PartNumber><ProductGroup>Book</ProductGroup><ProductTypeName>ABIS_BOOK</ProductTypeName><PublicationDate>2008-12-25</PublicationDate><Publisher>Apress</Publisher><SKU>mon0000005185</SKU><Studio>Apress</Studio><Title>Learn
59
+ Objective-C on the Mac (Learn Series)</Title><TradeInValue><Amount>432</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$4.32</FormattedPrice></TradeInValue></ItemAttributes><OfferSummary><LowestNewPrice><Amount>1394</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$13.94</FormattedPrice></LowestNewPrice><LowestUsedPrice><Amount>1499</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$14.99</FormattedPrice></LowestUsedPrice><TotalNew>48</TotalNew><TotalUsed>26</TotalUsed><TotalCollectible>0</TotalCollectible><TotalRefurbished>0</TotalRefurbished></OfferSummary><EditorialReviews><EditorialReview><Source>Product
60
+ Description</Source><Content>&lt;P&gt;Learn Objective-C on the Macintosh is
61
+ a classic programming primer for Mac OS X developers. And it’s hard to believe,
62
+ but this will be the only guide to Objective-C specifically aimed at new developers!&lt;/P&gt;</Content><IsLinkSuppressed>0</IsLinkSuppressed></EditorialReview></EditorialReviews></Item></Items></ItemLookupResponse>
63
+ http_version: '1.1'