SQS 0.1.0 → 0.1.1
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/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: []
|