sucker 1.0.0.beta.3 → 1.0.0.beta.4
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.
- data/CHANGELOG.md +24 -0
- data/README.md +1 -1
- data/lib/sucker.rb +0 -1
- data/lib/sucker/request.rb +12 -1
- data/lib/sucker/response.rb +2 -0
- data/lib/sucker/version.rb +1 -1
- data/spec/integration/kindle_spec.rb +47 -0
- data/spec/unit/sucker/request_spec.rb +12 -2
- metadata +7 -5
- data/History.md +0 -14
data/CHANGELOG.md
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
Version 1.0.0.beta4
|
2
|
+
========
|
3
|
+
|
4
|
+
Release date: 2010-10-28
|
5
|
+
|
6
|
+
Added
|
7
|
+
-----
|
8
|
+
|
9
|
+
* Sucker::Request#get! raises an error if response is not valid.
|
10
|
+
|
11
|
+
Version 1.0.0.beta3
|
12
|
+
========
|
13
|
+
|
14
|
+
Release date: 2010-10-25
|
15
|
+
|
16
|
+
Added
|
17
|
+
-----
|
18
|
+
|
19
|
+
* Sucker::Response#find yields to a block if given one.
|
20
|
+
|
21
|
+
Deprecated
|
22
|
+
----------
|
23
|
+
|
24
|
+
* Renamed #node to #find
|
data/README.md
CHANGED
@@ -58,7 +58,7 @@ Stubbing
|
|
58
58
|
|
59
59
|
Use [VCR](http://github.com/myronmarston/vcr) to stub your requests.
|
60
60
|
|
61
|
-
Caveat: Match URIs on host only and create a new cassette for each
|
61
|
+
Caveat: Match URIs on host only and create a new cassette for each query. [This is how I do it](http://github.com/papercavalier/sucker/blob/master/spec/support/vcr.rb).
|
62
62
|
|
63
63
|
Compatibility
|
64
64
|
-------------
|
data/lib/sucker.rb
CHANGED
data/lib/sucker/request.rb
CHANGED
@@ -36,7 +36,7 @@ module Sucker #:nodoc
|
|
36
36
|
args.each { |k, v| send("#{k}=", v) }
|
37
37
|
end
|
38
38
|
|
39
|
-
#
|
39
|
+
# Merges a hash into existing parameters
|
40
40
|
#
|
41
41
|
# worker = Sucker.new
|
42
42
|
# worker << {
|
@@ -81,6 +81,17 @@ module Sucker #:nodoc
|
|
81
81
|
Response.new(curl)
|
82
82
|
end
|
83
83
|
|
84
|
+
# Similar to get but raises an error if response is not valid
|
85
|
+
def get!
|
86
|
+
response = get
|
87
|
+
|
88
|
+
unless response.valid?
|
89
|
+
raise ResponseError, response.inspect
|
90
|
+
end
|
91
|
+
|
92
|
+
response
|
93
|
+
end
|
94
|
+
|
84
95
|
# Sets the AWS Access Key ID
|
85
96
|
#
|
86
97
|
# worker = Sucker.new
|
data/lib/sucker/response.rb
CHANGED
data/lib/sucker/version.rb
CHANGED
@@ -0,0 +1,47 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
module Sucker
|
4
|
+
describe "Kindle" do
|
5
|
+
context "Book index" do
|
6
|
+
use_vcr_cassette "integration/kindle", :record => :new_episodes
|
7
|
+
|
8
|
+
let(:items) do
|
9
|
+
worker = Sucker.new(
|
10
|
+
:locale => "us",
|
11
|
+
:key => amazon["key"],
|
12
|
+
:secret => amazon["secret"])
|
13
|
+
worker << {
|
14
|
+
"Operation" => "ItemSearch",
|
15
|
+
"SearchIndex" => "Books",
|
16
|
+
"Power" => "deleuze binding:kindle",
|
17
|
+
"ResponseGroup" => "ItemAttributes" }
|
18
|
+
worker.get.find("Item")
|
19
|
+
end
|
20
|
+
|
21
|
+
it "finds Kindle books" do
|
22
|
+
items.first["ItemAttributes"]["Title"].should_not be_nil
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "Kindle store index" do
|
27
|
+
use_vcr_cassette "integration/kindle_2", :record => :new_episodes
|
28
|
+
|
29
|
+
let(:items) do
|
30
|
+
worker = Sucker.new(
|
31
|
+
:locale => "us",
|
32
|
+
:key => amazon["key"],
|
33
|
+
:secret => amazon["secret"])
|
34
|
+
worker << {
|
35
|
+
"Operation" => "ItemSearch",
|
36
|
+
"SearchIndex" => "KindleStore",
|
37
|
+
"Keywords" => "deleuze",
|
38
|
+
"ResponseGroup" => "ItemAttributes" }
|
39
|
+
worker.get.find("Item")
|
40
|
+
end
|
41
|
+
|
42
|
+
it "finds Kindle books" do
|
43
|
+
items.first["ItemAttributes"]["Title"].should_not be_nil
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -58,8 +58,18 @@ module Sucker
|
|
58
58
|
end
|
59
59
|
|
60
60
|
context "#get" do
|
61
|
-
it "returns a
|
62
|
-
worker.get.class.ancestors.should include
|
61
|
+
it "returns a response" do
|
62
|
+
worker.get.class.ancestors.should include Response
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
context "#get!" do
|
67
|
+
it "raises if response is not valid" do
|
68
|
+
worker << {
|
69
|
+
"Operation" => "ItemLookup",
|
70
|
+
"IdType" => "ASIN",
|
71
|
+
"ItemId" => "0816614024" }
|
72
|
+
lambda { worker.get! }.should raise_error ResponseError
|
63
73
|
end
|
64
74
|
end
|
65
75
|
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sucker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 62196363
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
9
|
- 0
|
10
10
|
- beta
|
11
|
-
-
|
12
|
-
version: 1.0.0.beta.
|
11
|
+
- 4
|
12
|
+
version: 1.0.0.beta.4
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- Hakan Ensari
|
@@ -18,7 +18,7 @@ autorequire:
|
|
18
18
|
bindir: bin
|
19
19
|
cert_chain: []
|
20
20
|
|
21
|
-
date: 2010-10-
|
21
|
+
date: 2010-10-28 00:00:00 +01:00
|
22
22
|
default_executable:
|
23
23
|
dependencies:
|
24
24
|
- !ruby/object:Gem::Dependency
|
@@ -197,7 +197,7 @@ files:
|
|
197
197
|
- lib/sucker.rb
|
198
198
|
- LICENSE
|
199
199
|
- README.md
|
200
|
-
-
|
200
|
+
- CHANGELOG.md
|
201
201
|
- spec/fixtures/asins.txt
|
202
202
|
- spec/integration/alternate_versions_spec.rb
|
203
203
|
- spec/integration/errors_spec.rb
|
@@ -207,6 +207,7 @@ files:
|
|
207
207
|
- spec/integration/item_search_spec.rb
|
208
208
|
- spec/integration/japan_spec.rb
|
209
209
|
- spec/integration/keyword_search_spec.rb
|
210
|
+
- spec/integration/kindle_spec.rb
|
210
211
|
- spec/integration/multiple_locales_spec.rb
|
211
212
|
- spec/integration/power_search_spec.rb
|
212
213
|
- spec/integration/related_items_spec.rb
|
@@ -266,6 +267,7 @@ test_files:
|
|
266
267
|
- spec/integration/item_search_spec.rb
|
267
268
|
- spec/integration/japan_spec.rb
|
268
269
|
- spec/integration/keyword_search_spec.rb
|
270
|
+
- spec/integration/kindle_spec.rb
|
269
271
|
- spec/integration/multiple_locales_spec.rb
|
270
272
|
- spec/integration/power_search_spec.rb
|
271
273
|
- spec/integration/related_items_spec.rb
|