iron_mq 2.1.3 → 3.0.0
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/Gemfile.lock +18 -19
- data/README.md +65 -9
- data/iron_mq.gemspec +3 -2
- data/lib/iron_mq/client.rb +1 -0
- data/lib/iron_mq/messages.rb +36 -29
- data/lib/iron_mq/queues.rb +67 -23
- data/lib/iron_mq/response.rb +27 -0
- data/lib/iron_mq/subscribers.rb +34 -0
- data/lib/iron_mq/version.rb +2 -1
- data/lib/iron_mq.rb +1 -0
- data/test/quick_run.rb +39 -33
- data/test/test_base.rb +9 -5
- data/test/test_beanstalkd.rb +3 -3
- data/test/test_iron_mq.rb +133 -60
- data/test/test_push_queues.rb +333 -0
- data/test/test_tmp.rb +17 -0
- metadata +27 -7
- data/test/tmp.rb +0 -45
data/Gemfile.lock
CHANGED
@@ -1,35 +1,33 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
iron_mq (2.1.
|
5
|
-
iron_core (>= 0.4.
|
4
|
+
iron_mq (2.1.3)
|
5
|
+
iron_core (>= 0.4.4)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
10
|
beanstalk-client (1.1.1)
|
11
|
-
concur (1.0.
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
rest (>= 2.0.2)
|
11
|
+
concur (1.0.2)
|
12
|
+
ethon (0.5.3)
|
13
|
+
ffi (~> 1.0.11)
|
14
|
+
mime-types (~> 1.18)
|
15
|
+
ffi (1.0.11)
|
16
|
+
iron_core (0.4.4)
|
17
|
+
rest (>= 2.1.1)
|
19
18
|
mime-types (1.19)
|
20
|
-
|
21
|
-
net-http-persistent (2.
|
22
|
-
rake (0.
|
23
|
-
rest (2.
|
19
|
+
minitest (4.2.0)
|
20
|
+
net-http-persistent (2.8)
|
21
|
+
rake (10.0.0)
|
22
|
+
rest (2.1.1)
|
24
23
|
net-http-persistent
|
25
24
|
rest-client (>= 0.3.0)
|
26
25
|
rest-client (1.6.7)
|
27
26
|
mime-types (>= 1.16)
|
28
|
-
test-unit (2.5.
|
29
|
-
typhoeus (0.
|
30
|
-
|
31
|
-
|
32
|
-
uber_config (0.0.6)
|
27
|
+
test-unit (2.5.2)
|
28
|
+
typhoeus (0.5.1)
|
29
|
+
ethon (= 0.5.3)
|
30
|
+
uber_config (1.0.5)
|
33
31
|
|
34
32
|
PLATFORMS
|
35
33
|
ruby
|
@@ -38,6 +36,7 @@ DEPENDENCIES
|
|
38
36
|
beanstalk-client
|
39
37
|
concur
|
40
38
|
iron_mq!
|
39
|
+
minitest
|
41
40
|
net-http-persistent
|
42
41
|
rake
|
43
42
|
test-unit
|
data/README.md
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
IronMQ Ruby Client
|
2
2
|
-------------
|
3
3
|
|
4
|
+
The [full API documentation is here](http://dev.iron.io/mq/reference/api/) and this client tries to stick to the API as
|
5
|
+
much as possible so if you see an option in the API docs, you can use it in the methods below.
|
6
|
+
|
7
|
+
http://dev.iron.io/mq/reference/api/
|
8
|
+
|
4
9
|
Getting Started
|
5
10
|
==============
|
6
11
|
|
@@ -26,29 +31,39 @@ You can have as many queues as you want, each with their own unique set of messa
|
|
26
31
|
|
27
32
|
Now you can use it:
|
28
33
|
|
29
|
-
|
34
|
+
### Post a message on the queue:
|
30
35
|
|
31
36
|
@queue.post("hello world!")
|
32
37
|
|
33
|
-
|
38
|
+
Post a message with options:
|
39
|
+
|
40
|
+
@queue.post("hello world!", delay: 3600)
|
41
|
+
|
42
|
+
### Get a message off the queue:
|
34
43
|
|
35
44
|
msg = @queue.get()
|
36
45
|
puts msg.body
|
37
46
|
|
38
|
-
|
47
|
+
Get a message with options:
|
39
48
|
|
40
|
-
@queue.
|
41
|
-
puts msg.body
|
42
|
-
end
|
49
|
+
msg = @queue.get(timeout: 300)
|
43
50
|
|
44
51
|
When you pop/get a message from the queue, it will NOT be deleted. It will eventually go back onto the queue after
|
45
|
-
a timeout if you don't delete it (default timeout is
|
52
|
+
a timeout if you don't delete it (default timeout is 60 seconds).
|
46
53
|
|
47
|
-
|
54
|
+
### Delete a message from the queue:
|
48
55
|
|
49
56
|
msg.delete # or @queue.delete(msg.id)
|
50
57
|
|
51
|
-
|
58
|
+
Be sure to delete a message from the queue when you're done with it.
|
59
|
+
|
60
|
+
### Poll for messages:
|
61
|
+
|
62
|
+
@queue.poll do |msg|
|
63
|
+
puts msg.body
|
64
|
+
end
|
65
|
+
|
66
|
+
Polling will automatically delete the message at the end of the block.
|
52
67
|
|
53
68
|
Queue Information
|
54
69
|
=================
|
@@ -56,3 +71,44 @@ Queue Information
|
|
56
71
|
queue = @client.queue("my_queue")
|
57
72
|
puts "size: #{queue.size}"
|
58
73
|
|
74
|
+
|
75
|
+
Push Queues
|
76
|
+
===========
|
77
|
+
|
78
|
+
IronMQ push queues allow you to setup a queue that will push to an endpoint, rather than having to poll the endpoint.
|
79
|
+
|
80
|
+
LINK TO BLOG POST
|
81
|
+
|
82
|
+
### Set subscribers on a queue:
|
83
|
+
|
84
|
+
Subscribers can be any http endpoint. push_type is one of:
|
85
|
+
|
86
|
+
- multicast - will push to all endpoints/subscribers
|
87
|
+
- unicast - will push to one and only one endpoint/subscriber
|
88
|
+
|
89
|
+
|
90
|
+
```ruby
|
91
|
+
subscribers = []
|
92
|
+
subscribers << {url: "http://rest-test.iron.io/code/200?store=key1"}
|
93
|
+
subscribers << {url: "http://rest-test.iron.io/code/200?store=key2"}
|
94
|
+
res = @queue.update_queue(:subscribers => subscribers,
|
95
|
+
:push_type => t)
|
96
|
+
```
|
97
|
+
|
98
|
+
### Add/remove subscribers on a queue
|
99
|
+
|
100
|
+
```ruby
|
101
|
+
@queue.add_subscriber({url: "http://nowhere.com"})
|
102
|
+
# Or to remove a subscriber:
|
103
|
+
@queue.remove_subscriber({url: "http://nowhere.com"})
|
104
|
+
```
|
105
|
+
|
106
|
+
### Get message push status
|
107
|
+
|
108
|
+
After pushing a message:
|
109
|
+
|
110
|
+
```ruby
|
111
|
+
queue.messages.get(m.id).subscribers
|
112
|
+
```
|
113
|
+
|
114
|
+
Returns an array of subscribers with status.
|
data/iron_mq.gemspec
CHANGED
@@ -2,7 +2,7 @@ require File.expand_path('../lib/iron_mq/version', __FILE__)
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |gem|
|
4
4
|
gem.authors = ["Travis Reeder"]
|
5
|
-
gem.email = ["
|
5
|
+
gem.email = ["travis@iron.io"]
|
6
6
|
gem.description = "Ruby client for IronMQ by www.iron.io"
|
7
7
|
gem.summary = "Ruby client for IronMQ by www.iron.io"
|
8
8
|
gem.homepage = "https://github.com/iron-io/iron_mq_ruby"
|
@@ -16,9 +16,10 @@ Gem::Specification.new do |gem|
|
|
16
16
|
|
17
17
|
gem.required_rubygems_version = ">= 1.3.6"
|
18
18
|
gem.required_ruby_version = Gem::Requirement.new(">= 1.9")
|
19
|
-
gem.add_runtime_dependency "iron_core", ">= 0.4.
|
19
|
+
gem.add_runtime_dependency "iron_core", ">= 0.4.4"
|
20
20
|
|
21
21
|
gem.add_development_dependency "test-unit"
|
22
|
+
gem.add_development_dependency "minitest"
|
22
23
|
gem.add_development_dependency "rake"
|
23
24
|
gem.add_development_dependency "beanstalk-client"
|
24
25
|
gem.add_development_dependency "uber_config"
|
data/lib/iron_mq/client.rb
CHANGED
data/lib/iron_mq/messages.rb
CHANGED
@@ -1,20 +1,42 @@
|
|
1
|
+
require 'cgi'
|
2
|
+
|
1
3
|
module IronMQ
|
2
4
|
class Messages
|
3
5
|
|
4
|
-
|
6
|
+
attr_reader :client, :queue
|
5
7
|
|
6
|
-
def initialize(client)
|
8
|
+
def initialize(client, queue=nil)
|
7
9
|
@client = client
|
10
|
+
@queue = queue
|
8
11
|
end
|
9
12
|
|
13
|
+
|
10
14
|
def path(options={})
|
11
|
-
|
15
|
+
options[:queue_name] ||= ((@queue ? @queue.name : nil) || @client.queue_name)
|
16
|
+
options[:project_id] = @client.project_id
|
17
|
+
Messages.path(options)
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.path(options)
|
21
|
+
path = "#{Queues.path(options)}/messages"
|
22
|
+
if options[:msg_id]
|
23
|
+
path << "/#{options[:msg_id]}"
|
24
|
+
end
|
25
|
+
path
|
12
26
|
end
|
13
27
|
|
14
28
|
# options:
|
15
29
|
# :queue_name => can specify an alternative queue name
|
16
30
|
# :timeout => amount of time before message goes back on the queue
|
17
31
|
def get(options={})
|
32
|
+
if options.is_a?(String)
|
33
|
+
# assume it's an id
|
34
|
+
puts 'get_by_id'
|
35
|
+
return Message.new(self, {'id'=>options}, options)
|
36
|
+
#r = @client.get(path(:msg_id=>options))
|
37
|
+
#p r
|
38
|
+
#return r
|
39
|
+
end
|
18
40
|
res = @client.parse_response(@client.get(path(options), options))
|
19
41
|
ret = []
|
20
42
|
res["messages"].each do |m|
|
@@ -70,31 +92,8 @@ module IronMQ
|
|
70
92
|
|
71
93
|
end
|
72
94
|
|
73
|
-
class ResponseBase
|
74
|
-
|
75
|
-
def initialize(res)
|
76
|
-
@data = res
|
77
|
-
end
|
78
|
-
|
79
|
-
def raw
|
80
|
-
@data
|
81
|
-
end
|
82
|
-
|
83
|
-
def [](key)
|
84
|
-
raw[key]
|
85
|
-
end
|
86
|
-
|
87
|
-
def id
|
88
|
-
raw["id"]
|
89
|
-
end
|
90
|
-
|
91
|
-
def msg
|
92
|
-
raw["msg"]
|
93
|
-
end
|
94
|
-
|
95
|
-
end
|
96
|
-
|
97
95
|
class Message < ResponseBase
|
96
|
+
attr_reader :messages
|
98
97
|
|
99
98
|
def initialize(messages, res, options={})
|
100
99
|
super(res)
|
@@ -102,7 +101,6 @@ module IronMQ
|
|
102
101
|
@options = options
|
103
102
|
end
|
104
103
|
|
105
|
-
|
106
104
|
def body
|
107
105
|
raw["body"]
|
108
106
|
end
|
@@ -116,6 +114,15 @@ module IronMQ
|
|
116
114
|
options2 = options.merge(@options) if @options
|
117
115
|
@messages.release(self.id, options2)
|
118
116
|
end
|
119
|
-
end
|
120
117
|
|
118
|
+
def subscribers(options={})
|
119
|
+
res = @messages.client.get(@messages.path(options.merge(msg_id: id)) + "/subscribers", options)
|
120
|
+
res = @messages.client.parse_response(res)
|
121
|
+
ret = []
|
122
|
+
res['subscribers'].each do |m|
|
123
|
+
ret << Subscriber.new(m, self, options)
|
124
|
+
end
|
125
|
+
ret
|
126
|
+
end
|
127
|
+
end
|
121
128
|
end
|
data/lib/iron_mq/queues.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'cgi'
|
2
|
+
require_relative 'subscribers'
|
3
|
+
|
1
4
|
module IronMQ
|
2
5
|
class Queues
|
3
6
|
|
@@ -7,14 +10,20 @@ module IronMQ
|
|
7
10
|
@client = client
|
8
11
|
end
|
9
12
|
|
10
|
-
def path(options
|
11
|
-
path = "projects/#{
|
12
|
-
|
13
|
-
|
13
|
+
def self.path(options)
|
14
|
+
path = "projects/#{options[:project_id]}/queues"
|
15
|
+
name = options[:name] || options[:queue_name] || options['queue_name']
|
16
|
+
if name
|
17
|
+
path << "/#{CGI::escape(name)}"
|
14
18
|
end
|
15
19
|
path
|
16
20
|
end
|
17
21
|
|
22
|
+
def path(options={})
|
23
|
+
options[:project_id] = @client.project_id
|
24
|
+
Queues.path(options)
|
25
|
+
end
|
26
|
+
|
18
27
|
def list(options={})
|
19
28
|
ret = []
|
20
29
|
r1 = @client.get("#{path(options)}", options)
|
@@ -46,20 +55,22 @@ module IronMQ
|
|
46
55
|
# :name => can specify an alternative queue name
|
47
56
|
def get(options={})
|
48
57
|
options[:name] ||= @client.queue_name
|
49
|
-
|
58
|
+
r = @client.get("#{path(options)}")
|
59
|
+
puts "HEADERS"
|
60
|
+
p r.headers
|
61
|
+
res = @client.parse_response(r)
|
50
62
|
return Queue.new(@client, res)
|
51
63
|
end
|
52
64
|
|
53
65
|
# Update a queue
|
54
66
|
# options:
|
55
67
|
# :name => if not specified, will use global queue name
|
56
|
-
# :
|
68
|
+
# :subscribers => url's to subscribe to
|
57
69
|
def post(options={})
|
58
70
|
options[:name] ||= @client.queue_name
|
59
71
|
res = @client.parse_response(@client.post(path(options), options))
|
60
|
-
res
|
61
72
|
p res
|
62
|
-
|
73
|
+
res
|
63
74
|
end
|
64
75
|
|
65
76
|
|
@@ -67,6 +78,8 @@ module IronMQ
|
|
67
78
|
|
68
79
|
class Queue
|
69
80
|
|
81
|
+
attr_reader :client
|
82
|
+
|
70
83
|
def initialize(client, res)
|
71
84
|
@client = client
|
72
85
|
@data = res
|
@@ -89,14 +102,20 @@ module IronMQ
|
|
89
102
|
end
|
90
103
|
|
91
104
|
def reload
|
92
|
-
load_queue
|
105
|
+
load_queue(:force => true)
|
106
|
+
end
|
107
|
+
|
108
|
+
def messages
|
109
|
+
raw["messages"]
|
93
110
|
end
|
94
111
|
|
95
112
|
# Used if lazy loading
|
96
|
-
def load_queue
|
113
|
+
def load_queue(options={})
|
114
|
+
return if @loaded && !options[:force]
|
97
115
|
q = @client.queues.get(:name => name)
|
98
116
|
@client.logger.debug "GOT Q: " + q.inspect
|
99
117
|
@data = q.raw
|
118
|
+
@loaded = true
|
100
119
|
q
|
101
120
|
end
|
102
121
|
|
@@ -105,23 +124,43 @@ module IronMQ
|
|
105
124
|
end
|
106
125
|
|
107
126
|
def delete_queue()
|
108
|
-
@client.queues.delete(:name=>name)
|
127
|
+
@client.queues.delete(:name => name)
|
128
|
+
end
|
129
|
+
|
130
|
+
# updates the Queue object itself
|
131
|
+
def update_queue(options)
|
132
|
+
@client.queues.post(options.merge(:name => name))
|
109
133
|
end
|
110
134
|
|
111
135
|
def size
|
112
|
-
|
113
|
-
return
|
114
|
-
q = load_queue()
|
115
|
-
@size = q.size
|
116
|
-
@size
|
136
|
+
load_queue()
|
137
|
+
return raw["size"]
|
117
138
|
end
|
118
139
|
|
119
140
|
def total_messages
|
120
|
-
|
121
|
-
return
|
122
|
-
|
123
|
-
|
124
|
-
|
141
|
+
load_queue()
|
142
|
+
return raw["total_messages"]
|
143
|
+
end
|
144
|
+
|
145
|
+
def subscribers
|
146
|
+
load_queue()
|
147
|
+
return raw["subscribers"]
|
148
|
+
end
|
149
|
+
|
150
|
+
def add_subscriber(subscriber_hash, options={})
|
151
|
+
puts 'add_subscriber'
|
152
|
+
res = @client.post("#{@client.queues.path(name: name)}/subscribers", subscribers: [subscriber_hash])
|
153
|
+
res = @client.parse_response(res)
|
154
|
+
p res
|
155
|
+
res
|
156
|
+
end
|
157
|
+
|
158
|
+
def remove_subscriber(subscriber_hash)
|
159
|
+
puts 'remove_subscriber'
|
160
|
+
res = @client.delete("#{@client.queues.path(name: name)}/subscribers", {subscribers: [subscriber_hash]}, {"Content-Type"=>@client.content_type})
|
161
|
+
res = @client.parse_response(res)
|
162
|
+
p res
|
163
|
+
res
|
125
164
|
end
|
126
165
|
|
127
166
|
def post(body, options={})
|
@@ -132,6 +171,11 @@ module IronMQ
|
|
132
171
|
@client.messages.get(options.merge(:queue_name => name))
|
133
172
|
end
|
134
173
|
|
174
|
+
def delete(id, options={})
|
175
|
+
@client.messages.delete(id, options.merge(:queue_name => name))
|
176
|
+
end
|
177
|
+
|
178
|
+
|
135
179
|
# This will continuously poll for a message and pass it to the block. For example:
|
136
180
|
#
|
137
181
|
# queue.poll { |msg| puts msg.body }
|
@@ -157,8 +201,8 @@ module IronMQ
|
|
157
201
|
end
|
158
202
|
end
|
159
203
|
|
160
|
-
def
|
161
|
-
|
204
|
+
def messages
|
205
|
+
Messages.new(client, self)
|
162
206
|
end
|
163
207
|
|
164
208
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
|
2
|
+
module IronMQ
|
3
|
+
|
4
|
+
class ResponseBase
|
5
|
+
|
6
|
+
attr_reader :raw
|
7
|
+
|
8
|
+
def initialize(raw)
|
9
|
+
@raw = raw
|
10
|
+
end
|
11
|
+
|
12
|
+
def [](key)
|
13
|
+
raw[key]
|
14
|
+
end
|
15
|
+
|
16
|
+
def id
|
17
|
+
raw["id"]
|
18
|
+
end
|
19
|
+
|
20
|
+
def msg
|
21
|
+
raw["msg"]
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module IronMQ
|
2
|
+
class Subscribers
|
3
|
+
def self.path(options)
|
4
|
+
path = "#{Messages.path(options)}/subscribers"
|
5
|
+
if options[:subscriber_id]
|
6
|
+
path << "/#{options[:subscriber_id]}"
|
7
|
+
end
|
8
|
+
path
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class Subscriber < ResponseBase
|
13
|
+
attr_accessor :options
|
14
|
+
|
15
|
+
def initialize(raw, message, options={})
|
16
|
+
super(raw)
|
17
|
+
@message = message
|
18
|
+
@options = options
|
19
|
+
end
|
20
|
+
|
21
|
+
def delete(options={})
|
22
|
+
client = @message.messages.client
|
23
|
+
|
24
|
+
options[:subscriber_id] ||= @raw["id"]
|
25
|
+
options[:msg_id] ||= @message.id
|
26
|
+
options[:project_id] ||= client.project_id
|
27
|
+
options[:queue_name] ||= client.queue_name
|
28
|
+
path = Subscribers.path(options)
|
29
|
+
raw = client.delete(path)
|
30
|
+
res = client.parse_response(raw)
|
31
|
+
return ResponseBase.new(res)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/iron_mq/version.rb
CHANGED
data/lib/iron_mq.rb
CHANGED
data/test/quick_run.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
require_relative 'test_base'
|
2
2
|
|
3
|
+
TIMES = 1
|
4
|
+
|
3
5
|
class QuickRun < TestBase
|
4
6
|
|
5
7
|
def setup
|
@@ -10,39 +12,43 @@ class QuickRun < TestBase
|
|
10
12
|
|
11
13
|
def test_basics
|
12
14
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
15
|
+
TIMES.times do |i|
|
16
|
+
puts "==== LOOP #{i} =================================="
|
17
|
+
|
18
|
+
res = @client.messages.post("hello world!")
|
19
|
+
p res
|
20
|
+
assert res.id
|
21
|
+
post_id = res.id
|
22
|
+
assert res.msg
|
23
|
+
|
24
|
+
res = @client.messages.get()
|
25
|
+
p res
|
26
|
+
puts "post_id=" + post_id.inspect
|
27
|
+
assert res.id
|
28
|
+
assert_equal res.id, post_id
|
29
|
+
assert res.body
|
30
|
+
|
31
|
+
res = @client.messages.delete(res["id"])
|
32
|
+
p res
|
33
|
+
assert res.msg
|
34
|
+
|
35
|
+
res = @client.messages.get()
|
36
|
+
p res
|
37
|
+
assert res.nil?
|
38
|
+
|
39
|
+
res = @client.messages.post("hello world!", :queue_name => 'test2')
|
40
|
+
p res
|
41
|
+
assert res.id
|
42
|
+
assert res.msg
|
43
|
+
|
44
|
+
res = @client.messages.get(:queue_name => 'test2')
|
45
|
+
p res
|
46
|
+
assert res.id
|
47
|
+
assert res.body
|
48
|
+
|
49
|
+
res = res.delete
|
50
|
+
p res
|
51
|
+
end
|
46
52
|
|
47
53
|
|
48
54
|
end
|
data/test/test_base.rb
CHANGED
@@ -9,14 +9,21 @@ rescue Exception => ex
|
|
9
9
|
raise ex
|
10
10
|
end
|
11
11
|
|
12
|
+
LOG = Logger.new(STDOUT)
|
13
|
+
MAX_TRIES = 100
|
12
14
|
|
13
15
|
class TestBase < Test::Unit::TestCase
|
16
|
+
|
14
17
|
def setup
|
15
18
|
puts 'setup'
|
16
19
|
# check multiple config locations
|
17
20
|
@config = UberConfig.load
|
18
21
|
puts "config=" + @config.inspect
|
22
|
+
|
23
|
+
config = @config['iron']
|
24
|
+
@host = "#{config['host'] || "mq-aws-us-east-1.iron.io"}"
|
19
25
|
@client = IronMQ::Client.new(@config['iron'])
|
26
|
+
Rest.logger.level = Logger::DEBUG # this doesn't work for some reason?
|
20
27
|
IronCore::Logger.logger.level = Logger::DEBUG
|
21
28
|
@client.queue_name = 'ironmq-ruby-tests'
|
22
29
|
|
@@ -26,11 +33,8 @@ class TestBase < Test::Unit::TestCase
|
|
26
33
|
def clear_queue(queue_name=nil)
|
27
34
|
queue_name ||= @client.queue_name
|
28
35
|
puts "clearing queue #{queue_name}"
|
29
|
-
|
30
|
-
|
31
|
-
puts res.body.to_s
|
32
|
-
res.delete
|
33
|
-
end
|
36
|
+
@client.queue(queue_name).post("test")
|
37
|
+
@client.queue(queue_name).clear
|
34
38
|
puts 'cleared.'
|
35
39
|
end
|
36
40
|
|
data/test/test_beanstalkd.rb
CHANGED
@@ -9,11 +9,11 @@ class BeanstalkTests < TestBase
|
|
9
9
|
super
|
10
10
|
|
11
11
|
config = @config['iron']
|
12
|
-
|
13
|
-
puts "beanstalkd url: #{
|
12
|
+
beanstalkd_host = "#{@host}:#{config['beanstalkd_port'] || 11300}"
|
13
|
+
puts "beanstalkd url: #{beanstalkd_host}"
|
14
14
|
@skip = @host.include? 'rackspace'
|
15
15
|
return if @skip # bypass these tests if rackspace
|
16
|
-
@beanstalk = Beanstalk::Connection.new(
|
16
|
+
@beanstalk = Beanstalk::Connection.new(beanstalkd_host)
|
17
17
|
@beanstalk.put("oauth #{config['token']} #{config['project_id']}")
|
18
18
|
|
19
19
|
clear_tube('default')
|