aws-sdb 0.1.1 → 0.1.2
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/lib/aws_sdb/error.rb +2 -0
- data/lib/aws_sdb/service.rb +3 -4
- data/spec/aws_sdb/service_spec.rb +46 -35
- metadata +2 -2
data/Rakefile
CHANGED
@@ -7,7 +7,7 @@ Spec::Rake::SpecTask.new
|
|
7
7
|
gem_spec = Gem::Specification.new do |s|
|
8
8
|
s.name = "aws-sdb"
|
9
9
|
s.rubyforge_project = s.name
|
10
|
-
s.version = "0.1.
|
10
|
+
s.version = "0.1.2"
|
11
11
|
s.platform = Gem::Platform::RUBY
|
12
12
|
s.has_rdoc = true
|
13
13
|
s.extra_rdoc_files = ["README", "LICENSE"]
|
data/lib/aws_sdb/error.rb
CHANGED
data/lib/aws_sdb/service.rb
CHANGED
@@ -18,7 +18,6 @@ module AwsSdb
|
|
18
18
|
@secret_access_key = secret_access_key
|
19
19
|
end
|
20
20
|
|
21
|
-
# TODO Make this options hash not a param list
|
22
21
|
def list_domains(max = nil, token = nil)
|
23
22
|
params = { 'Action' => 'ListDomains' }
|
24
23
|
params['MoreToken'] =
|
@@ -69,14 +68,14 @@ module AwsSdb
|
|
69
68
|
params = {
|
70
69
|
'Action' => 'PutAttributes',
|
71
70
|
'DomainName' => domain.to_s,
|
72
|
-
'ItemName' => item.to_s
|
73
|
-
'Replace' => replace
|
71
|
+
'ItemName' => item.to_s
|
74
72
|
}
|
75
73
|
count = 0
|
76
74
|
attributes.each do | key, values |
|
77
75
|
([]<<values).flatten.each do |value|
|
78
76
|
params["Attribute.#{count}.Name"] = key.to_s
|
79
77
|
params["Attribute.#{count}.Value"] = value.to_s
|
78
|
+
params["Attribute.#{count}.Replace"] = replace
|
80
79
|
count += 1
|
81
80
|
end
|
82
81
|
end
|
@@ -118,7 +117,7 @@ module AwsSdb
|
|
118
117
|
|
119
118
|
def call(method, params)
|
120
119
|
params.merge!( {
|
121
|
-
'Version' => '2007-
|
120
|
+
'Version' => '2007-11-07',
|
122
121
|
'SignatureVersion' => '1',
|
123
122
|
'AWSAccessKeyId' => @access_key_id,
|
124
123
|
'Timestamp' => Time.now.gmtime.iso8601
|
@@ -18,9 +18,8 @@ describe Service, "when creating a new domain" do
|
|
18
18
|
)
|
19
19
|
@domain = "test-#{UUID.random_create.to_s}"
|
20
20
|
# domains = @service.list_domains[0]
|
21
|
-
# @logger.debug("Domains #{domains.inspect}")
|
22
21
|
# domains.each do |d|
|
23
|
-
# @service.delete_domain(d)
|
22
|
+
# @service.delete_domain(d) if d =~ /^test/
|
24
23
|
# end
|
25
24
|
end
|
26
25
|
|
@@ -86,49 +85,54 @@ describe Service, "when creating a new domain" do
|
|
86
85
|
|
87
86
|
it "should raise an error if an a nil or '' domain name is given" do
|
88
87
|
stub_error(
|
89
|
-
400,
|
88
|
+
400,
|
89
|
+
:InvalidParameterValue,
|
90
|
+
"Value () for parameter DomainName is invalid."
|
90
91
|
)
|
91
92
|
lambda {
|
92
93
|
@service.create_domain('')
|
93
|
-
}.should raise_error(
|
94
|
-
stub_error(
|
95
|
-
400, :InvalidDomainName, "The domain name ' ' is not valid."
|
96
|
-
)
|
94
|
+
}.should raise_error(InvalidParameterValueError)
|
97
95
|
lambda {
|
98
|
-
@service.create_domain(
|
99
|
-
}.should raise_error(
|
96
|
+
@service.create_domain(nil)
|
97
|
+
}.should raise_error(InvalidParameterValueError)
|
100
98
|
stub_error(
|
101
|
-
400,
|
99
|
+
400,
|
100
|
+
:InvalidParameterValue,
|
101
|
+
"Value ( ) for parameter DomainName is invalid."
|
102
102
|
)
|
103
103
|
lambda {
|
104
|
-
@service.create_domain(
|
105
|
-
}.should raise_error(
|
104
|
+
@service.create_domain(' ')
|
105
|
+
}.should raise_error(InvalidParameterValueError)
|
106
106
|
end
|
107
107
|
|
108
108
|
it "should raise an error if the domain name length is < 3 or > 255" do
|
109
109
|
stub_error(
|
110
|
-
400,
|
110
|
+
400,
|
111
|
+
:InvalidParameterValue,
|
112
|
+
"Value (xx) for parameter DomainName is invalid."
|
111
113
|
)
|
112
114
|
lambda {
|
113
115
|
@service.create_domain('xx')
|
114
|
-
}.should raise_error(
|
116
|
+
}.should raise_error(InvalidParameterValueError)
|
115
117
|
stub_error(
|
116
118
|
400,
|
117
|
-
:
|
118
|
-
"
|
119
|
+
:InvalidParameterValue,
|
120
|
+
"Value (#{:x.to_s*256}) for parameter DomainName is invalid."
|
119
121
|
)
|
120
122
|
lambda {
|
121
123
|
@service.create_domain('x'*256)
|
122
|
-
}.should raise_error(
|
124
|
+
}.should raise_error(InvalidParameterValueError)
|
123
125
|
end
|
124
126
|
|
125
127
|
it "should only accept domain names with a-z, A-Z, 0-9, '_', '-', and '.' " do
|
126
128
|
stub_error(
|
127
|
-
400,
|
129
|
+
400,
|
130
|
+
:InvalidParameterValue,
|
131
|
+
"Value (@$^*()) for parameter DomainName is invalid."
|
128
132
|
)
|
129
133
|
lambda {
|
130
|
-
@service.create_domain('
|
131
|
-
}.should raise_error(
|
134
|
+
@service.create_domain('@$^*()')
|
135
|
+
}.should raise_error(InvalidParameterValueError)
|
132
136
|
end
|
133
137
|
|
134
138
|
it "should only accept a maximum of 100 domain names" do
|
@@ -148,7 +152,7 @@ describe Service, "when listing domains" do
|
|
148
152
|
)
|
149
153
|
@domain = "test-#{UUID.random_create.to_s}"
|
150
154
|
# @service.list_domains[0].each do |d|
|
151
|
-
# @service.delete_domain(d)
|
155
|
+
# @service.delete_domain(d) if d =~ /^test/
|
152
156
|
# end
|
153
157
|
# @service.create_domain(@domain)
|
154
158
|
end
|
@@ -162,14 +166,14 @@ describe Service, "when listing domains" do
|
|
162
166
|
resp.stub!(:code).and_return("200")
|
163
167
|
resp.stub!(:body).and_return(
|
164
168
|
"""
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
169
|
+
<ListDomainsResponse>
|
170
|
+
<ResponseStatus>
|
171
|
+
<StatusCode>Success</StatusCode>
|
172
|
+
<RequestID>#{UUID.random_create.to_s}</RequestID>
|
173
|
+
<BoxUsage/>
|
174
|
+
</ResponseStatus>
|
175
|
+
<DomainName>#{@domain}</DomainName>
|
176
|
+
</ListDomainsResponse>
|
173
177
|
"""
|
174
178
|
)
|
175
179
|
http = mock(Net::HTTP)
|
@@ -194,7 +198,7 @@ describe Service, "when deleting domains" do
|
|
194
198
|
)
|
195
199
|
@domain = "test-#{UUID.random_create.to_s}"
|
196
200
|
# @service.list_domains[0].each do |d|
|
197
|
-
# @service.delete_domain(d)
|
201
|
+
# @service.delete_domain(d) if d =~ /^test/
|
198
202
|
# end
|
199
203
|
# @service.create_domain(@domain)
|
200
204
|
end
|
@@ -242,10 +246,10 @@ describe Service, "when managing items" do
|
|
242
246
|
ENV['AMAZON_SECRET_ACCESS_KEY']
|
243
247
|
)
|
244
248
|
@domain = "test-#{UUID.random_create.to_s}"
|
245
|
-
# @service.list_domains[0].each do |d|
|
246
|
-
# @service.delete_domain(d)
|
247
|
-
# end
|
248
|
-
# @service.create_domain(@domain)
|
249
|
+
# @service.list_domains[0].each do |d|
|
250
|
+
# @service.delete_domain(d) if d =~ /^test/
|
251
|
+
# end
|
252
|
+
# @service.create_domain(@domain)
|
249
253
|
@item = "test-#{UUID.random_create.to_s}"
|
250
254
|
@attributes = {
|
251
255
|
:question => 'What is the answer?',
|
@@ -254,7 +258,7 @@ describe Service, "when managing items" do
|
|
254
258
|
end
|
255
259
|
|
256
260
|
after(:all) do
|
257
|
-
# @service.delete_domain(@domain)
|
261
|
+
# @service.delete_domain(@domain)
|
258
262
|
end
|
259
263
|
|
260
264
|
def stub_put
|
@@ -397,3 +401,10 @@ describe Service, "when managing items" do
|
|
397
401
|
}.should_not raise_error
|
398
402
|
end
|
399
403
|
end
|
404
|
+
|
405
|
+
# TODO Pull the specs from the amazon docs and write more rspec
|
406
|
+
# 100 attributes per each call
|
407
|
+
# 256 total attribute name-value pairs per item
|
408
|
+
# 250 million attributes per domain
|
409
|
+
# 10 GB of total user data storage per domain
|
410
|
+
# ...etc...
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-sdb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Dysinger
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-01-
|
12
|
+
date: 2008-01-23 00:00:00 -10:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|