asin 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +41 -0
- data/lib/asin.rb +4 -2
- data/test/test_asin.rb +10 -0
- metadata +10 -11
- data/readme.textile +0 -32
data/README.rdoc
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
= Introduction
|
2
|
+
|
3
|
+
There is already a sophisticated amazon gem out there called ruby-aaws[http://raa.ruby-lang.org/project/ruby-aws/], but ASIN in comparison is _reaaaaaaaaaly_ easy to use!
|
4
|
+
|
5
|
+
It currently just supports the _ItemLookup_ via REST but is easy to extend and understand!
|
6
|
+
|
7
|
+
Have a look at the RDOC[http://rdoc.info/projects/phoet/asin] for this project, if you want further information.
|
8
|
+
|
9
|
+
For more information on the REST calls, have a look at the whole Amazon E-Commerce-API[http://docs.amazonwebservices.com/AWSEcommerceService/4-0/].
|
10
|
+
|
11
|
+
The code currently runs best on Ruby-1.9 due to encoding issues with the Amazon REST output (if *YOU* know how to backport this to 1.8.7, you are welcome!).
|
12
|
+
|
13
|
+
== Installation
|
14
|
+
|
15
|
+
The gem is tested against 1.9.1 (to be compatible with Heroku Bamboo Stack) and somewhat against 1.8.7.
|
16
|
+
|
17
|
+
rvm use 1.9.1
|
18
|
+
gem install asin
|
19
|
+
|
20
|
+
== Usage
|
21
|
+
|
22
|
+
require 'asin'
|
23
|
+
include ASIN
|
24
|
+
|
25
|
+
# use the configure method to setup your api credentials
|
26
|
+
configure :secret => 'your-secret', :key => 'your-key'
|
27
|
+
|
28
|
+
# lookup an item with the amazon standard identification number (asin)
|
29
|
+
item = lookup '1430218150'
|
30
|
+
|
31
|
+
# have a look at the title of the item
|
32
|
+
item.title
|
33
|
+
=> Learn Objective-C on the Mac (Learn Series)
|
34
|
+
|
35
|
+
# access the internal data representation (Hashie::Mash)
|
36
|
+
item.raw.ItemAttributes.ListPrice.FormattedPrice
|
37
|
+
=> $39.99
|
38
|
+
|
39
|
+
== TODO
|
40
|
+
|
41
|
+
* Logging
|
data/lib/asin.rb
CHANGED
@@ -84,7 +84,7 @@ module ASIN
|
|
84
84
|
:digest => OpenSSL::Digest::Digest.new('sha256'),
|
85
85
|
:key => '',
|
86
86
|
:secret => '',
|
87
|
-
}
|
87
|
+
} if @options.nil?
|
88
88
|
@options.merge! options
|
89
89
|
end
|
90
90
|
|
@@ -112,7 +112,9 @@ module ASIN
|
|
112
112
|
raise "you have to configure ASIN: 'configure :secret => 'your-secret', :key => 'your-key''" if @options.nil?
|
113
113
|
signed = create_signed_query_string(params)
|
114
114
|
resp = HTTPClient.new.get_content("http://#{@options[:host]}#{@options[:path]}?#{signed}")
|
115
|
-
resp
|
115
|
+
if(resp.respond_to? :force_encoding)
|
116
|
+
resp = resp.force_encoding('UTF-8') # force utf-8 chars, works only on 1.9 string
|
117
|
+
end
|
116
118
|
Crack::XML.parse(resp)
|
117
119
|
end
|
118
120
|
|
data/test/test_asin.rb
CHANGED
@@ -13,11 +13,21 @@ class TestAsin < Test::Unit::TestCase
|
|
13
13
|
secret = ENV['ASIN_SECRET']
|
14
14
|
key = ENV['ASIN_KEY']
|
15
15
|
puts "configure #{secret} and #{key} for this test"
|
16
|
+
|
16
17
|
@helper.configure :secret => secret, :key => key
|
17
18
|
p item = @helper.lookup(ANY_ASIN)
|
18
19
|
assert_match(/Learn Objective/, item.title)
|
19
20
|
end
|
20
21
|
|
22
|
+
def test_configure_second_time_wont_get_overridden
|
23
|
+
config = @helper.configure :something => 'wont get overridden'
|
24
|
+
assert_not_nil(config[:something])
|
25
|
+
|
26
|
+
config = @helper.configure :different => 'is also set'
|
27
|
+
assert_not_nil(config[:something])
|
28
|
+
assert_not_nil(config[:different])
|
29
|
+
end
|
30
|
+
|
21
31
|
def test_error_with_not_called_configure
|
22
32
|
assert_raise(RuntimeError) { @helper.lookup ANY_ASIN }
|
23
33
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 7
|
10
|
+
version: 0.0.7
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- "Peter Schr\xC3\xB6der"
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-07-
|
18
|
+
date: 2010-07-22 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -72,13 +72,13 @@ executables: []
|
|
72
72
|
|
73
73
|
extensions: []
|
74
74
|
|
75
|
-
extra_rdoc_files:
|
76
|
-
|
75
|
+
extra_rdoc_files: []
|
76
|
+
|
77
77
|
files:
|
78
78
|
- lib/asin.rb
|
79
|
+
- README.rdoc
|
79
80
|
- test/test_asin.rb
|
80
81
|
- test/test_helper.rb
|
81
|
-
- readme.textile
|
82
82
|
has_rdoc: true
|
83
83
|
homepage: http://github.com/phoet/asin
|
84
84
|
licenses: []
|
@@ -95,11 +95,10 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
95
95
|
requirements:
|
96
96
|
- - ">="
|
97
97
|
- !ruby/object:Gem::Version
|
98
|
-
hash:
|
98
|
+
hash: 3
|
99
99
|
segments:
|
100
|
-
-
|
101
|
-
|
102
|
-
version: "1.9"
|
100
|
+
- 0
|
101
|
+
version: "0"
|
103
102
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
103
|
none: false
|
105
104
|
requirements:
|
data/readme.textile
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
h1. Introduction
|
2
|
-
|
3
|
-
There is already a sophisticated amazon gem out there called "ruby-aaws":http://raa.ruby-lang.org/project/ruby-aws/, but ASIN in comparison is __reaaaaaaaaaly easy to use!__
|
4
|
-
|
5
|
-
It currently just supports the _ItemLookup_ via REST but is easy to extend and understand!
|
6
|
-
|
7
|
-
If you want to have a look at "the whole Amazon E-Commerce-API go here":http://docs.amazonwebservices.com/AWSEcommerceService/4-0/.
|
8
|
-
|
9
|
-
The code currently runs only on __Ruby 1.9__ due to encoding issues with the Amazon REST output (if YOU know how to backport this, you are welcome!).
|
10
|
-
|
11
|
-
h2. Usage
|
12
|
-
|
13
|
-
<pre lang="ruby">
|
14
|
-
require 'asin'
|
15
|
-
include ASIN
|
16
|
-
# use the configure method to setup your api credentials
|
17
|
-
configure :secret => 'your-secret', :key => 'your-key'
|
18
|
-
# lookup an item with the amazon standard identification number (asin)
|
19
|
-
item = lookup '1430218150'
|
20
|
-
# have a look at the title of the item
|
21
|
-
item.title
|
22
|
-
=> Learn Objective-C on the Mac (Learn Series)
|
23
|
-
# access the internal data representation (Hashie::Mash)
|
24
|
-
item.raw.ItemAttributes.ListPrice.FormattedPrice
|
25
|
-
=> $39.99
|
26
|
-
</pre>
|
27
|
-
|
28
|
-
h2. TODO
|
29
|
-
|
30
|
-
* Logging
|
31
|
-
* More Docs
|
32
|
-
* More Tests
|