iron_mq 1.7.3 → 1.8.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/.gitignore +7 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +37 -0
- data/Rakefile +0 -18
- data/iron_mq.gemspec +23 -52
- data/lib/iron_mq/client.rb +4 -12
- data/lib/iron_mq/queues.rb +18 -1
- data/lib/iron_mq/version.rb +3 -0
- data/lib/iron_mq.rb +1 -0
- data/test/Gemfile.lock +2 -2
- data/test/quick_run.rb +9 -6
- data/test/test_iron_mq.rb +12 -2
- data/test/test_push_queues.rb +32 -0
- metadata +93 -15
- data/VERSION.yml +0 -5
- /data/{README.markdown → README.md} +0 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
iron_mq (1.8.0)
|
5
|
+
iron_core (>= 0.1.4)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
beanstalk-client (1.1.1)
|
11
|
+
ffi (1.0.11)
|
12
|
+
iron_core (0.1.4)
|
13
|
+
bundler (> 1.0.0)
|
14
|
+
rest
|
15
|
+
rest-client
|
16
|
+
mime-types (1.19)
|
17
|
+
rake (0.9.2.2)
|
18
|
+
rest (1.0.0)
|
19
|
+
rest-client (>= 0.3.0)
|
20
|
+
rest-client (1.6.7)
|
21
|
+
mime-types (>= 1.16)
|
22
|
+
test-unit (2.5.0)
|
23
|
+
typhoeus (0.4.2)
|
24
|
+
ffi (~> 1.0)
|
25
|
+
mime-types (~> 1.18)
|
26
|
+
uber_config (0.0.3)
|
27
|
+
|
28
|
+
PLATFORMS
|
29
|
+
ruby
|
30
|
+
|
31
|
+
DEPENDENCIES
|
32
|
+
beanstalk-client
|
33
|
+
iron_mq!
|
34
|
+
rake
|
35
|
+
test-unit
|
36
|
+
typhoeus
|
37
|
+
uber_config
|
data/Rakefile
CHANGED
@@ -1,24 +1,6 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'rake'
|
3
3
|
|
4
|
-
begin
|
5
|
-
require 'jeweler2'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "iron_mq"
|
8
|
-
gem.summary = "Ruby client for IronMQ"
|
9
|
-
gem.description = "Ruby client for IronMQ"
|
10
|
-
gem.email = "travis@iron.io"
|
11
|
-
gem.homepage = "http://www.iron.io"
|
12
|
-
gem.authors = ["Travis Reeder"]
|
13
|
-
gem.add_dependency 'iron_core'
|
14
|
-
#gem.add_dependency 'typhoeus'
|
15
|
-
gem.required_ruby_version = '>= 1.9'
|
16
|
-
end
|
17
|
-
Jeweler::GemcutterTasks.new
|
18
|
-
rescue LoadError
|
19
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler2"
|
20
|
-
end
|
21
|
-
|
22
4
|
require 'rake/testtask'
|
23
5
|
Rake::TestTask.new(:test) do |test|
|
24
6
|
test.libs << 'lib' << 'test'
|
data/iron_mq.gemspec
CHANGED
@@ -1,58 +1,29 @@
|
|
1
|
-
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
-
# -*- encoding: utf-8 -*-
|
1
|
+
require File.expand_path('../lib/iron_mq/version', __FILE__)
|
5
2
|
|
6
|
-
Gem::Specification.new do |
|
7
|
-
|
8
|
-
|
3
|
+
Gem::Specification.new do |gem|
|
4
|
+
gem.authors = ["Travis Reeder"]
|
5
|
+
gem.email = ["treeder@gmail.com"]
|
6
|
+
gem.description = "Ruby client for IronMQ by www.iron.io"
|
7
|
+
gem.summary = "Ruby client for IronMQ by www.iron.io"
|
8
|
+
gem.homepage = "https://github.com/iron-io/iron_mq_ruby"
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
"lib/iron_mq/queues.rb",
|
27
|
-
"test/Gemfile",
|
28
|
-
"test/Gemfile.lock",
|
29
|
-
"test/long_run.rb",
|
30
|
-
"test/long_run_worker.rb",
|
31
|
-
"test/quick_run.rb",
|
32
|
-
"test/schedule_abt.rb",
|
33
|
-
"test/test_base.rb",
|
34
|
-
"test/test_beanstalkd.rb",
|
35
|
-
"test/test_iron_mq.rb"
|
36
|
-
]
|
37
|
-
s.homepage = "http://www.iron.io"
|
38
|
-
s.require_paths = ["lib"]
|
39
|
-
s.required_ruby_version = Gem::Requirement.new(">= 1.9")
|
40
|
-
s.rubygems_version = "1.8.24"
|
41
|
-
s.summary = "Ruby client for IronMQ"
|
10
|
+
gem.files = `git ls-files`.split($\)
|
11
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
12
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
13
|
+
gem.name = "iron_mq"
|
14
|
+
gem.require_paths = ["lib"]
|
15
|
+
gem.version = IronMQ::VERSION
|
16
|
+
|
17
|
+
gem.required_rubygems_version = ">= 1.3.6"
|
18
|
+
gem.required_ruby_version = Gem::Requirement.new(">= 1.9")
|
19
|
+
gem.add_runtime_dependency "iron_core", ">= 0.1.4"
|
20
|
+
|
21
|
+
gem.add_development_dependency "test-unit"
|
22
|
+
gem.add_development_dependency "rake"
|
23
|
+
gem.add_development_dependency "beanstalk-client"
|
24
|
+
gem.add_development_dependency "uber_config"
|
25
|
+
gem.add_development_dependency "typhoeus"
|
42
26
|
|
43
|
-
if s.respond_to? :specification_version then
|
44
|
-
s.specification_version = 3
|
45
27
|
|
46
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
47
|
-
s.add_runtime_dependency(%q<iron_core>, [">= 0"])
|
48
|
-
s.add_runtime_dependency(%q<iron_core>, [">= 0"])
|
49
|
-
else
|
50
|
-
s.add_dependency(%q<iron_core>, [">= 0"])
|
51
|
-
s.add_dependency(%q<iron_core>, [">= 0"])
|
52
|
-
end
|
53
|
-
else
|
54
|
-
s.add_dependency(%q<iron_core>, [">= 0"])
|
55
|
-
s.add_dependency(%q<iron_core>, [">= 0"])
|
56
|
-
end
|
57
28
|
end
|
58
29
|
|
data/lib/iron_mq/client.rb
CHANGED
@@ -3,17 +3,6 @@ require 'yaml'
|
|
3
3
|
require 'iron_core'
|
4
4
|
|
5
5
|
module IronMQ
|
6
|
-
@@version = nil
|
7
|
-
|
8
|
-
def self.version
|
9
|
-
if @@version.nil?
|
10
|
-
v = YAML.load(File.read(File.dirname(__FILE__) + '/../../VERSION.yml'))
|
11
|
-
$stderr.puts v.inspect
|
12
|
-
@@version = [v[:major].to_s, v[:minor].to_s, v[:patch].to_s].join('.')
|
13
|
-
end
|
14
|
-
|
15
|
-
@@version
|
16
|
-
end
|
17
6
|
|
18
7
|
class Client < IronCore::Client
|
19
8
|
AWS_US_EAST_HOST = 'mq-aws-us-east-1.iron.io'
|
@@ -23,7 +12,10 @@ module IronMQ
|
|
23
12
|
def initialize(options={})
|
24
13
|
super('mq', options, [:queue_name])
|
25
14
|
|
26
|
-
load_from_hash(:scheme => 'https', :host => IronMQ::Client::AWS_US_EAST_HOST, :port => 443,
|
15
|
+
load_from_hash('defaults', {:scheme => 'https', :host => IronMQ::Client::AWS_US_EAST_HOST, :port => 443,
|
16
|
+
:api_version => 1,
|
17
|
+
:user_agent => 'iron_mq_ruby-' + IronMQ::VERSION + ' (iron_core_ruby-' + IronCore.version + ')',
|
18
|
+
:queue_name => 'default'})
|
27
19
|
|
28
20
|
if (not @token) || (not @project_id)
|
29
21
|
IronCore::Logger.error 'IronMQ', 'Both token and project_id must be specified'
|
data/lib/iron_mq/queues.rb
CHANGED
@@ -9,6 +9,10 @@ module IronMQ
|
|
9
9
|
|
10
10
|
def path(options={})
|
11
11
|
path = "projects/#{@client.project_id}/queues"
|
12
|
+
if options[:name]
|
13
|
+
path << "/#{options[:name]}"
|
14
|
+
end
|
15
|
+
path
|
12
16
|
end
|
13
17
|
|
14
18
|
def list(options={})
|
@@ -27,10 +31,23 @@ module IronMQ
|
|
27
31
|
# options:
|
28
32
|
# :name => can specify an alternative queue name
|
29
33
|
def get(options={})
|
30
|
-
|
34
|
+
options[:name] ||= @client.queue_name
|
35
|
+
res = @client.parse_response(@client.get("#{path(options)}"))
|
31
36
|
return Queue.new(self, res)
|
32
37
|
end
|
33
38
|
|
39
|
+
# Update a queue
|
40
|
+
# options:
|
41
|
+
# :name => if not specified, will use global queue name
|
42
|
+
# :subscriptions => url's to subscribe to
|
43
|
+
def post(options={})
|
44
|
+
options[:name] ||= @client.queue_name
|
45
|
+
res = @client.parse_response(@client.post(path(options), options))
|
46
|
+
res
|
47
|
+
p res
|
48
|
+
|
49
|
+
end
|
50
|
+
|
34
51
|
|
35
52
|
end
|
36
53
|
|
data/lib/iron_mq.rb
CHANGED
data/test/Gemfile.lock
CHANGED
@@ -23,13 +23,13 @@ GEM
|
|
23
23
|
faraday (0.8.1)
|
24
24
|
multipart-post (~> 1.1)
|
25
25
|
http_parser.rb (0.5.3)
|
26
|
-
iron_core (0.1.
|
26
|
+
iron_core (0.1.3)
|
27
27
|
bundler (> 1.0.0)
|
28
28
|
rest
|
29
29
|
rest-client
|
30
30
|
mime-types (1.18)
|
31
31
|
multipart-post (1.1.5)
|
32
|
-
rest (0.
|
32
|
+
rest (0.3.0)
|
33
33
|
rest-client
|
34
34
|
rest-client
|
35
35
|
rest-client (1.6.7)
|
data/test/quick_run.rb
CHANGED
@@ -6,38 +6,41 @@ class QuickRun < TestBase
|
|
6
6
|
def setup
|
7
7
|
super
|
8
8
|
@client.queue_name = 'ironmq-gem-quick'
|
9
|
+
clear_queue
|
9
10
|
end
|
10
11
|
|
11
12
|
def test_basics
|
13
|
+
|
12
14
|
res = @client.messages.post("hello world!")
|
15
|
+
p res
|
13
16
|
assert res.id
|
14
17
|
post_id = res.id
|
15
18
|
assert res.msg
|
16
|
-
p res
|
17
19
|
|
18
20
|
res = @client.messages.get()
|
21
|
+
p res
|
22
|
+
puts "post_id=" + post_id.inspect
|
19
23
|
assert res.id
|
20
|
-
|
24
|
+
assert_equal res.id, post_id
|
21
25
|
assert res.body
|
22
|
-
p res
|
23
26
|
|
24
27
|
res = @client.messages.delete(res["id"])
|
25
|
-
assert res.msg
|
26
28
|
p res
|
29
|
+
assert res.msg
|
27
30
|
|
28
31
|
res = @client.messages.get()
|
29
32
|
p res
|
30
33
|
assert res.nil?
|
31
34
|
|
32
35
|
res = @client.messages.post("hello world!", :queue_name=>'test2')
|
36
|
+
p res
|
33
37
|
assert res.id
|
34
38
|
assert res.msg
|
35
|
-
p res
|
36
39
|
|
37
40
|
res = @client.messages.get(:queue_name=>'test2')
|
41
|
+
p res
|
38
42
|
assert res.id
|
39
43
|
assert res.body
|
40
|
-
p res
|
41
44
|
|
42
45
|
res = res.delete
|
43
46
|
p res
|
data/test/test_iron_mq.rb
CHANGED
@@ -17,6 +17,18 @@ class IronMQTests < TestBase
|
|
17
17
|
clear_queue()
|
18
18
|
|
19
19
|
end
|
20
|
+
|
21
|
+
def test_performance_post_100_messages
|
22
|
+
@client.queue_name = 'test_basics'
|
23
|
+
100.times do
|
24
|
+
@client.messages.post("hello world!")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_performance_post_message
|
29
|
+
@client.queue_name = 'test_basics'
|
30
|
+
@client.messages.post("hello world!")
|
31
|
+
end
|
20
32
|
|
21
33
|
def test_basics
|
22
34
|
@client.queue_name = 'test_basics'
|
@@ -235,8 +247,6 @@ class IronMQTests < TestBase
|
|
235
247
|
p msg
|
236
248
|
assert msg
|
237
249
|
|
238
|
-
|
239
|
-
|
240
250
|
end
|
241
251
|
|
242
252
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# Put config.yml file in ~/Dropbox/configs/ironmq_gem/test/config.yml
|
2
|
+
require_relative 'test_base'
|
3
|
+
|
4
|
+
class TestPushQueues < TestBase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
super
|
8
|
+
@client.queue_name = 'ironmq-gem-quick'
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_message_subscriptions
|
12
|
+
res = @client.messages.post("hello world!", :subscriptions=>["http://requestb.in/oui4adou"])
|
13
|
+
assert res.id
|
14
|
+
post_id = res.id
|
15
|
+
assert res.msg
|
16
|
+
p res
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_queue_subscriptions
|
20
|
+
qname = "subscription-queue"
|
21
|
+
res = @client.queues.post(:queue_name=>qname, :subscriptions=>["http://requestb.in/1lhkwk31", "http://requestb.in/1icckwe1"])
|
22
|
+
q = @client.queues.get(:queue_name=>qname)
|
23
|
+
p q
|
24
|
+
p q["subscriptions"]
|
25
|
+
|
26
|
+
@client.messages.post("hello sub queue", :queue_name=>qname)
|
27
|
+
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iron_mq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.8.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-06-
|
12
|
+
date: 2012-06-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: iron_core
|
@@ -18,9 +18,25 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 0.1.4
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.1.4
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: test-unit
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
24
40
|
version_requirements: !ruby/object:Gem::Requirement
|
25
41
|
none: false
|
26
42
|
requirements:
|
@@ -28,14 +44,30 @@ dependencies:
|
|
28
44
|
- !ruby/object:Gem::Version
|
29
45
|
version: '0'
|
30
46
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
47
|
+
name: rake
|
32
48
|
requirement: !ruby/object:Gem::Requirement
|
33
49
|
none: false
|
34
50
|
requirements:
|
35
51
|
- - ! '>='
|
36
52
|
- !ruby/object:Gem::Version
|
37
53
|
version: '0'
|
38
|
-
type: :
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: beanstalk-client
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :development
|
39
71
|
prerelease: false
|
40
72
|
version_requirements: !ruby/object:Gem::Requirement
|
41
73
|
none: false
|
@@ -43,21 +75,56 @@ dependencies:
|
|
43
75
|
- - ! '>='
|
44
76
|
- !ruby/object:Gem::Version
|
45
77
|
version: '0'
|
46
|
-
|
47
|
-
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: uber_config
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: typhoeus
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
description: Ruby client for IronMQ by www.iron.io
|
111
|
+
email:
|
112
|
+
- treeder@gmail.com
|
48
113
|
executables: []
|
49
114
|
extensions: []
|
50
|
-
extra_rdoc_files:
|
51
|
-
- README.markdown
|
115
|
+
extra_rdoc_files: []
|
52
116
|
files:
|
53
|
-
-
|
117
|
+
- .gitignore
|
118
|
+
- Gemfile
|
119
|
+
- Gemfile.lock
|
120
|
+
- README.md
|
54
121
|
- Rakefile
|
55
|
-
- VERSION.yml
|
56
122
|
- iron_mq.gemspec
|
57
123
|
- lib/iron_mq.rb
|
58
124
|
- lib/iron_mq/client.rb
|
59
125
|
- lib/iron_mq/messages.rb
|
60
126
|
- lib/iron_mq/queues.rb
|
127
|
+
- lib/iron_mq/version.rb
|
61
128
|
- test/Gemfile
|
62
129
|
- test/Gemfile.lock
|
63
130
|
- test/long_run.rb
|
@@ -67,7 +134,8 @@ files:
|
|
67
134
|
- test/test_base.rb
|
68
135
|
- test/test_beanstalkd.rb
|
69
136
|
- test/test_iron_mq.rb
|
70
|
-
|
137
|
+
- test/test_push_queues.rb
|
138
|
+
homepage: https://github.com/iron-io/iron_mq_ruby
|
71
139
|
licenses: []
|
72
140
|
post_install_message:
|
73
141
|
rdoc_options: []
|
@@ -84,11 +152,21 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
84
152
|
requirements:
|
85
153
|
- - ! '>='
|
86
154
|
- !ruby/object:Gem::Version
|
87
|
-
version:
|
155
|
+
version: 1.3.6
|
88
156
|
requirements: []
|
89
157
|
rubyforge_project:
|
90
158
|
rubygems_version: 1.8.24
|
91
159
|
signing_key:
|
92
160
|
specification_version: 3
|
93
|
-
summary: Ruby client for IronMQ
|
94
|
-
test_files:
|
161
|
+
summary: Ruby client for IronMQ by www.iron.io
|
162
|
+
test_files:
|
163
|
+
- test/Gemfile
|
164
|
+
- test/Gemfile.lock
|
165
|
+
- test/long_run.rb
|
166
|
+
- test/long_run_worker.rb
|
167
|
+
- test/quick_run.rb
|
168
|
+
- test/schedule_abt.rb
|
169
|
+
- test/test_base.rb
|
170
|
+
- test/test_beanstalkd.rb
|
171
|
+
- test/test_iron_mq.rb
|
172
|
+
- test/test_push_queues.rb
|
data/VERSION.yml
DELETED
File without changes
|