handcrafted-a2ws 0.0.1 → 0.0.3
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/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
|