SQS 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +11 -0
- data/lib/sqs/grant.rb +1 -0
- data/lib/sqs/message.rb +1 -1
- data/lib/sqs/queue.rb +12 -1
- data/test/unit/sqs_queue_test.rb +50 -0
- data/test/unit/test_setup.rb +3 -1
- metadata +4 -2
data/CHANGELOG
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
0.1.1
|
2
|
+
2007-02-19
|
3
|
+
* Added Queue#peek_messages() and Queue#peek_message(). Thanks to Robert J. Berger for pointing out that receiving a message with VisibilityTimeout=0 is the functional equivalent of a peek.
|
4
|
+
* Changed shebang in message.rb and queue.rb. Thanks to Nobody at http://rubyforge.org/tracker/index.php?func=detail&aid=7124&group_id=2645&atid=10183
|
5
|
+
* Added shebangs where they were missing.
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
0.1.0
|
10
|
+
2006-11-22
|
11
|
+
Initial release
|
data/lib/sqs/grant.rb
CHANGED
data/lib/sqs/message.rb
CHANGED
data/lib/sqs/queue.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#!/usr/bin/
|
1
|
+
#!/usr/local/bin/ruby
|
2
2
|
|
3
3
|
require 'uri'
|
4
4
|
require 'rexml/document'
|
@@ -71,6 +71,17 @@ class SQS::Queue
|
|
71
71
|
raise e
|
72
72
|
end
|
73
73
|
|
74
|
+
def peek_message
|
75
|
+
# returns the first element of what peek_messages returns
|
76
|
+
m = self.peek_messages( :count => 1 ).first
|
77
|
+
yield( m ) if block_given?
|
78
|
+
m
|
79
|
+
end
|
80
|
+
def peek_messages( options={} )
|
81
|
+
# returns an array of SQS::Message instances (could be empty)
|
82
|
+
receive_messages( options.merge( :message_ttl => 0 ) )
|
83
|
+
end
|
84
|
+
|
74
85
|
def receive_message
|
75
86
|
# returns the first element of what receive_messages returns
|
76
87
|
m = self.receive_messages( :count => 1 ).first
|
data/test/unit/sqs_queue_test.rb
CHANGED
@@ -65,6 +65,56 @@ class SQS_QueueTest < Test::Unit::TestCase
|
|
65
65
|
assert_equal @q, m.queue
|
66
66
|
end
|
67
67
|
|
68
|
+
def test_peek_message
|
69
|
+
@q.send_message( 'I am receiving a message from beyond' )
|
70
|
+
sleep 2
|
71
|
+
m = @q.peek_message
|
72
|
+
|
73
|
+
assert m.is_a?( SQS::Message )
|
74
|
+
assert_equal @q, m.queue
|
75
|
+
assert_equal 'I am receiving a message from beyond', m.body
|
76
|
+
|
77
|
+
sleep 2
|
78
|
+
m2 = @q.receive_message
|
79
|
+
assert m.is_a?( SQS::Message )
|
80
|
+
assert_equal m.id, m2.id
|
81
|
+
assert_equal m.body, m2.body
|
82
|
+
end
|
83
|
+
def test_peek_message_on_empty_queue
|
84
|
+
m = @q.peek_message
|
85
|
+
|
86
|
+
assert m.nil?
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_peek_messages
|
90
|
+
(1..10).to_a.each do |i|
|
91
|
+
@q.send_message( "I am receiving message #{i}" )
|
92
|
+
end
|
93
|
+
|
94
|
+
sleep 10
|
95
|
+
|
96
|
+
messages = @q.peek_messages :count => 2
|
97
|
+
assert messages.size == 1 || messages.size == 2, "Weird array size: #{messages.size}"
|
98
|
+
|
99
|
+
assert messages.is_a?( Array )
|
100
|
+
messages.each do |m|
|
101
|
+
assert m.is_a?( SQS::Message )
|
102
|
+
assert_equal @q, m.queue
|
103
|
+
assert_match /^I am receiving message \d+$/, m.body
|
104
|
+
end
|
105
|
+
|
106
|
+
messages = @q.peek_messages :count => 12
|
107
|
+
assert messages.is_a?( Array )
|
108
|
+
assert messages.size > 0 && messages.size < 12, "Weird array size: #{messages.size}"
|
109
|
+
|
110
|
+
sleep 2
|
111
|
+
|
112
|
+
messages = @q.receive_messages :count => 12
|
113
|
+
assert messages.is_a?( Array )
|
114
|
+
assert messages.size > 0 && messages.size < 12, "Weird array size: #{messages.size}"
|
115
|
+
end
|
116
|
+
|
117
|
+
|
68
118
|
def test_receive_message
|
69
119
|
@q.send_message( 'I am receiving a message from beyond' )
|
70
120
|
sleep 2
|
data/test/unit/test_setup.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
#!/usr/local/bin/ruby
|
2
|
+
|
1
3
|
dir = File.expand_path( File::dirname( __FILE__ ) )
|
2
4
|
require "#{dir}/../../lib/sqs.rb"
|
3
5
|
|
@@ -37,7 +39,7 @@ end
|
|
37
39
|
puts "\nREMINDERS:
|
38
40
|
* You are #{SQStest.skip_live_tests? ? 'skipping' : 'performing'} live tests.
|
39
41
|
* You are #{SQStest.print_counter? ? 'printing' : 'not printing'} the counter after each test.
|
40
|
-
* #{SQStest.my_aws_account[:email]} is the main email
|
42
|
+
* #{SQStest.my_aws_account[:email]} is the main email.
|
41
43
|
* #{SQStest.other_aws_account[:email]} is the secondary email.
|
42
44
|
|
43
45
|
You can change all these settings in #{File.expand_path( __FILE__ )}\n\n"
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
|
|
3
3
|
specification_version: 1
|
4
4
|
name: SQS
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.1.
|
7
|
-
date:
|
6
|
+
version: 0.1.1
|
7
|
+
date: 2007-02-19 00:00:00 -08:00
|
8
8
|
summary: A Ruby interface to Amazon's Simple Queue Service
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -41,6 +41,7 @@ files:
|
|
41
41
|
- test/unit/test_setup.rb
|
42
42
|
- README
|
43
43
|
- MIT-LICENSE
|
44
|
+
- CHANGELOG
|
44
45
|
test_files:
|
45
46
|
- test/all_tests.rb
|
46
47
|
- test/unit/sqs_grant_test.rb
|
@@ -53,6 +54,7 @@ rdoc_options: []
|
|
53
54
|
extra_rdoc_files:
|
54
55
|
- README
|
55
56
|
- MIT-LICENSE
|
57
|
+
- CHANGELOG
|
56
58
|
executables: []
|
57
59
|
|
58
60
|
extensions: []
|