handcrafted-a2ws 0.0.1 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/VERSION.yml +1 -1
- data/a2ws.gemspec +56 -0
- data/lib/a2ws.rb +30 -8
- metadata +3 -2
data/Rakefile
CHANGED
@@ -12,7 +12,7 @@ begin
|
|
12
12
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
13
13
|
gem.add_dependency('httparty', '>= 0.4.3')
|
14
14
|
gem.add_dependency('mbleigh-mash', '>= 0.0.6')
|
15
|
-
gem.add_dependency('activesupport', '>= 2.
|
15
|
+
gem.add_dependency('activesupport', '>= 2.2.2')
|
16
16
|
end
|
17
17
|
|
18
18
|
rescue LoadError
|
data/VERSION.yml
CHANGED
data/a2ws.gemspec
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{a2ws}
|
5
|
+
s.version = "0.0.3"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Andy Shen"]
|
9
|
+
s.date = %q{2009-05-30}
|
10
|
+
s.email = %q{andy@shenie.info}
|
11
|
+
s.extra_rdoc_files = [
|
12
|
+
"LICENSE",
|
13
|
+
"README.rdoc"
|
14
|
+
]
|
15
|
+
s.files = [
|
16
|
+
".document",
|
17
|
+
".gitignore",
|
18
|
+
"LICENSE",
|
19
|
+
"README.rdoc",
|
20
|
+
"Rakefile",
|
21
|
+
"VERSION.yml",
|
22
|
+
"a2ws.gemspec",
|
23
|
+
"lib/a2ws.rb",
|
24
|
+
"spec/a2ws_spec.rb",
|
25
|
+
"spec/spec_helper.rb"
|
26
|
+
]
|
27
|
+
s.has_rdoc = true
|
28
|
+
s.homepage = %q{http://github.com/handcrafted/a2ws}
|
29
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
30
|
+
s.require_paths = ["lib"]
|
31
|
+
s.rubygems_version = %q{1.3.2}
|
32
|
+
s.summary = %q{Wrapper for Amazon Associates Web Service (A2WS).}
|
33
|
+
s.test_files = [
|
34
|
+
"spec/a2ws_spec.rb",
|
35
|
+
"spec/spec_helper.rb"
|
36
|
+
]
|
37
|
+
|
38
|
+
if s.respond_to? :specification_version then
|
39
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
40
|
+
s.specification_version = 3
|
41
|
+
|
42
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
43
|
+
s.add_runtime_dependency(%q<httparty>, [">= 0.4.3"])
|
44
|
+
s.add_runtime_dependency(%q<mbleigh-mash>, [">= 0.0.6"])
|
45
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 2.2.2"])
|
46
|
+
else
|
47
|
+
s.add_dependency(%q<httparty>, [">= 0.4.3"])
|
48
|
+
s.add_dependency(%q<mbleigh-mash>, [">= 0.0.6"])
|
49
|
+
s.add_dependency(%q<activesupport>, [">= 2.2.2"])
|
50
|
+
end
|
51
|
+
else
|
52
|
+
s.add_dependency(%q<httparty>, [">= 0.4.3"])
|
53
|
+
s.add_dependency(%q<mbleigh-mash>, [">= 0.0.6"])
|
54
|
+
s.add_dependency(%q<activesupport>, [">= 2.2.2"])
|
55
|
+
end
|
56
|
+
end
|
data/lib/a2ws.rb
CHANGED
@@ -12,24 +12,46 @@ module A2WS
|
|
12
12
|
end
|
13
13
|
|
14
14
|
class ItemSearch < Base
|
15
|
+
attr_accessor :items
|
16
|
+
|
15
17
|
default_params :Operation => 'ItemSearch'
|
16
18
|
|
17
|
-
def initialize(api_key, search_index)
|
19
|
+
def initialize(api_key, search_index = :All)
|
18
20
|
self.class.default_params :SearchIndex => search_index, :AWSAccessKeyId => api_key
|
19
21
|
end
|
20
22
|
|
21
|
-
def find(options = {})
|
22
|
-
|
23
|
+
def find(keywords, options = {})
|
24
|
+
options.merge!({:Keywords => keywords})
|
25
|
+
puts options.inspect
|
26
|
+
result = self.class.get('/onca/xml', :query => options)
|
23
27
|
|
24
|
-
items = result["ItemSearchResponse"]["Items"]
|
25
|
-
if items['Request']['IsValid'] == 'True'
|
26
|
-
items['Item'].collect do |i|
|
27
|
-
|
28
|
+
@items = result["ItemSearchResponse"]["Items"]
|
29
|
+
if @items['Request']['IsValid'] == 'True'
|
30
|
+
@items['Item'].collect do |i|
|
31
|
+
Mash.new downcase_keys(i)
|
28
32
|
end
|
29
33
|
else
|
30
|
-
raise items['Request']['Errors']['Error']['Message']
|
34
|
+
raise @items['Request']['Errors']['Error']['Message']
|
31
35
|
end
|
32
36
|
end
|
37
|
+
|
38
|
+
protected
|
39
|
+
|
40
|
+
def downcase_keys(hash)
|
41
|
+
new_hash = {}
|
42
|
+
hash.keys.each do |key|
|
43
|
+
value = hash.delete(key)
|
44
|
+
new_hash[downcase_key(key)] = value
|
45
|
+
new_hash[downcase_key(key)] = downcase_keys(value) if value.is_a?(Hash)
|
46
|
+
new_hash[downcase_key(key)] = value.each{|p| downcase_keys(p) if p.is_a?(Hash)} if value.is_a?(Array)
|
47
|
+
end
|
48
|
+
new_hash
|
49
|
+
end
|
50
|
+
|
51
|
+
def downcase_key(key)
|
52
|
+
key.titlecase.downcase.gsub(' ', '_')
|
53
|
+
end
|
54
|
+
|
33
55
|
end
|
34
56
|
|
35
57
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: handcrafted-a2ws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Shen
|
@@ -40,7 +40,7 @@ dependencies:
|
|
40
40
|
requirements:
|
41
41
|
- - ">="
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 2.
|
43
|
+
version: 2.2.2
|
44
44
|
version:
|
45
45
|
description:
|
46
46
|
email: andy@shenie.info
|
@@ -58,6 +58,7 @@ files:
|
|
58
58
|
- README.rdoc
|
59
59
|
- Rakefile
|
60
60
|
- VERSION.yml
|
61
|
+
- a2ws.gemspec
|
61
62
|
- lib/a2ws.rb
|
62
63
|
- spec/a2ws_spec.rb
|
63
64
|
- spec/spec_helper.rb
|