raws 0.0.9 → 0.0.10
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/.gitignore +22 -0
- data/LICENSE +20 -0
- data/README.rdoc +83 -7
- data/Rakefile +39 -25
- data/VERSION +1 -1
- data/lib/raws/http/typhoeus.rb +1 -1
- data/lib/raws/s3/adapter.rb +8 -6
- data/lib/raws/s3/metadata.rb +39 -0
- data/lib/raws/s3/model.rb +66 -39
- data/lib/raws/s3.rb +17 -10
- data/lib/raws/sdb.rb +16 -13
- data/lib/raws/sqs.rb +7 -6
- data/raws.gemspec +93 -0
- data/spec/raws/s3/model_spec.rb +40 -0
- data/spec/raws/s3_spec.rb +66 -50
- data/spec/raws/sdb_spec.rb +51 -32
- data/spec/raws/sqs_spec.rb +7 -5
- data/spec/spec.opts +1 -0
- data/spec/spec_config.rb.example +14 -0
- metadata +27 -4
- data/COPYING +0 -18
- data/lib/raws/s3/s3object.rb +0 -3
data/.gitignore
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2009 Jun Kikuchi
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
CHANGED
@@ -2,7 +2,9 @@
|
|
2
2
|
|
3
3
|
RAWS is a Ruby library for Amazon Web Service (AWS).
|
4
4
|
|
5
|
-
==
|
5
|
+
== Usage
|
6
|
+
|
7
|
+
=== SQS (Amazon Simple Queue Service)
|
6
8
|
|
7
9
|
require 'rubygems'
|
8
10
|
require 'raws'
|
@@ -22,9 +24,9 @@ RAWS is a Ruby library for Amazon Web Service (AWS).
|
|
22
24
|
msg.delete
|
23
25
|
end
|
24
26
|
|
25
|
-
RAWS::SQS
|
27
|
+
RAWS::SQS.delete_queue('test_queue')
|
26
28
|
|
27
|
-
|
29
|
+
=== SDB (Amazon SimpleDB)
|
28
30
|
|
29
31
|
プリミティブな使い方
|
30
32
|
|
@@ -57,7 +59,7 @@ RAWS is a Ruby library for Amazon Web Service (AWS).
|
|
57
59
|
RAWS::SDB['test_domain'].delete('2')
|
58
60
|
RAWS::SDB['test_domain'].delete('3')
|
59
61
|
|
60
|
-
RAWS::SDB
|
62
|
+
RAWS::SDB.delete_domain('test_domain')
|
61
63
|
|
62
64
|
クラスとして使う場合
|
63
65
|
|
@@ -103,14 +105,88 @@ RAWS is a Ruby library for Amazon Web Service (AWS).
|
|
103
105
|
|
104
106
|
Foo.delete_domain
|
105
107
|
|
106
|
-
|
108
|
+
=== S3 (Amazon Simple Storage Service)
|
109
|
+
|
110
|
+
プリミティブな使い方
|
107
111
|
|
108
112
|
require 'rubygems'
|
109
113
|
require 'raws'
|
110
114
|
|
111
115
|
RAWS.aws_access_key_id = _AWS_ACCESS_KEY_ID_
|
112
116
|
RAWS.aws_secret_access_key = _AWS_SECRET_ACCESS_KEY_
|
117
|
+
|
118
|
+
RAWS::S3.create_bucket('test-bucket')
|
119
|
+
|
120
|
+
RAWS::S3['test-bucket'].put('helloworld') do |request|
|
121
|
+
request.header['content-type'] = 'text/plain'
|
122
|
+
request.header['content-length'] = ("Hello World\n".size * 1000).to_i
|
123
|
+
request.send do |io|
|
124
|
+
1000.times do
|
125
|
+
io.write "Hellow World\n"
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
RAWS::S3['test-bucket'].get('helloworld') do |request|
|
131
|
+
response = request.send
|
132
|
+
p response.header
|
133
|
+
response.receive do |io|
|
134
|
+
while chunk = io.read
|
135
|
+
print chunk
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
RAWS::S3.delete_bucket('test-bucket')
|
141
|
+
|
142
|
+
クラスとして使う場合
|
113
143
|
|
114
|
-
|
144
|
+
require 'rubygems'
|
145
|
+
require 'raws'
|
115
146
|
|
116
|
-
RAWS
|
147
|
+
RAWS.aws_access_key_id = _AWS_ACCESS_KEY_ID_
|
148
|
+
RAWS.aws_secret_access_key = _AWS_SECRET_ACCESS_KEY_
|
149
|
+
|
150
|
+
class Foo
|
151
|
+
include RAWS::S3::Model
|
152
|
+
self.bucket_name = 'test-bucket'
|
153
|
+
end
|
154
|
+
|
155
|
+
Foo.create_bucket
|
156
|
+
|
157
|
+
foo = Foo.new('helloworld')
|
158
|
+
foo.metadata['ja'] = 'こんにちは'
|
159
|
+
foo.send(
|
160
|
+
'content-type' => 'text/plain',
|
161
|
+
'content-length' => ("Hello World\n".size * 1000).to_i
|
162
|
+
) do |io|
|
163
|
+
1000.times do
|
164
|
+
io.write "Hellow World\n"
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
foo = Foo.find('helloworld')
|
169
|
+
p foo.header
|
170
|
+
p foo.metadata
|
171
|
+
foo.receive do |io|
|
172
|
+
while chunk = io.read
|
173
|
+
print chunk
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
Foo.delete_bucket
|
178
|
+
|
179
|
+
== Note on Patches/Pull Requests
|
180
|
+
|
181
|
+
* Fork the project.
|
182
|
+
* Make your feature addition or bug fix.
|
183
|
+
* Add tests for it. This is important so I don't break it in a
|
184
|
+
future version unintentionally.
|
185
|
+
* Commit, do not mess with rakefile, version, or history.
|
186
|
+
(if you want to have your own version, that is fine but
|
187
|
+
bump version in a commit by itself I can ignore when I pull)
|
188
|
+
* Send me a pull request. Bonus points for topic branches.
|
189
|
+
|
190
|
+
== Copyright
|
191
|
+
|
192
|
+
Copyright (c) 2009 Jun Kikuchi. See LICENSE for details.
|
data/Rakefile
CHANGED
@@ -1,35 +1,49 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require '
|
3
|
-
|
4
|
-
NAME = 'raws'
|
2
|
+
require 'rake'
|
5
3
|
|
6
4
|
begin
|
7
5
|
require 'jeweler'
|
8
|
-
Jeweler::Tasks.new do |
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
s.add_dependency('typhoeus', '>=0.1.9')
|
22
|
-
s.add_dependency('ht2p', '>=0.0.5')
|
23
|
-
s.add_dependency('nokogiri', '>=1.3.3')
|
24
|
-
s.add_dependency('uuidtools', '>=2.0.0')
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.name = 'raws'
|
8
|
+
gem.summary = %Q{raws}
|
9
|
+
gem.description = %Q{raws}
|
10
|
+
gem.email = "kikuchi@bonnou.com"
|
11
|
+
gem.homepage = "http://github.com/JunKikuchi/raws"
|
12
|
+
gem.authors = ["Jun Kikuchi"]
|
13
|
+
gem.add_development_dependency "rspec", ">= 1.2.9"
|
14
|
+
gem.add_dependency 'typhoeus', '>=0.1.9'
|
15
|
+
gem.add_dependency 'ht2p', '>=0.0.5'
|
16
|
+
gem.add_dependency 'nokogiri', '>=1.3.3'
|
17
|
+
gem.add_dependency 'uuidtools', '>=2.0.0'
|
18
|
+
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
25
19
|
end
|
26
20
|
Jeweler::GemcutterTasks.new
|
27
21
|
rescue LoadError
|
28
|
-
puts "Jeweler not available. Install it with: sudo gem install
|
22
|
+
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
23
|
+
end
|
24
|
+
|
25
|
+
require 'spec/rake/spectask'
|
26
|
+
Spec::Rake::SpecTask.new(:spec) do |spec|
|
27
|
+
spec.libs << 'lib' << 'spec'
|
28
|
+
spec.spec_files = FileList['spec/**/*_spec.rb']
|
29
29
|
end
|
30
30
|
|
31
|
-
Spec::Rake::SpecTask.new do |
|
32
|
-
|
33
|
-
|
34
|
-
|
31
|
+
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
32
|
+
spec.libs << 'lib' << 'spec'
|
33
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
34
|
+
spec.rcov = true
|
35
|
+
end
|
36
|
+
|
37
|
+
task :spec => :check_dependencies
|
38
|
+
|
39
|
+
task :default => :spec
|
40
|
+
|
41
|
+
require 'rake/rdoctask'
|
42
|
+
Rake::RDocTask.new do |rdoc|
|
43
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
44
|
+
|
45
|
+
rdoc.rdoc_dir = 'rdoc'
|
46
|
+
rdoc.title = "ht2p #{version}"
|
47
|
+
rdoc.rdoc_files.include('README*')
|
48
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
35
49
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.10
|
data/lib/raws/http/typhoeus.rb
CHANGED
data/lib/raws/s3/adapter.rb
CHANGED
@@ -175,9 +175,7 @@ class RAWS::S3::Adapter
|
|
175
175
|
:path => '/' << name
|
176
176
|
) do |request|
|
177
177
|
request.header.merge!(header)
|
178
|
-
|
179
|
-
response.receive
|
180
|
-
response
|
178
|
+
block.call(request)
|
181
179
|
end
|
182
180
|
end
|
183
181
|
|
@@ -200,9 +198,13 @@ class RAWS::S3::Adapter
|
|
200
198
|
:path => "/#{name}"
|
201
199
|
) do |request|
|
202
200
|
request.header.merge! header
|
203
|
-
|
204
|
-
|
205
|
-
|
201
|
+
if block_given?
|
202
|
+
block.call(request)
|
203
|
+
else
|
204
|
+
response = request.send
|
205
|
+
response.receive
|
206
|
+
response
|
207
|
+
end
|
206
208
|
end
|
207
209
|
end
|
208
210
|
|
@@ -0,0 +1,39 @@
|
|
1
|
+
class RAWS::S3::Metadata < Hash
|
2
|
+
X_AMZ_META = 'x-amz-meta-'
|
3
|
+
|
4
|
+
def initialize(header={})
|
5
|
+
super()
|
6
|
+
decode(header)
|
7
|
+
end
|
8
|
+
|
9
|
+
def decode(header)
|
10
|
+
clear
|
11
|
+
header.select do |key, val|
|
12
|
+
key.match(/^#{X_AMZ_META}/)
|
13
|
+
end.each do |key, val|
|
14
|
+
self[key.sub(X_AMZ_META, '')] = begin
|
15
|
+
a = val.split(',').map do |val|
|
16
|
+
RAWS.unescape(val)
|
17
|
+
end
|
18
|
+
1 < a.size ? a : a.first
|
19
|
+
end
|
20
|
+
end
|
21
|
+
self
|
22
|
+
end
|
23
|
+
|
24
|
+
def encode
|
25
|
+
self.inject({}) do |ret, (key, val)|
|
26
|
+
key = X_AMZ_META + key
|
27
|
+
|
28
|
+
if val.is_a? Array
|
29
|
+
ret[key] = val.map do |v|
|
30
|
+
RAWS.escape(v.strip)
|
31
|
+
end.join(',')
|
32
|
+
else
|
33
|
+
ret[key] = RAWS.escape(val.strip)
|
34
|
+
end
|
35
|
+
|
36
|
+
ret
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/raws/s3/model.rb
CHANGED
@@ -9,9 +9,75 @@ module RAWS::S3::Model
|
|
9
9
|
def delete_bucket(force=nil)
|
10
10
|
RAWS::S3.delete_bucket(self.bucket_name, force)
|
11
11
|
end
|
12
|
+
|
13
|
+
def filter(query={})
|
14
|
+
RAWS::S3.filter(self.bucket_name, query).map do |val|
|
15
|
+
self.new(val['Key'])
|
16
|
+
end
|
17
|
+
end
|
18
|
+
alias :all :filter
|
19
|
+
|
20
|
+
def find(key, header={})
|
21
|
+
begin
|
22
|
+
self.new(key, RAWS::S3.head(self.bucket_name, key).header)
|
23
|
+
rescue RAWS::HTTP::Error => e
|
24
|
+
if e.response.code == 404
|
25
|
+
nil
|
26
|
+
else
|
27
|
+
raise e
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
12
31
|
end
|
13
32
|
|
14
33
|
module InstanceMethods
|
34
|
+
attr_reader :key
|
35
|
+
|
36
|
+
def initialize(key, header=nil)
|
37
|
+
@key, @header = key, header
|
38
|
+
@metadata = RAWS::S3::Metadata.new(header || {})
|
39
|
+
after_initialize
|
40
|
+
end
|
41
|
+
|
42
|
+
def header
|
43
|
+
begin
|
44
|
+
@header = RAWS::S3.head(self.class.bucket_name, @key).header
|
45
|
+
rescue RAWS::HTTP::Error => e
|
46
|
+
if e.response.code == 404
|
47
|
+
{}
|
48
|
+
else
|
49
|
+
raise e
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def metadata
|
55
|
+
@header ? @metadata : @metadata.decode(header)
|
56
|
+
end
|
57
|
+
|
58
|
+
def receive(header={}, &block)
|
59
|
+
RAWS::S3.get(
|
60
|
+
self.class.bucket_name,
|
61
|
+
@key,
|
62
|
+
header
|
63
|
+
) do |request|
|
64
|
+
response = request.send
|
65
|
+
response.receive(&block)
|
66
|
+
@metadata.decode(response.header)
|
67
|
+
response
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def send(header={}, &block)
|
72
|
+
RAWS::S3.put(
|
73
|
+
self.class.bucket_name,
|
74
|
+
@key,
|
75
|
+
@metadata.encode.merge!(header)
|
76
|
+
) do |request|
|
77
|
+
request.send(&block)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
15
81
|
def after_initialize; end
|
16
82
|
def before_delete; end
|
17
83
|
def after_delete; end
|
@@ -29,43 +95,4 @@ module RAWS::S3::Model
|
|
29
95
|
extend ClassMethods
|
30
96
|
end
|
31
97
|
end
|
32
|
-
|
33
|
-
class Metadata < Hash
|
34
|
-
X_AMZ_META = 'x-amz-meta-'
|
35
|
-
|
36
|
-
def initialize(object)
|
37
|
-
super()
|
38
|
-
@object = object
|
39
|
-
decode(@object.header)
|
40
|
-
end
|
41
|
-
|
42
|
-
def decode(header)
|
43
|
-
header.select do |key, val|
|
44
|
-
key.match(/^#{X_AMZ_META}/)
|
45
|
-
end.each do |key, val|
|
46
|
-
self[key.sub(X_AMZ_META, '')] = begin
|
47
|
-
a = val.split(',').map do |val|
|
48
|
-
RAWS.unescape(val)
|
49
|
-
end
|
50
|
-
1 < a.size ? a : a.first
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
def encode
|
56
|
-
self.inject({}) do |ret, (key, val)|
|
57
|
-
key = X_AMZ_META + key
|
58
|
-
|
59
|
-
if val.is_a? Array
|
60
|
-
ret[key] = val.map do |v|
|
61
|
-
RAWS.escape(v.strip)
|
62
|
-
end.join(',')
|
63
|
-
else
|
64
|
-
ret[key] = RAWS.escape(val.strip)
|
65
|
-
end
|
66
|
-
|
67
|
-
ret
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
98
|
end
|
data/lib/raws/s3.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
class RAWS::S3
|
2
|
-
autoload :
|
2
|
+
autoload :Metadata, 'raws/s3/metadata'
|
3
3
|
autoload :Adapter, 'raws/s3/adapter'
|
4
4
|
autoload :Model, 'raws/s3/model'
|
5
5
|
|
@@ -25,12 +25,16 @@ class RAWS::S3
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def owner
|
28
|
-
|
28
|
+
Adapter.get_service.doc['ListAllMyBucketsResult']['Owner']
|
29
|
+
end
|
30
|
+
|
31
|
+
def list
|
32
|
+
Adapter.get_service.doc['ListAllMyBucketsResult']
|
29
33
|
end
|
30
34
|
|
31
35
|
def buckets
|
32
36
|
begin
|
33
|
-
response =
|
37
|
+
response = list
|
34
38
|
@owner ||= response['Owner']
|
35
39
|
response['Buckets']['Bucket'] || []
|
36
40
|
end.map do |val|
|
@@ -38,6 +42,10 @@ class RAWS::S3
|
|
38
42
|
end
|
39
43
|
end
|
40
44
|
|
45
|
+
def each(&block)
|
46
|
+
buckets.each(&block)
|
47
|
+
end
|
48
|
+
|
41
49
|
def [](bucket_name)
|
42
50
|
@cache ||= {}
|
43
51
|
@cache[bucket_name] ||= self.new(bucket_name)
|
@@ -59,7 +67,7 @@ class RAWS::S3
|
|
59
67
|
end
|
60
68
|
alias :all :filter
|
61
69
|
|
62
|
-
def put(bucket_name, name, header, &block)
|
70
|
+
def put(bucket_name, name, header={}, &block)
|
63
71
|
Adapter.put_object(bucket_name, name, header, &block)
|
64
72
|
end
|
65
73
|
|
@@ -67,8 +75,8 @@ class RAWS::S3
|
|
67
75
|
Adapter.copy_object(src_bucket, src_name, dest_bucket, dest_name, header)
|
68
76
|
end
|
69
77
|
|
70
|
-
def get(bucket_name, name,
|
71
|
-
Adapter.get_object(bucket_name, name,
|
78
|
+
def get(bucket_name, name, header={}, &block)
|
79
|
+
Adapter.get_object(bucket_name, name, header, &block)
|
72
80
|
end
|
73
81
|
|
74
82
|
def head(bucket_name, name)
|
@@ -80,12 +88,11 @@ class RAWS::S3
|
|
80
88
|
end
|
81
89
|
end
|
82
90
|
|
83
|
-
attr_reader :bucket_name
|
91
|
+
attr_reader :bucket_name
|
84
92
|
alias :name :bucket_name
|
85
93
|
|
86
|
-
def initialize(bucket_name
|
94
|
+
def initialize(bucket_name)
|
87
95
|
@bucket_name = bucket_name
|
88
|
-
@creation_date = Time.parse(creation_date) if creation_date
|
89
96
|
end
|
90
97
|
|
91
98
|
def create_bucket(location=nil)
|
@@ -105,7 +112,7 @@ class RAWS::S3
|
|
105
112
|
end
|
106
113
|
alias :all :filter
|
107
114
|
|
108
|
-
def put(name, header, &block)
|
115
|
+
def put(name, header={}, &block)
|
109
116
|
self.class.put(@bucket_name, name, header, &block)
|
110
117
|
end
|
111
118
|
|
data/lib/raws/sdb.rb
CHANGED
@@ -21,27 +21,30 @@ class RAWS::SDB
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def metadata(domain_name)
|
24
|
-
Adapter.domain_metadata(
|
25
|
-
|
26
|
-
)['DomainMetadataResponse']['DomainMetadataResult']
|
24
|
+
doc = Adapter.domain_metadata(domain_name)
|
25
|
+
doc['DomainMetadataResponse']['DomainMetadataResult']
|
27
26
|
end
|
28
27
|
|
29
28
|
def list(next_token=nil, max_num=nil)
|
30
|
-
Adapter.list_domains(
|
31
|
-
|
32
|
-
|
33
|
-
|
29
|
+
doc = Adapter.list_domains(next_token, max_num)
|
30
|
+
doc['ListDomainsResponse']['ListDomainsResult']
|
31
|
+
end
|
32
|
+
|
33
|
+
def domains(next_token=nil, max_num=nil)
|
34
|
+
data = list(next_token, max_num)
|
35
|
+
{
|
36
|
+
'Domains' => (data['DomainName'] || []).map do |val|
|
37
|
+
self.new(val)
|
38
|
+
end,
|
39
|
+
'NextToken' => data['NextToken']
|
40
|
+
}
|
34
41
|
end
|
35
42
|
|
36
43
|
def each(&block)
|
37
44
|
next_token = nil
|
38
45
|
begin
|
39
|
-
data =
|
40
|
-
|
41
|
-
domain.each do |val|
|
42
|
-
block.call(self.new(val))
|
43
|
-
end
|
44
|
-
end
|
46
|
+
data = domains(next_token)
|
47
|
+
data['Domains'].each(&block)
|
45
48
|
end while next_token = data['NextToken']
|
46
49
|
end
|
47
50
|
|
data/lib/raws/sqs.rb
CHANGED
@@ -37,17 +37,18 @@ class RAWS::SQS
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def list(prefix=nil)
|
40
|
-
(
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
40
|
+
doc = Adapter.list_queues(prefix)
|
41
|
+
doc['ListQueuesResponse']['ListQueuesResult']['QueueUrl'] || []
|
42
|
+
end
|
43
|
+
|
44
|
+
def queues(prefix=nil)
|
45
|
+
list.map do |val|
|
45
46
|
self.new(val)
|
46
47
|
end
|
47
48
|
end
|
48
49
|
|
49
50
|
def each(&block)
|
50
|
-
|
51
|
+
queues.each(&block)
|
51
52
|
end
|
52
53
|
|
53
54
|
def [](queue_name)
|
data/raws.gemspec
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{raws}
|
8
|
+
s.version = "0.0.10"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Jun Kikuchi"]
|
12
|
+
s.date = %q{2009-11-23}
|
13
|
+
s.description = %q{raws}
|
14
|
+
s.email = %q{kikuchi@bonnou.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE",
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".gitignore",
|
21
|
+
"CHANGELOG",
|
22
|
+
"LICENSE",
|
23
|
+
"README.rdoc",
|
24
|
+
"Rakefile",
|
25
|
+
"VERSION",
|
26
|
+
"lib/raws.rb",
|
27
|
+
"lib/raws/http.rb",
|
28
|
+
"lib/raws/http/ht2p.rb",
|
29
|
+
"lib/raws/http/typhoeus.rb",
|
30
|
+
"lib/raws/s3.rb",
|
31
|
+
"lib/raws/s3/adapter.rb",
|
32
|
+
"lib/raws/s3/metadata.rb",
|
33
|
+
"lib/raws/s3/model.rb",
|
34
|
+
"lib/raws/sdb.rb",
|
35
|
+
"lib/raws/sdb/adapter.rb",
|
36
|
+
"lib/raws/sdb/model.rb",
|
37
|
+
"lib/raws/sdb/select.rb",
|
38
|
+
"lib/raws/sqs.rb",
|
39
|
+
"lib/raws/sqs/adapter.rb",
|
40
|
+
"lib/raws/xml.rb",
|
41
|
+
"lib/raws/xml/nokogiri.rb",
|
42
|
+
"raws.gemspec",
|
43
|
+
"spec/raws/s3/model_spec.rb",
|
44
|
+
"spec/raws/s3_spec.rb",
|
45
|
+
"spec/raws/sdb/model_spec.rb",
|
46
|
+
"spec/raws/sdb_spec.rb",
|
47
|
+
"spec/raws/sqs_spec.rb",
|
48
|
+
"spec/raws_spec.rb",
|
49
|
+
"spec/spec.opts",
|
50
|
+
"spec/spec_config.rb.example",
|
51
|
+
"spec/spec_helper.rb"
|
52
|
+
]
|
53
|
+
s.homepage = %q{http://github.com/JunKikuchi/raws}
|
54
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
55
|
+
s.require_paths = ["lib"]
|
56
|
+
s.rubygems_version = %q{1.3.5}
|
57
|
+
s.summary = %q{raws}
|
58
|
+
s.test_files = [
|
59
|
+
"spec/raws/s3/model_spec.rb",
|
60
|
+
"spec/raws/s3_spec.rb",
|
61
|
+
"spec/raws/sdb/model_spec.rb",
|
62
|
+
"spec/raws/sdb_spec.rb",
|
63
|
+
"spec/raws/sqs_spec.rb",
|
64
|
+
"spec/raws_spec.rb",
|
65
|
+
"spec/spec_helper.rb"
|
66
|
+
]
|
67
|
+
|
68
|
+
if s.respond_to? :specification_version then
|
69
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
70
|
+
s.specification_version = 3
|
71
|
+
|
72
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
73
|
+
s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
|
74
|
+
s.add_runtime_dependency(%q<typhoeus>, [">= 0.1.9"])
|
75
|
+
s.add_runtime_dependency(%q<ht2p>, [">= 0.0.5"])
|
76
|
+
s.add_runtime_dependency(%q<nokogiri>, [">= 1.3.3"])
|
77
|
+
s.add_runtime_dependency(%q<uuidtools>, [">= 2.0.0"])
|
78
|
+
else
|
79
|
+
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
80
|
+
s.add_dependency(%q<typhoeus>, [">= 0.1.9"])
|
81
|
+
s.add_dependency(%q<ht2p>, [">= 0.0.5"])
|
82
|
+
s.add_dependency(%q<nokogiri>, [">= 1.3.3"])
|
83
|
+
s.add_dependency(%q<uuidtools>, [">= 2.0.0"])
|
84
|
+
end
|
85
|
+
else
|
86
|
+
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
87
|
+
s.add_dependency(%q<typhoeus>, [">= 0.1.9"])
|
88
|
+
s.add_dependency(%q<ht2p>, [">= 0.0.5"])
|
89
|
+
s.add_dependency(%q<nokogiri>, [">= 1.3.3"])
|
90
|
+
s.add_dependency(%q<uuidtools>, [">= 2.0.0"])
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'spec/spec_config'
|
2
|
+
|
3
|
+
class S3Object
|
4
|
+
include RAWS::S3::Model
|
5
|
+
self.bucket_name = RAWS_S3_BUCKETS[0][0]
|
6
|
+
end
|
7
|
+
|
8
|
+
describe RAWS::S3::Model do
|
9
|
+
describe 'class' do
|
10
|
+
it 'methods' do
|
11
|
+
%w'
|
12
|
+
create_bucket
|
13
|
+
delete_bucket
|
14
|
+
filter
|
15
|
+
all
|
16
|
+
find
|
17
|
+
'.each do |val|
|
18
|
+
S3Object.should respond_to val.to_sym
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe 'object' do
|
24
|
+
before do
|
25
|
+
@model = S3Object.all.first
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'methods' do
|
29
|
+
%w'
|
30
|
+
header
|
31
|
+
metadata
|
32
|
+
send
|
33
|
+
receive
|
34
|
+
'.each do |val|
|
35
|
+
@model.should respond_to val.to_sym
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
data/spec/raws/s3_spec.rb
CHANGED
@@ -8,41 +8,36 @@ RAWS_S3_BUCKETS.each do |bucket_name, location, acl|
|
|
8
8
|
describe RAWS::S3 do
|
9
9
|
describe 'class' do
|
10
10
|
before(:all) do
|
11
|
-
response = RAWS::S3.create_bucket(bucket_name, location)
|
12
|
-
response.should be_kind_of(RAWS::HTTP::Response)
|
11
|
+
#response = RAWS::S3.create_bucket(bucket_name, location)
|
12
|
+
#response.should be_kind_of(RAWS::HTTP::Response)
|
13
13
|
|
14
|
-
|
15
|
-
bucket_name,
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
14
|
+
begin
|
15
|
+
RAWS::S3.put(bucket_name, 'aaa') do |request|
|
16
|
+
request.send 'AAA'
|
17
|
+
end
|
18
|
+
|
19
|
+
RAWS::S3.put(bucket_name, 'bbb') do |request|
|
20
|
+
request.header['content-length'] = 3
|
21
|
+
request.send do |io|
|
22
|
+
io.write 'BBB'
|
23
|
+
end
|
20
24
|
end
|
21
25
|
|
22
|
-
RAWS::S3.put(
|
23
|
-
|
24
|
-
'bbb',
|
25
|
-
'content-length' => 3
|
26
|
-
) do |io|
|
27
|
-
io.write 'BBB'
|
26
|
+
RAWS::S3.put(bucket_name, 'ccc') do |request|
|
27
|
+
request.send 'CCC'
|
28
28
|
end
|
29
|
-
|
30
|
-
|
31
|
-
bucket_name,
|
32
|
-
'ccc',
|
33
|
-
'content-length' => 3
|
34
|
-
) do |io|
|
35
|
-
io.write 'CCC'
|
29
|
+
rescue => e
|
30
|
+
d e
|
36
31
|
end
|
37
32
|
end
|
38
|
-
|
33
|
+
=begin
|
39
34
|
after(:all) do
|
40
35
|
response = RAWS::S3.delete_bucket(bucket_name, :force)
|
41
36
|
response.should be_kind_of(RAWS::HTTP::Response)
|
42
37
|
|
43
38
|
sleep 30
|
44
39
|
end
|
45
|
-
|
40
|
+
=end
|
46
41
|
it "owner should return a owner information of the bucket" do
|
47
42
|
RAWS::S3.owner.should be_instance_of(Hash)
|
48
43
|
RAWS::S3.owner['DisplayName'].should be_instance_of(String)
|
@@ -79,15 +74,22 @@ RAWS_S3_BUCKETS.each do |bucket_name, location, acl|
|
|
79
74
|
end
|
80
75
|
|
81
76
|
it 'put, get and delete method should put, get and delete the object' do
|
82
|
-
|
83
|
-
|
77
|
+
RAWS::S3.put(bucket_name, 'a') do |request|
|
78
|
+
request.should be_kind_of(RAWS::HTTP::Request)
|
79
|
+
|
80
|
+
response = request.send('AAA')
|
81
|
+
|
82
|
+
response.should be_kind_of(RAWS::HTTP::Response)
|
84
83
|
end
|
85
|
-
response.should be_kind_of(RAWS::HTTP::Response)
|
86
84
|
|
87
|
-
|
88
|
-
|
85
|
+
RAWS::S3.get(bucket_name, 'a') do |request|
|
86
|
+
request.should be_kind_of(RAWS::HTTP::Request)
|
87
|
+
|
88
|
+
response = request.send
|
89
|
+
response.receive.should == 'AAA'
|
90
|
+
|
91
|
+
response.should be_kind_of(RAWS::HTTP::Response)
|
89
92
|
end
|
90
|
-
response.should be_kind_of(RAWS::HTTP::Response)
|
91
93
|
|
92
94
|
response = RAWS::S3.delete(bucket_name, 'a')
|
93
95
|
response.should be_kind_of(RAWS::HTTP::Response)
|
@@ -102,13 +104,13 @@ RAWS_S3_BUCKETS.each do |bucket_name, location, acl|
|
|
102
104
|
response.should be_kind_of(RAWS::HTTP::Response)
|
103
105
|
|
104
106
|
src = nil
|
105
|
-
RAWS::S3.get(bucket_name, 'aaa') do |
|
106
|
-
src =
|
107
|
+
RAWS::S3.get(bucket_name, 'aaa') do |request|
|
108
|
+
src = request.send.receive
|
107
109
|
end
|
108
110
|
|
109
111
|
dest = nil
|
110
|
-
RAWS::S3.get(bucket_name, 'AAA') do |
|
111
|
-
dest =
|
112
|
+
RAWS::S3.get(bucket_name, 'AAA') do |request|
|
113
|
+
dest = request.send.receive
|
112
114
|
end
|
113
115
|
|
114
116
|
dest.should == src
|
@@ -126,20 +128,25 @@ RAWS_S3_BUCKETS.each do |bucket_name, location, acl|
|
|
126
128
|
describe 'object' do
|
127
129
|
before(:all) do
|
128
130
|
@bucket = RAWS::S3[bucket_name]
|
129
|
-
|
130
|
-
|
131
|
-
@bucket.put('aaa'
|
132
|
-
@bucket.put('bbb'
|
133
|
-
|
131
|
+
#@bucket.create_bucket.should be_kind_of(RAWS::HTTP::Response)
|
132
|
+
|
133
|
+
@bucket.put('aaa') do |request| request.send 'AAA' end
|
134
|
+
@bucket.put('bbb') do |request|
|
135
|
+
request.header['content-length'] = 3
|
136
|
+
request.send do |io|
|
137
|
+
io.write 'AAA'
|
138
|
+
end
|
139
|
+
end
|
140
|
+
@bucket.put('ccc') do |request| request.send 'CCC' end
|
134
141
|
end
|
135
|
-
|
142
|
+
=begin
|
136
143
|
after(:all) do
|
137
144
|
response = @bucket.delete_bucket(:force)
|
138
145
|
response.should be_kind_of(RAWS::HTTP::Response)
|
139
146
|
|
140
147
|
sleep 30
|
141
148
|
end
|
142
|
-
|
149
|
+
=end
|
143
150
|
it "location should return location of the bucket" do
|
144
151
|
@bucket.location.should == location_label
|
145
152
|
end
|
@@ -152,13 +159,22 @@ RAWS_S3_BUCKETS.each do |bucket_name, location, acl|
|
|
152
159
|
end
|
153
160
|
|
154
161
|
it 'put, get and delete method should put, get and delete the object' do
|
155
|
-
@bucket.put('a'
|
156
|
-
|
157
|
-
end.should be_kind_of(RAWS::HTTP::Response)
|
162
|
+
@bucket.put('a') do |request|
|
163
|
+
request.should be_kind_of(RAWS::HTTP::Request)
|
158
164
|
|
159
|
-
|
160
|
-
|
161
|
-
|
165
|
+
response = request.send('AAA')
|
166
|
+
|
167
|
+
response.should be_kind_of(RAWS::HTTP::Response)
|
168
|
+
end
|
169
|
+
|
170
|
+
@bucket.get('a') do |request|
|
171
|
+
request.should be_kind_of(RAWS::HTTP::Request)
|
172
|
+
|
173
|
+
response = request.send
|
174
|
+
response.receive.should == 'AAA'
|
175
|
+
|
176
|
+
response.should be_kind_of(RAWS::HTTP::Response)
|
177
|
+
end
|
162
178
|
|
163
179
|
@bucket.delete('a').should be_kind_of(RAWS::HTTP::Response)
|
164
180
|
|
@@ -172,13 +188,13 @@ RAWS_S3_BUCKETS.each do |bucket_name, location, acl|
|
|
172
188
|
response.should be_kind_of(RAWS::HTTP::Response)
|
173
189
|
|
174
190
|
src = nil
|
175
|
-
@bucket.get('aaa') do |
|
176
|
-
src =
|
191
|
+
@bucket.get('aaa') do |request|
|
192
|
+
src = request.send.receive
|
177
193
|
end
|
178
194
|
|
179
195
|
dest = nil
|
180
|
-
@bucket.get('AAA') do |
|
181
|
-
dest =
|
196
|
+
@bucket.get('AAA') do |request|
|
197
|
+
dest = request.send.receive
|
182
198
|
end
|
183
199
|
|
184
200
|
dest.should == src
|
data/spec/raws/sdb_spec.rb
CHANGED
@@ -2,19 +2,22 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
2
2
|
|
3
3
|
describe RAWS::SDB do
|
4
4
|
before :all do
|
5
|
-
|
5
|
+
RAWS_SDB_DOMAINS.each do |name|
|
6
|
+
RAWS::SDB.create_domain(name)
|
7
|
+
end
|
6
8
|
puts '[sleep 60 secs]'
|
7
9
|
sleep 60
|
8
|
-
|
10
|
+
@domain_name = RAWS_SDB_DOMAINS.first
|
11
|
+
RAWS::SDB[@domain_name].put(
|
9
12
|
'100', 'a' => 10
|
10
13
|
)
|
11
|
-
RAWS::SDB[
|
14
|
+
RAWS::SDB[@domain_name].put(
|
12
15
|
'200', 'a' => [10, 20], 'b' => 20
|
13
16
|
)
|
14
|
-
RAWS::SDB[
|
17
|
+
RAWS::SDB[@domain_name].put(
|
15
18
|
'300', 'a' => [10, 20, 30], 'b' => 20, 'c' => 30
|
16
19
|
)
|
17
|
-
RAWS::SDB[
|
20
|
+
RAWS::SDB[@domain_name].batch_put(
|
18
21
|
"400" => {"a"=>["10", "20", "30", "40"]},
|
19
22
|
"500" => {"a"=>["10", "20", "30", "40", "50"]},
|
20
23
|
"600" => {"a"=>["10", "20", "30", "40", "50", "60"]}
|
@@ -22,7 +25,9 @@ describe RAWS::SDB do
|
|
22
25
|
end
|
23
26
|
|
24
27
|
after :all do
|
25
|
-
|
28
|
+
RAWS_SDB_DOMAINS.each do |name|
|
29
|
+
RAWS::SDB.delete_domain(name)
|
30
|
+
end
|
26
31
|
puts '[sleep 60 secs]'
|
27
32
|
sleep 60
|
28
33
|
end
|
@@ -34,6 +39,7 @@ describe RAWS::SDB do
|
|
34
39
|
delete_domain
|
35
40
|
metadata
|
36
41
|
list
|
42
|
+
domains
|
37
43
|
each
|
38
44
|
[]
|
39
45
|
select
|
@@ -54,7 +60,7 @@ describe RAWS::SDB do
|
|
54
60
|
end
|
55
61
|
|
56
62
|
it 'metadata' do
|
57
|
-
data = RAWS::SDB.metadata(
|
63
|
+
data = RAWS::SDB.metadata(@domain_name)
|
58
64
|
data.should have_key('Timestamp')
|
59
65
|
data.should have_key('ItemCount')
|
60
66
|
data.should have_key('AttributeValueCount')
|
@@ -71,6 +77,18 @@ describe RAWS::SDB do
|
|
71
77
|
data = RAWS::SDB.list(nil, 1)
|
72
78
|
data['DomainName'].should be_kind_of(Array)
|
73
79
|
data['DomainName'].size.should == 1
|
80
|
+
data['DomainName'].first.should be_kind_of(String)
|
81
|
+
data.should have_key('NextToken')
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'domains' do
|
85
|
+
domains = RAWS::SDB.domains
|
86
|
+
domains.should have_key('Domains')
|
87
|
+
|
88
|
+
data = RAWS::SDB.domains(nil, 1)
|
89
|
+
data['Domains'].should be_kind_of(Array)
|
90
|
+
data['Domains'].size.should == 1
|
91
|
+
data['Domains'].first.should be_kind_of(RAWS::SDB)
|
74
92
|
data.should have_key('NextToken')
|
75
93
|
end
|
76
94
|
|
@@ -81,62 +99,62 @@ describe RAWS::SDB do
|
|
81
99
|
end
|
82
100
|
|
83
101
|
it '[]' do
|
84
|
-
RAWS::SDB[
|
102
|
+
RAWS::SDB[@domain_name].should be_kind_of(RAWS::SDB)
|
85
103
|
end
|
86
104
|
|
87
105
|
it 'select' do
|
88
|
-
RAWS::SDB[
|
106
|
+
RAWS::SDB[@domain_name].select do |val|
|
89
107
|
val.first.should be_kind_of(String)
|
90
108
|
val.last.should be_kind_of(Hash)
|
91
109
|
end
|
92
110
|
|
93
|
-
RAWS::SDB[
|
111
|
+
RAWS::SDB[@domain_name].select.where('b = ?', 20) do |val|
|
94
112
|
val.first.should be_kind_of(String)
|
95
113
|
val.last.should be_kind_of(Hash)
|
96
114
|
end
|
97
115
|
end
|
98
116
|
|
99
117
|
it 'all' do
|
100
|
-
RAWS::SDB[
|
118
|
+
RAWS::SDB[@domain_name].all do |val|
|
101
119
|
val.first.should be_kind_of(String)
|
102
120
|
val.last.should be_kind_of(Hash)
|
103
121
|
end
|
104
122
|
|
105
|
-
RAWS::SDB[
|
123
|
+
RAWS::SDB[@domain_name].all.filter('b = ?', 20) do |val|
|
106
124
|
val.first.should be_kind_of(String)
|
107
125
|
val.last.should be_kind_of(Hash)
|
108
126
|
end
|
109
127
|
end
|
110
128
|
|
111
129
|
it 'get' do
|
112
|
-
RAWS::SDB[
|
130
|
+
RAWS::SDB[@domain_name].get('000').should be_nil
|
113
131
|
|
114
|
-
data = RAWS::SDB[
|
132
|
+
data = RAWS::SDB[@domain_name].get('100')
|
115
133
|
data.should == {'a' => '10'}
|
116
134
|
|
117
|
-
data = RAWS::SDB[
|
135
|
+
data = RAWS::SDB[@domain_name].get('200')
|
118
136
|
data.should == {'a' => ['10', '20'], 'b' => '20'}
|
119
137
|
|
120
|
-
data = RAWS::SDB[
|
138
|
+
data = RAWS::SDB[@domain_name].get('300')
|
121
139
|
data.should == {'a' => ['10', '20', '30'], 'b' => '20', 'c' => '30'}
|
122
140
|
end
|
123
141
|
|
124
142
|
it 'put, get & delete' do
|
125
|
-
RAWS::SDB[
|
126
|
-
RAWS::SDB[
|
143
|
+
RAWS::SDB[@domain_name].put('10', 'a' => [1])
|
144
|
+
RAWS::SDB[@domain_name].put('10', 'a' => 2)
|
127
145
|
|
128
146
|
5.times do
|
129
|
-
data = RAWS::SDB[
|
147
|
+
data = RAWS::SDB[@domain_name].get('10')
|
130
148
|
if data == {'a' => ['1', '2']}
|
131
149
|
data.should == {'a' => ['1', '2']}
|
132
150
|
break;
|
133
151
|
end
|
134
152
|
end
|
135
153
|
|
136
|
-
RAWS::SDB[
|
154
|
+
RAWS::SDB[@domain_name].delete('10')
|
137
155
|
|
138
156
|
5.times do
|
139
|
-
data = RAWS::SDB[
|
157
|
+
data = RAWS::SDB[@domain_name].get('10')
|
140
158
|
unless data
|
141
159
|
data.should be_nil
|
142
160
|
end
|
@@ -144,41 +162,41 @@ describe RAWS::SDB do
|
|
144
162
|
end
|
145
163
|
|
146
164
|
it 'batch_put & delete' do
|
147
|
-
RAWS::SDB[
|
165
|
+
RAWS::SDB[@domain_name].batch_put(
|
148
166
|
"1" => {"a"=>["10"]},
|
149
167
|
"2" => {"a"=>["20"]},
|
150
168
|
"3" => {"a"=>["30"]}
|
151
169
|
)
|
152
170
|
|
153
171
|
5.times do
|
154
|
-
data = RAWS::SDB[
|
172
|
+
data = RAWS::SDB[@domain_name].get('1')
|
155
173
|
if data
|
156
174
|
data.should == {'a' => '10'}
|
157
|
-
RAWS::SDB[
|
175
|
+
RAWS::SDB[@domain_name].delete('1')
|
158
176
|
break
|
159
177
|
end
|
160
178
|
end
|
161
179
|
|
162
180
|
5.times do
|
163
|
-
data = RAWS::SDB[
|
181
|
+
data = RAWS::SDB[@domain_name].get('2')
|
164
182
|
if data
|
165
183
|
data.should == {'a' => '20'}
|
166
|
-
RAWS::SDB[
|
184
|
+
RAWS::SDB[@domain_name].delete('2')
|
167
185
|
break
|
168
186
|
end
|
169
187
|
end
|
170
188
|
|
171
189
|
5.times do
|
172
|
-
data = RAWS::SDB[
|
190
|
+
data = RAWS::SDB[@domain_name].get('3')
|
173
191
|
if data
|
174
192
|
data.should == {'a' => '30'}
|
175
|
-
RAWS::SDB[
|
193
|
+
RAWS::SDB[@domain_name].delete('3')
|
176
194
|
break
|
177
195
|
end
|
178
196
|
end
|
179
197
|
|
180
198
|
5.times do
|
181
|
-
data = RAWS::SDB[
|
199
|
+
data = RAWS::SDB[@domain_name].get('1')
|
182
200
|
unless data
|
183
201
|
data.should be_nil
|
184
202
|
break
|
@@ -186,7 +204,7 @@ describe RAWS::SDB do
|
|
186
204
|
end
|
187
205
|
|
188
206
|
5.times do
|
189
|
-
data = RAWS::SDB[
|
207
|
+
data = RAWS::SDB[@domain_name].get('2')
|
190
208
|
unless data
|
191
209
|
data.should be_nil
|
192
210
|
break
|
@@ -194,7 +212,7 @@ describe RAWS::SDB do
|
|
194
212
|
end
|
195
213
|
|
196
214
|
5.times do
|
197
|
-
data = RAWS::SDB[
|
215
|
+
data = RAWS::SDB[@domain_name].get('3')
|
198
216
|
unless data
|
199
217
|
data.should be_nil
|
200
218
|
break
|
@@ -205,7 +223,8 @@ describe RAWS::SDB do
|
|
205
223
|
|
206
224
|
describe 'object' do
|
207
225
|
before do
|
208
|
-
@
|
226
|
+
@domain_name = RAWS_SDB_DOMAINS.first
|
227
|
+
@sdb = RAWS::SDB[@domain_name]
|
209
228
|
end
|
210
229
|
|
211
230
|
it 'method' do
|
data/spec/raws/sqs_spec.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'spec/spec_config'
|
2
2
|
|
3
3
|
describe RAWS::SQS do
|
4
|
-
=begin
|
5
4
|
before :all do
|
6
5
|
begin
|
7
6
|
RAWS::SQS.create_queue(RAWS_SQS_QUEUE)
|
@@ -29,6 +28,7 @@ describe RAWS::SQS do
|
|
29
28
|
create_queue
|
30
29
|
delete_queue
|
31
30
|
list
|
31
|
+
queues
|
32
32
|
each
|
33
33
|
[]
|
34
34
|
get_attrs
|
@@ -41,7 +41,11 @@ describe RAWS::SQS do
|
|
41
41
|
end
|
42
42
|
|
43
43
|
it 'list' do
|
44
|
-
RAWS::SQS.list
|
44
|
+
RAWS::SQS.list
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'queues' do
|
48
|
+
RAWS::SQS.queues.each do |queue|
|
45
49
|
queue.should be_kind_of RAWS::SQS
|
46
50
|
end
|
47
51
|
end
|
@@ -56,7 +60,7 @@ describe RAWS::SQS do
|
|
56
60
|
RAWS::SQS[RAWS_SQS_QUEUE].should be_kind_of RAWS::SQS
|
57
61
|
end
|
58
62
|
end
|
59
|
-
|
63
|
+
|
60
64
|
describe 'object' do
|
61
65
|
before do
|
62
66
|
@queue = RAWS::SQS[RAWS_SQS_QUEUE]
|
@@ -128,7 +132,6 @@ describe RAWS::SQS do
|
|
128
132
|
end
|
129
133
|
|
130
134
|
it 'change_message_visibility' do
|
131
|
-
=begin
|
132
135
|
5.times do |i|
|
133
136
|
p i
|
134
137
|
@queue.receive.each do |msg|
|
@@ -136,7 +139,6 @@ describe RAWS::SQS do
|
|
136
139
|
end
|
137
140
|
sleep 5
|
138
141
|
end
|
139
|
-
=end
|
140
142
|
@queue.send('change message visibility')
|
141
143
|
|
142
144
|
msg_id, time = nil, nil
|
data/spec/spec.opts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'lib/raws'
|
3
|
+
|
4
|
+
require 'yaml'
|
5
|
+
def d(val)
|
6
|
+
puts val.to_yaml
|
7
|
+
end
|
8
|
+
|
9
|
+
RAWS.aws_access_key_id = AWS_ACCESS_KEY_ID
|
10
|
+
RAWS.aws_secret_access_key = AWS_SECRET_ACCESS_KEY
|
11
|
+
|
12
|
+
RAWS_SDB_DOMAIN = AWS_SDB_DOMAIN
|
13
|
+
RAWS_SQS_QUEUE = AWS_SQS_QUEUE
|
14
|
+
RAWS_S3_BUCKETS = %w'AWS_S3_BUCKET AWS.S3.BUCKET'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: raws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jun Kikuchi
|
@@ -9,9 +9,19 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-11-
|
12
|
+
date: 2009-11-23 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rspec
|
17
|
+
type: :development
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.2.9
|
24
|
+
version:
|
15
25
|
- !ruby/object:Gem::Dependency
|
16
26
|
name: typhoeus
|
17
27
|
type: :runtime
|
@@ -59,10 +69,12 @@ executables: []
|
|
59
69
|
extensions: []
|
60
70
|
|
61
71
|
extra_rdoc_files:
|
72
|
+
- LICENSE
|
62
73
|
- README.rdoc
|
63
74
|
files:
|
75
|
+
- .gitignore
|
64
76
|
- CHANGELOG
|
65
|
-
-
|
77
|
+
- LICENSE
|
66
78
|
- README.rdoc
|
67
79
|
- Rakefile
|
68
80
|
- VERSION
|
@@ -72,8 +84,8 @@ files:
|
|
72
84
|
- lib/raws/http/typhoeus.rb
|
73
85
|
- lib/raws/s3.rb
|
74
86
|
- lib/raws/s3/adapter.rb
|
87
|
+
- lib/raws/s3/metadata.rb
|
75
88
|
- lib/raws/s3/model.rb
|
76
|
-
- lib/raws/s3/s3object.rb
|
77
89
|
- lib/raws/sdb.rb
|
78
90
|
- lib/raws/sdb/adapter.rb
|
79
91
|
- lib/raws/sdb/model.rb
|
@@ -82,6 +94,16 @@ files:
|
|
82
94
|
- lib/raws/sqs/adapter.rb
|
83
95
|
- lib/raws/xml.rb
|
84
96
|
- lib/raws/xml/nokogiri.rb
|
97
|
+
- raws.gemspec
|
98
|
+
- spec/raws/s3/model_spec.rb
|
99
|
+
- spec/raws/s3_spec.rb
|
100
|
+
- spec/raws/sdb/model_spec.rb
|
101
|
+
- spec/raws/sdb_spec.rb
|
102
|
+
- spec/raws/sqs_spec.rb
|
103
|
+
- spec/raws_spec.rb
|
104
|
+
- spec/spec.opts
|
105
|
+
- spec/spec_config.rb.example
|
106
|
+
- spec/spec_helper.rb
|
85
107
|
has_rdoc: true
|
86
108
|
homepage: http://github.com/JunKikuchi/raws
|
87
109
|
licenses: []
|
@@ -111,6 +133,7 @@ signing_key:
|
|
111
133
|
specification_version: 3
|
112
134
|
summary: raws
|
113
135
|
test_files:
|
136
|
+
- spec/raws/s3/model_spec.rb
|
114
137
|
- spec/raws/s3_spec.rb
|
115
138
|
- spec/raws/sdb/model_spec.rb
|
116
139
|
- spec/raws/sdb_spec.rb
|
data/COPYING
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
Copyright (c) 2009 Jun Kikuchi
|
2
|
-
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
-
of this software and associated documentation files (the "Software"), to
|
5
|
-
deal in the Software without restriction, including without limitation the
|
6
|
-
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
7
|
-
sell copies of the Software, and to permit persons to whom the Software is
|
8
|
-
furnished to do so, subject to the following conditions:
|
9
|
-
|
10
|
-
The above copyright notice and this permission notice shall be included in
|
11
|
-
all copies or substantial portions of the Software.
|
12
|
-
|
13
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
16
|
-
THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
17
|
-
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
18
|
-
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/lib/raws/s3/s3object.rb
DELETED