raws 0.0.7

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.
@@ -0,0 +1,364 @@
1
+ require 'spec/spec_config'
2
+
3
+ describe RAWS::SDB do
4
+ before :all do
5
+ RAWS::SDB.create_domain(RAWS_SDB_DOMAIN)
6
+ puts '[sleep 60 secs]'
7
+ sleep 60
8
+ RAWS::SDB[RAWS_SDB_DOMAIN].put(
9
+ '100', 'a' => 10
10
+ )
11
+ RAWS::SDB[RAWS_SDB_DOMAIN].put(
12
+ '200', 'a' => [10, 20], 'b' => 20
13
+ )
14
+ RAWS::SDB[RAWS_SDB_DOMAIN].put(
15
+ '300', 'a' => [10, 20, 30], 'b' => 20, 'c' => 30
16
+ )
17
+ RAWS::SDB[RAWS_SDB_DOMAIN].batch_put(
18
+ "400" => {"a"=>["10", "20", "30", "40"]},
19
+ "500" => {"a"=>["10", "20", "30", "40", "50"]},
20
+ "600" => {"a"=>["10", "20", "30", "40", "50", "60"]}
21
+ )
22
+ end
23
+
24
+ after :all do
25
+ RAWS::SDB.delete_domain(RAWS_SDB_DOMAIN)
26
+ puts '[sleep 60 secs]'
27
+ sleep 60
28
+ end
29
+
30
+ describe 'class' do
31
+ it 'methods' do
32
+ %w'
33
+ create_domain
34
+ delete_domain
35
+ metadata
36
+ list
37
+ each
38
+ []
39
+ select
40
+ all
41
+ get
42
+ put
43
+ batch_put
44
+ delete
45
+ '.each do |val|
46
+ RAWS::SDB.should respond_to val.to_sym
47
+ end
48
+ end
49
+
50
+ it 'create_domain' do
51
+ end
52
+
53
+ it 'delete_domain' do
54
+ end
55
+
56
+ it 'metadata' do
57
+ data = RAWS::SDB.metadata(RAWS_SDB_DOMAIN)
58
+ data.should have_key('Timestamp')
59
+ data.should have_key('ItemCount')
60
+ data.should have_key('AttributeValueCount')
61
+ data.should have_key('AttributeNameCount')
62
+ data.should have_key('ItemNamesSizeBytes')
63
+ data.should have_key('AttributeValuesSizeBytes')
64
+ data.should have_key('AttributeNamesSizeBytes')
65
+ end
66
+
67
+ it 'list' do
68
+ data = RAWS::SDB.list
69
+ data.should have_key('DomainName')
70
+
71
+ data = RAWS::SDB.list(nil, 1)
72
+ data['DomainName'].should be_kind_of(Array)
73
+ data['DomainName'].size.should == 1
74
+ data.should have_key('NextToken')
75
+ end
76
+
77
+ it 'each' do
78
+ RAWS::SDB.each do |domain|
79
+ domain.should be_kind_of(RAWS::SDB)
80
+ end
81
+ end
82
+
83
+ it '[]' do
84
+ RAWS::SDB[RAWS_SDB_DOMAIN].should be_kind_of(RAWS::SDB)
85
+ end
86
+
87
+ it 'select' do
88
+ RAWS::SDB[RAWS_SDB_DOMAIN].select do |val|
89
+ val.first.should be_kind_of(String)
90
+ val.last.should be_kind_of(Hash)
91
+ end
92
+
93
+ RAWS::SDB[RAWS_SDB_DOMAIN].select.where('b = ?', 20) do |val|
94
+ val.first.should be_kind_of(String)
95
+ val.last.should be_kind_of(Hash)
96
+ end
97
+ end
98
+
99
+ it 'all' do
100
+ RAWS::SDB[RAWS_SDB_DOMAIN].all do |val|
101
+ val.first.should be_kind_of(String)
102
+ val.last.should be_kind_of(Hash)
103
+ end
104
+
105
+ RAWS::SDB[RAWS_SDB_DOMAIN].all.filter('b = ?', 20) do |val|
106
+ val.first.should be_kind_of(String)
107
+ val.last.should be_kind_of(Hash)
108
+ end
109
+ end
110
+
111
+ it 'get' do
112
+ RAWS::SDB[RAWS_SDB_DOMAIN].get('000').should be_nil
113
+
114
+ data = RAWS::SDB[RAWS_SDB_DOMAIN].get('100')
115
+ data.should == {'a' => '10'}
116
+
117
+ data = RAWS::SDB[RAWS_SDB_DOMAIN].get('200')
118
+ data.should == {'a' => ['10', '20'], 'b' => '20'}
119
+
120
+ data = RAWS::SDB[RAWS_SDB_DOMAIN].get('300')
121
+ data.should == {'a' => ['10', '20', '30'], 'b' => '20', 'c' => '30'}
122
+ end
123
+
124
+ it 'put, get & delete' do
125
+ RAWS::SDB[RAWS_SDB_DOMAIN].put('10', 'a' => [1])
126
+ RAWS::SDB[RAWS_SDB_DOMAIN].put('10', 'a' => 2)
127
+
128
+ 5.times do
129
+ data = RAWS::SDB[RAWS_SDB_DOMAIN].get('10')
130
+ if data == {'a' => ['1', '2']}
131
+ data.should == {'a' => ['1', '2']}
132
+ break;
133
+ end
134
+ end
135
+
136
+ RAWS::SDB[RAWS_SDB_DOMAIN].delete('10')
137
+
138
+ 5.times do
139
+ data = RAWS::SDB[RAWS_SDB_DOMAIN].get('10')
140
+ unless data
141
+ data.should be_nil
142
+ end
143
+ end
144
+ end
145
+
146
+ it 'batch_put & delete' do
147
+ RAWS::SDB[RAWS_SDB_DOMAIN].batch_put(
148
+ "1" => {"a"=>["10"]},
149
+ "2" => {"a"=>["20"]},
150
+ "3" => {"a"=>["30"]}
151
+ )
152
+
153
+ 5.times do
154
+ data = RAWS::SDB[RAWS_SDB_DOMAIN].get('1')
155
+ if data
156
+ data.should == {'a' => '10'}
157
+ RAWS::SDB[RAWS_SDB_DOMAIN].delete('1')
158
+ break
159
+ end
160
+ end
161
+
162
+ 5.times do
163
+ data = RAWS::SDB[RAWS_SDB_DOMAIN].get('2')
164
+ if data
165
+ data.should == {'a' => '20'}
166
+ RAWS::SDB[RAWS_SDB_DOMAIN].delete('2')
167
+ break
168
+ end
169
+ end
170
+
171
+ 5.times do
172
+ data = RAWS::SDB[RAWS_SDB_DOMAIN].get('3')
173
+ if data
174
+ data.should == {'a' => '30'}
175
+ RAWS::SDB[RAWS_SDB_DOMAIN].delete('3')
176
+ break
177
+ end
178
+ end
179
+
180
+ 5.times do
181
+ data = RAWS::SDB[RAWS_SDB_DOMAIN].get('1')
182
+ unless data
183
+ data.should be_nil
184
+ break
185
+ end
186
+ end
187
+
188
+ 5.times do
189
+ data = RAWS::SDB[RAWS_SDB_DOMAIN].get('2')
190
+ unless data
191
+ data.should be_nil
192
+ break
193
+ end
194
+ end
195
+
196
+ 5.times do
197
+ data = RAWS::SDB[RAWS_SDB_DOMAIN].get('3')
198
+ unless data
199
+ data.should be_nil
200
+ break
201
+ end
202
+ end
203
+ end
204
+ end
205
+
206
+ describe 'object' do
207
+ before do
208
+ @sdb = RAWS::SDB[RAWS_SDB_DOMAIN]
209
+ end
210
+
211
+ it 'method' do
212
+ %w'
213
+ create_domain
214
+ delete_domain
215
+ metadata
216
+ select
217
+ all
218
+ get
219
+ put
220
+ batch_put
221
+ delete
222
+ '.each do |val|
223
+ @sdb.should respond_to val.to_sym
224
+ end
225
+ end
226
+
227
+ it 'create_domain' do
228
+ #@sdb.create_domain
229
+ end
230
+
231
+ it 'delete_domain' do
232
+ #@sdb.delete_domain
233
+ end
234
+
235
+ it 'metadata' do
236
+ data = @sdb.metadata
237
+ data.should have_key('Timestamp')
238
+ data.should have_key('ItemCount')
239
+ data.should have_key('AttributeValueCount')
240
+ data.should have_key('AttributeNameCount')
241
+ data.should have_key('ItemNamesSizeBytes')
242
+ data.should have_key('AttributeValuesSizeBytes')
243
+ data.should have_key('AttributeNamesSizeBytes')
244
+ end
245
+
246
+ it 'select' do
247
+ @sdb.select do |val|
248
+ val.first.should be_kind_of(String)
249
+ val.last.should be_kind_of(Hash)
250
+ end
251
+
252
+ @sdb.select.where('b = ?', 20) do |val|
253
+ val.first.should be_kind_of(String)
254
+ val.last.should be_kind_of(Hash)
255
+ end
256
+ end
257
+
258
+ it 'all' do
259
+ @sdb.all do |val|
260
+ val.first.should be_kind_of(String)
261
+ val.last.should be_kind_of(Hash)
262
+ end
263
+
264
+ @sdb.all.filter('b = ?', 20) do |val|
265
+ val.first.should be_kind_of(String)
266
+ val.last.should be_kind_of(Hash)
267
+ end
268
+ end
269
+
270
+ it 'get' do
271
+ @sdb.get('000').should be_nil
272
+
273
+ data = @sdb.get('100')
274
+ data.should == {'a' => '10'}
275
+
276
+ data = @sdb.get('200')
277
+ data.should == {'a' => ['10', '20'], 'b' => '20'}
278
+
279
+ data = @sdb.get('300')
280
+ data.should == {'a' => ['10', '20', '30'], 'b' => '20', 'c' => '30'}
281
+ end
282
+
283
+ it 'put, get & delete' do
284
+ @sdb.put('10', 'a' => 1)
285
+
286
+ 5.times do
287
+ data = @sdb.get('10')
288
+ if data
289
+ data.should == {'a' => '1'}
290
+ break
291
+ end
292
+ end
293
+
294
+ @sdb.delete('10')
295
+
296
+ 5.times do
297
+ data = @sdb.get('10')
298
+ unless data
299
+ data.should be_nil
300
+ break
301
+ end
302
+ end
303
+ end
304
+
305
+ it 'batch_put' do
306
+ @sdb.batch_put(
307
+ "1" => {"a"=>["10"]},
308
+ "2" => {"a"=>["20"]},
309
+ "3" => {"a"=>["30"]}
310
+ )
311
+
312
+ 5.times do
313
+ data = @sdb.get('1')
314
+ if data
315
+ data.should == {'a' => '10'}
316
+ @sdb.delete('1')
317
+ break
318
+ end
319
+ end
320
+
321
+ 5.times do
322
+ data = @sdb.get('2')
323
+ if data
324
+ data.should == {'a' => '20'}
325
+ @sdb.delete('2')
326
+ break
327
+ end
328
+ end
329
+
330
+ 5.times do
331
+ data = @sdb.get('3')
332
+ if data
333
+ data.should == {'a' => '30'}
334
+ @sdb.delete('3')
335
+ break
336
+ end
337
+ end
338
+
339
+ 5.times do
340
+ data = @sdb.get('1')
341
+ unless data
342
+ data.should be_nil
343
+ break
344
+ end
345
+ end
346
+
347
+ 5.times do
348
+ data = @sdb.get('2')
349
+ unless data
350
+ data.should be_nil
351
+ break
352
+ end
353
+ end
354
+
355
+ 5.times do
356
+ data = @sdb.get('3')
357
+ unless data
358
+ data.should be_nil
359
+ break
360
+ end
361
+ end
362
+ end
363
+ end
364
+ end
@@ -0,0 +1,168 @@
1
+ require 'spec/spec_config'
2
+
3
+ describe RAWS::SQS do
4
+ before :all do
5
+ RAWS::SQS.create_queue(RAWS_SQS_QUEUE)
6
+ puts '[waiting 60 secs]'
7
+ sleep 60
8
+ end
9
+
10
+ after :all do
11
+ RAWS::SQS[RAWS_SQS_QUEUE].delete_queue
12
+ puts '[waiting 60 secs]'
13
+ sleep 60
14
+ end
15
+
16
+ describe 'class' do
17
+ it 'methods' do
18
+ %w'
19
+ queue_url
20
+ create_queue
21
+ delete_queue
22
+ list
23
+ each
24
+ []
25
+ get_attrs
26
+ set_attrs
27
+ send
28
+ receive
29
+ '.each do |val|
30
+ RAWS::SQS.should respond_to val.to_sym
31
+ end
32
+ end
33
+
34
+ it 'list' do
35
+ RAWS::SQS.list.each do |queue|
36
+ queue.should be_kind_of RAWS::SQS
37
+ end
38
+ end
39
+
40
+ it 'each' do
41
+ RAWS::SQS.each do |queue|
42
+ queue.should be_kind_of RAWS::SQS
43
+ end
44
+ end
45
+
46
+ it '[]' do
47
+ RAWS::SQS[RAWS_SQS_QUEUE].should be_kind_of RAWS::SQS
48
+ end
49
+ end
50
+
51
+ describe 'object' do
52
+ before do
53
+ @queue = RAWS::SQS[RAWS_SQS_QUEUE]
54
+ end
55
+
56
+ it 'methods' do
57
+ %w'
58
+ delete_queue
59
+ get_attrs
60
+ set_attrs
61
+ send
62
+ receive
63
+ delete_message
64
+ add_permission
65
+ remove_permission
66
+ '.each do |val|
67
+ @queue.should respond_to val.to_sym
68
+ end
69
+ end
70
+
71
+ it 'get_attrs' do
72
+ attrs = @queue.get_attrs
73
+ %w'
74
+ ApproximateNumberOfMessages
75
+ LastModifiedTimestamp
76
+ CreatedTimestamp
77
+ VisibilityTimeout
78
+ '.each do |val|
79
+ attrs.should have_key val
80
+ end
81
+
82
+ attrs = @queue.get_attrs 'VisibilityTimeout'
83
+ attrs.should have_key 'VisibilityTimeout'
84
+ end
85
+
86
+ it 'set_attrs' do
87
+ @queue.set_attrs 'VisibilityTimeout' => 60
88
+ 5.times do
89
+ attrs = @queue.get_attrs 'VisibilityTimeout'
90
+ if attrs['VisibilityTimeout'] == 60
91
+ attrs['VisibilityTimeout'].should == 60
92
+ break
93
+ end
94
+ end
95
+
96
+ @queue.set_attrs 'VisibilityTimeout' => 30
97
+ 5.times do
98
+ attrs = @queue.get_attrs 'VisibilityTimeout'
99
+ if attrs['VisibilityTimeout'] == 30
100
+ attrs['VisibilityTimeout'].should == 30
101
+ break
102
+ end
103
+ end
104
+ end
105
+
106
+ it 'send, receive & delete' do
107
+ 5.times do |i|
108
+ @queue.send(i)
109
+ end
110
+
111
+ i = 1
112
+ while i <= 5
113
+ @queue.receive.each do |msg|
114
+ msg.should be_kind_of RAWS::SQS::Message
115
+ msg.delete
116
+ i += 1
117
+ end
118
+ end
119
+ end
120
+
121
+ it 'change_message_visibility' do
122
+ =begin
123
+ 5.times do |i|
124
+ p i
125
+ @queue.receive.each do |msg|
126
+ msg.delete
127
+ end
128
+ sleep 5
129
+ end
130
+ =end
131
+ @queue.send('change message visibility')
132
+
133
+ msg_id, time = nil, nil
134
+ loop do
135
+ if msg = @queue.receive.first
136
+ #p Time.now
137
+ #p msg
138
+ unless time
139
+ msg_id = msg.data['MessageId']
140
+ time = Time.now.to_i
141
+ else
142
+ if msg_id == msg.data['MessageId']
143
+ (time + 10).should <= Time.now.to_i
144
+ msg.delete
145
+ break
146
+ end
147
+ end
148
+ msg.visibility = 10
149
+ end
150
+ #p 'sleep'
151
+ sleep 5
152
+ end
153
+ end
154
+
155
+ it 'add_permission'
156
+ it 'remove_permission'
157
+
158
+ =begin
159
+ it 'add_permission' do
160
+ @queue.add_permission('p1', RAWS.aws_access_key_id => ['SendMessage'])
161
+ end
162
+
163
+ it 'remove_permission' do
164
+ @queue.remove_permission('p1')
165
+ end
166
+ =end
167
+ end
168
+ end
data/spec/raws_spec.rb ADDED
@@ -0,0 +1,75 @@
1
+ require 'spec/spec_config'
2
+
3
+ describe RAWS do
4
+ describe 'class' do
5
+ it 'methods' do
6
+ %w'
7
+ aws_access_key_id
8
+ aws_secret_access_key
9
+ escape
10
+ sign
11
+ fetch
12
+ '.each do |val|
13
+ RAWS.should respond_to val.to_sym
14
+ end
15
+ end
16
+
17
+ it 'parse は XML を Array と Hash に変換する' do
18
+ xml =<<-END
19
+ <?xml version="1.0"?>
20
+ <GetQueueAttributesResponse xmlns="http://queue.amazonaws.com/doc/2009-02-01/"><GetQueueAttributesResult><Attribute><Name>VisibilityTimeout</Name><Value>60</Value></Attribute></GetQueueAttributesResult><ResponseMetadata><RequestId>6f950716-2579-4c55-92e8-ff0cdec28e6d</RequestId></ResponseMetadata></GetQueueAttributesResponse>
21
+ END
22
+ data = RAWS.parse(
23
+ Nokogiri::XML.parse(xml)
24
+ )['GetQueueAttributesResponse']['GetQueueAttributesResult']['Attribute']
25
+ data.should be_kind_of(Hash)
26
+
27
+ data = RAWS.parse(
28
+ Nokogiri::XML.parse(xml),
29
+ :multiple => ['Attribute']
30
+ )['GetQueueAttributesResponse']['GetQueueAttributesResult']['Attribute']
31
+ data.should be_kind_of(Array)
32
+
33
+ data = RAWS.parse(
34
+ Nokogiri::XML.parse(xml),
35
+ :unpack => ['Attribute']
36
+ )['GetQueueAttributesResponse']['GetQueueAttributesResult']['Attribute']
37
+ data.should be_kind_of(Hash)
38
+
39
+ data = RAWS.parse(
40
+ Nokogiri::XML.parse(xml),
41
+ :multiple => ['Attribute'],
42
+ :unpack => ['Attribute']
43
+ )['GetQueueAttributesResponse']['GetQueueAttributesResult']['Attribute']
44
+ data.should be_kind_of(Hash)
45
+
46
+ xml =<<-END
47
+ <?xml version="1.0"?>
48
+ <GetQueueAttributesResponse xmlns="http://queue.amazonaws.com/doc/2009-02-01/"><GetQueueAttributesResult><Attribute><Name>VisibilityTimeout</Name><Value>60</Value></Attribute><Attribute><Name>ApproximateNumberOfMessages</Name><Value>7</Value></Attribute><Attribute><Name>CreatedTimestamp</Name><Value>1248498270</Value></Attribute><Attribute><Name>LastModifiedTimestamp</Name><Value>1248501553</Value></Attribute></GetQueueAttributesResult><ResponseMetadata><RequestId>6f950716-2579-4c55-92e8-ff0cdec28e6d</RequestId></ResponseMetadata></GetQueueAttributesResponse>
49
+ END
50
+ data = RAWS.parse(
51
+ Nokogiri::XML.parse(xml)
52
+ )['GetQueueAttributesResponse']['GetQueueAttributesResult']['Attribute']
53
+ data.should be_kind_of(Array)
54
+
55
+ data = RAWS.parse(
56
+ Nokogiri::XML.parse(xml),
57
+ :multiple => ['Attribute']
58
+ )['GetQueueAttributesResponse']['GetQueueAttributesResult']['Attribute']
59
+ data.should be_kind_of(Array)
60
+
61
+ data = RAWS.parse(
62
+ Nokogiri::XML.parse(xml),
63
+ :unpack => ['Attribute']
64
+ )['GetQueueAttributesResponse']['GetQueueAttributesResult']['Attribute']
65
+ data.should be_kind_of(Hash)
66
+
67
+ data = RAWS.parse(
68
+ Nokogiri::XML.parse(xml),
69
+ :multiple => ['Attribute'],
70
+ :unpack => ['Attribute']
71
+ )['GetQueueAttributesResponse']['GetQueueAttributesResult']['Attribute']
72
+ data.should be_kind_of(Hash)
73
+ end
74
+ end
75
+ end
metadata ADDED
@@ -0,0 +1,101 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: raws
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.7
5
+ platform: ruby
6
+ authors:
7
+ - Jun Kikuchi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-10-03 00:00:00 +09:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: pauldix-typhoeus
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.1.2
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: nokogiri
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.3.3
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: uuidtools
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 2.0.0
44
+ version:
45
+ description: raws
46
+ email: kikuchi@bonnou.com
47
+ executables: []
48
+
49
+ extensions: []
50
+
51
+ extra_rdoc_files:
52
+ - README.rdoc
53
+ files:
54
+ - CHANGELOG
55
+ - COPYING
56
+ - README.rdoc
57
+ - Rakefile
58
+ - VERSION
59
+ - lib/raws.rb
60
+ - lib/raws/s3.rb
61
+ - lib/raws/s3/adapter.rb
62
+ - lib/raws/sdb.rb
63
+ - lib/raws/sdb/adapter.rb
64
+ - lib/raws/sdb/model.rb
65
+ - lib/raws/sdb/select.rb
66
+ - lib/raws/sqs.rb
67
+ - lib/raws/sqs/adapter.rb
68
+ has_rdoc: true
69
+ homepage: http://github.com/JunKikuchi/raws
70
+ licenses: []
71
+
72
+ post_install_message:
73
+ rdoc_options:
74
+ - --charset=UTF-8
75
+ require_paths:
76
+ - lib
77
+ required_ruby_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: "0"
82
+ version:
83
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: "0"
88
+ version:
89
+ requirements: []
90
+
91
+ rubyforge_project:
92
+ rubygems_version: 1.3.5
93
+ signing_key:
94
+ specification_version: 3
95
+ summary: raws
96
+ test_files:
97
+ - spec/raws/s3_spec.rb
98
+ - spec/raws/sdb/model_spec.rb
99
+ - spec/raws/sdb_spec.rb
100
+ - spec/raws/sqs_spec.rb
101
+ - spec/raws_spec.rb