cloudist 0.2.1 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. data/Gemfile +15 -11
  2. data/Gemfile.lock +20 -7
  3. data/README.md +61 -39
  4. data/VERSION +1 -1
  5. data/cloudist.gemspec +50 -16
  6. data/examples/amqp/Gemfile +3 -0
  7. data/examples/amqp/Gemfile.lock +12 -0
  8. data/examples/amqp/amqp_consumer.rb +56 -0
  9. data/examples/amqp/amqp_publisher.rb +50 -0
  10. data/examples/queue_message.rb +7 -7
  11. data/examples/sandwich_client_with_custom_listener.rb +77 -0
  12. data/examples/sandwich_worker_with_class.rb +22 -7
  13. data/lib/cloudist.rb +113 -56
  14. data/lib/cloudist/application.rb +60 -0
  15. data/lib/cloudist/core_ext/class.rb +139 -0
  16. data/lib/cloudist/core_ext/kernel.rb +13 -0
  17. data/lib/cloudist/core_ext/module.rb +11 -0
  18. data/lib/cloudist/encoding.rb +13 -0
  19. data/lib/cloudist/errors.rb +2 -0
  20. data/lib/cloudist/job.rb +21 -18
  21. data/lib/cloudist/listener.rb +108 -54
  22. data/lib/cloudist/message.rb +97 -0
  23. data/lib/cloudist/messaging.rb +29 -0
  24. data/lib/cloudist/payload.rb +45 -105
  25. data/lib/cloudist/payload_old.rb +155 -0
  26. data/lib/cloudist/publisher.rb +7 -2
  27. data/lib/cloudist/queue.rb +152 -0
  28. data/lib/cloudist/queues/basic_queue.rb +83 -53
  29. data/lib/cloudist/queues/job_queue.rb +13 -24
  30. data/lib/cloudist/queues/reply_queue.rb +13 -21
  31. data/lib/cloudist/request.rb +33 -7
  32. data/lib/cloudist/worker.rb +9 -2
  33. data/lib/cloudist_old.rb +300 -0
  34. data/lib/em/em_timer_utils.rb +55 -0
  35. data/lib/em/iterator.rb +27 -0
  36. data/spec/cloudist/message_spec.rb +91 -0
  37. data/spec/cloudist/messaging_spec.rb +19 -0
  38. data/spec/cloudist/payload_spec.rb +10 -4
  39. data/spec/cloudist/payload_spec_2_spec.rb +78 -0
  40. data/spec/cloudist/queue_spec.rb +16 -0
  41. data/spec/cloudist_spec.rb +49 -45
  42. data/spec/spec_helper.rb +0 -1
  43. data/spec/support/amqp.rb +16 -0
  44. metadata +112 -102
  45. data/examples/extending_values.rb +0 -44
  46. data/examples/sandwich_client.rb +0 -57
  47. data/lib/cloudist/callback.rb +0 -16
  48. data/lib/cloudist/callback_methods.rb +0 -19
  49. data/lib/cloudist/callbacks/error_callback.rb +0 -14
@@ -0,0 +1,19 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ describe Cloudist::Messaging do
4
+
5
+ it "should add queue to queues list" do
6
+ queue = mock("Cloudist::Queue")
7
+ queue.stubs(:name).returns("test.queue")
8
+ Cloudist::Messaging.add_queue(queue)
9
+ Cloudist::Messaging.active_queues.keys.should include('test.queue')
10
+ end
11
+
12
+ it "should be able to remove queues from list" do
13
+ queue = mock("Cloudist::Queue")
14
+ queue.stubs(:name).returns("test.queue")
15
+ Cloudist::Messaging.add_queue(queue).keys.should == ['test.queue']
16
+ Cloudist::Messaging.remove_queue('test.queue').keys.should == []
17
+ end
18
+
19
+ end
@@ -65,7 +65,7 @@ describe Cloudist::Payload do
65
65
 
66
66
  it "should format payload for sending" do
67
67
  payload = Cloudist::Payload.new({:bread => 'white'}, {:event_hash => 'foo', :message_type => 'reply'})
68
- body, popts = payload.formatted
68
+ body, popts = payload.to_a
69
69
  headers = popts[:headers]
70
70
 
71
71
  body.should == Marshal.dump({:bread => 'white'})
@@ -104,10 +104,10 @@ describe Cloudist::Payload do
104
104
  payload.headers[:reply_to].should be_nil
105
105
  payload.set_reply_to("my_custom_queue")
106
106
  payload.headers[:reply_to].should_not be_nil
107
- payload.headers[:reply_to].should match /^temp\.reply\.my_custom_queue\.(.+)/
108
- body, headers = payload.formatted
107
+ payload.headers[:reply_to].should match /^temp\.reply\.my_custom_queue/
108
+ body, popts = payload.to_a
109
+ headers = popts[:headers]
109
110
  headers[:reply_to].should == payload.headers[:reply_to]
110
-
111
111
  end
112
112
 
113
113
  it "should not overwrite passed in headers" do
@@ -128,4 +128,10 @@ describe Cloudist::Payload do
128
128
  payload = Cloudist::Payload.new(e, {:message_type => 'error'})
129
129
  end
130
130
 
131
+ it "should be able to query payload keys with key?" do
132
+ payload = Cloudist::Payload.new({:bread => 'white'}, {:ttl => 25, :event_hash => 'foo', :published_on => 12345, :message_id => 1})
133
+ payload.bread?.should be_true
134
+ payload.cheese?.should be_false
135
+ end
136
+
131
137
  end
@@ -0,0 +1,78 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '../../spec_helper')
2
+
3
+ describe Cloudist::Payload do
4
+ include Cloudist::Encoding
5
+
6
+ it "should accept a hash for data" do
7
+ pl = Cloudist::Payload.new({:bread => 'white'})
8
+ pl.body.bread.should == "white"
9
+ end
10
+
11
+ it "should accept encoded message" do
12
+ pl = Cloudist::Payload.new(encode({:bread => 'white'}))
13
+ pl.body.bread.should == "white"
14
+ end
15
+
16
+ it "should retrieve id from headers" do
17
+ pl = Cloudist::Payload.new({:bread => 'white'}, {:message_id => "12345"})
18
+ pl.id.should == "12345"
19
+ end
20
+
21
+ it "should prepare headers" do
22
+ payload = Cloudist::Payload.new({:bread => 'white'})
23
+ payload.body.bread.should == "white"
24
+ payload.headers.has_key?("ttl").should be_true
25
+ # payload.headers.has_key?(:content_type).should be_true
26
+ # payload.headers[:content_type].should == "application/json"
27
+ payload.headers.has_key?("published_on").should be_true
28
+ payload.headers.has_key?("message_id").should be_true
29
+ end
30
+
31
+ it "should extract published_on from data" do
32
+ time = Time.now.to_f
33
+ payload = Cloudist::Payload.new({:bread => 'white', :timestamp => time})
34
+ payload.headers[:published_on].should == time
35
+ end
36
+
37
+ it "should not override timestamp if already present in headers" do
38
+ time = (Time.now.to_f - 10.0)
39
+ payload = Cloudist::Payload.new({:bread => 'white'}, {:published_on => time})
40
+ payload.headers[:published_on].should == time
41
+ end
42
+
43
+ it "should override timestamp if not present" do
44
+ payload = Cloudist::Payload.new({:bread => 'white'})
45
+ payload.headers[:published_on].should be_within(0.1).of Time.now.to_f
46
+ payload.timestamp.should be_within(0.1).of Time.now.to_f
47
+ end
48
+
49
+ it "should parse custom headers" do
50
+ payload = Cloudist::Payload.new(Marshal.dump({:bread => 'white'}), {:published_on => 12345, :message_id => "foo"})
51
+ payload.headers.to_hash.should == { "published_on"=>12345, "message_id"=>"foo", "ttl"=>300 }
52
+ end
53
+
54
+ it "should create a unique event hash" do
55
+ payload = Cloudist::Payload.new({:bread => 'white'})
56
+ payload.id.size.should == 36
57
+ end
58
+
59
+ it "should not create a new message_id unless it doesn't have one" do
60
+ payload = Cloudist::Payload.new({:bread => 'white'})
61
+ payload.id.size.should == 36
62
+ payload = Cloudist::Payload.new({:bread => 'white'}, {:message_id => 'foo'})
63
+ payload.id.should == 'foo'
64
+ end
65
+
66
+ it "should format payload for sending" do
67
+ payload = Cloudist::Payload.new({:bread => 'white'}, {:message_id => 'foo', :message_type => 'reply'})
68
+ body, popts = payload.to_a
69
+ headers = popts[:headers]
70
+
71
+ body.should == encode(Hashie::Mash.new({:bread => 'white'}))
72
+ headers[:ttl].should == "300"
73
+ headers[:message_type].should == 'reply'
74
+ end
75
+
76
+
77
+
78
+ end
@@ -0,0 +1,16 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ describe Cloudist::Queue do
4
+ before(:each) do
5
+ stub_amqp!
6
+ end
7
+
8
+ it "should cache new queues" do
9
+ q1 = Cloudist::Queue.new("test.queue")
10
+ q2 = Cloudist::Queue.new("test.queue")
11
+
12
+ # q1.cached_queues.should == {}
13
+ q1.q.should == q2.q
14
+ Cloudist::Queue.cached_queues.should == {}
15
+ end
16
+ end
@@ -1,55 +1,59 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
  require "moqueue"
3
3
 
4
- class SandwichWorker < Cloudist::Worker
5
- def process
6
- Cloudist.log.info(job.data.inspect)
7
- end
8
- end
9
-
10
4
  describe "Cloudist" do
11
-
12
5
  before(:each) do
13
- overload_amqp
14
- reset_broker
15
- Cloudist.remove_workers
16
-
17
- @mq = mock("MQ")
18
- @queue, @exchange = mock_queue_and_exchange('make.sandwich')
19
-
20
- @qobj = Cloudist::JobQueue.any_instance
21
- @qobj.stubs(:q).returns(@queue)
22
- @qobj.stubs(:mq).returns(@mq)
23
- @qobj.stubs(:ex).returns(@exchange)
24
- @qobj.stubs(:setup)
6
+ stub_amqp!
25
7
  end
26
-
27
- it "should register a worker" do
28
- Cloudist.register_worker('make.sandwich', SandwichWorker)
29
- Cloudist.workers.should have_key("make.sandwich")
30
- Cloudist.workers["make.sandwich"].size.should == 1
31
- end
32
-
33
- it "should support handle syntax" do
34
- Cloudist.workers.should == {}
35
- Cloudist.handle('make.sandwich').with(SandwichWorker)
36
- Cloudist.workers.should have_key("make.sandwich")
37
- Cloudist.workers["make.sandwich"].size.should == 1
8
+ it "should start an AMQP instance" do
9
+ AMQP.expects(:start).once
10
+
11
+ Cloudist.start do
12
+
13
+ end
38
14
  end
39
15
 
40
- # it "should support handle syntax with multiple queues" do
41
- # Cloudist.workers.should == {}
42
- # Cloudist.handle('make.sandwich', 'eat.sandwich').with(SandwichWorker)
43
- # # Cloudist.workers.should == {"make.sandwich"=>[SandwichWorker], "eat.sandwich"=>[SandwichWorker]}
44
- # end
45
-
46
- it "should call process on worker when job arrives" do
47
- job = Cloudist.enqueue('make.sandwich', {:bread => 'white'})
48
- job.payload.published?.should be_true
49
- SandwichWorker.any_instance.expects(:process)
50
- Cloudist.handle('make.sandwich').with(SandwichWorker)
51
- Cloudist.workers.should have_key("make.sandwich")
52
- Cloudist.workers["make.sandwich"].size.should == 1
53
- end
16
+ # before(:each) do
17
+ # overload_amqp
18
+ # reset_broker
19
+ # Cloudist.remove_workers
20
+ #
21
+ # @mq = mock("MQ")
22
+ # @queue, @exchange = mock_queue_and_exchange('make.sandwich')
23
+ #
24
+ # @qobj = Cloudist::JobQueue.any_instance
25
+ # @qobj.stubs(:q).returns(@queue)
26
+ # @qobj.stubs(:mq).returns(@mq)
27
+ # @qobj.stubs(:ex).returns(@exchange)
28
+ # @qobj.stubs(:setup)
29
+ # end
30
+ #
31
+ # it "should register a worker" do
32
+ # Cloudist.register_worker('make.sandwich', SandwichWorker)
33
+ # Cloudist.workers.should have_key("make.sandwich")
34
+ # Cloudist.workers["make.sandwich"].size.should == 1
35
+ # end
36
+ #
37
+ # it "should support handle syntax" do
38
+ # Cloudist.workers.should == {}
39
+ # Cloudist.handle('make.sandwich').with(SandwichWorker)
40
+ # Cloudist.workers.should have_key("make.sandwich")
41
+ # Cloudist.workers["make.sandwich"].size.should == 1
42
+ # end
43
+ #
44
+ # # it "should support handle syntax with multiple queues" do
45
+ # # Cloudist.workers.should == {}
46
+ # # Cloudist.handle('make.sandwich', 'eat.sandwich').with(SandwichWorker)
47
+ # # # Cloudist.workers.should == {"make.sandwich"=>[SandwichWorker], "eat.sandwich"=>[SandwichWorker]}
48
+ # # end
49
+ #
50
+ # it "should call process on worker when job arrives" do
51
+ # job = Cloudist.enqueue('make.sandwich', {:bread => 'white'})
52
+ # job.payload.published?.should be_true
53
+ # SandwichWorker.any_instance.expects(:process)
54
+ # Cloudist.handle('make.sandwich').with(SandwichWorker)
55
+ # Cloudist.workers.should have_key("make.sandwich")
56
+ # Cloudist.workers["make.sandwich"].size.should == 1
57
+ # end
54
58
 
55
59
  end
@@ -3,7 +3,6 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
3
  require 'rspec'
4
4
  require "moqueue"
5
5
  require "mocha"
6
-
7
6
  require 'cloudist'
8
7
 
9
8
  # Requires supporting files with custom matchers and macros, etc,
@@ -0,0 +1,16 @@
1
+ def stub_amqp!
2
+ AMQP.stubs(:start)
3
+ mock_queue = mock("AMQP::Queue")
4
+ mock_queue.stubs(:bind)
5
+ mock_queue.stubs(:name).returns("test.queue")
6
+
7
+ mock_ex = mock("AMQP::Exchange")
8
+ mock_ex.stubs(:name).returns("test.queue")
9
+
10
+ mock_channel = mock("AMQP::Channel")
11
+ mock_channel.stubs(:prefetch).with(1)
12
+ mock_channel.stubs(:queue).returns(mock_queue)
13
+ mock_channel.stubs(:direct).returns(mock_ex)
14
+
15
+ AMQP::Channel.stubs(:new).returns(mock_channel)
16
+ end
metadata CHANGED
@@ -1,13 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudist
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 2
9
- - 1
10
- version: 0.2.1
4
+ prerelease:
5
+ version: 0.4.1
11
6
  platform: ruby
12
7
  authors:
13
8
  - Ivan Vanderbyl
@@ -15,179 +10,174 @@ autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2011-01-20 00:00:00 +11:00
13
+ date: 2011-05-23 00:00:00 +10:00
19
14
  default_executable:
20
15
  dependencies:
21
16
  - !ruby/object:Gem::Dependency
22
- type: :runtime
23
- prerelease: false
24
17
  name: amqp
25
- version_requirements: &id001 !ruby/object:Gem::Requirement
18
+ requirement: &id001 !ruby/object:Gem::Requirement
26
19
  none: false
27
20
  requirements:
28
21
  - - ~>
29
22
  - !ruby/object:Gem::Version
30
- hash: 9
31
- segments:
32
- - 0
33
- - 6
34
- - 7
35
- version: 0.6.7
36
- requirement: *id001
37
- - !ruby/object:Gem::Dependency
23
+ version: 0.8.0.rc12
38
24
  type: :runtime
39
25
  prerelease: false
26
+ version_requirements: *id001
27
+ - !ruby/object:Gem::Dependency
40
28
  name: json
41
- version_requirements: &id002 !ruby/object:Gem::Requirement
29
+ requirement: &id002 !ruby/object:Gem::Requirement
42
30
  none: false
43
31
  requirements:
44
32
  - - ~>
45
33
  - !ruby/object:Gem::Version
46
- hash: 11
47
- segments:
48
- - 1
49
- - 4
50
- - 6
51
34
  version: 1.4.6
52
- requirement: *id002
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: *id002
53
38
  - !ruby/object:Gem::Dependency
39
+ name: i18n
40
+ requirement: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: "0"
54
46
  type: :runtime
55
47
  prerelease: false
48
+ version_requirements: *id003
49
+ - !ruby/object:Gem::Dependency
56
50
  name: activesupport
57
- version_requirements: &id003 !ruby/object:Gem::Requirement
51
+ requirement: &id004 !ruby/object:Gem::Requirement
58
52
  none: false
59
53
  requirements:
60
54
  - - ~>
61
55
  - !ruby/object:Gem::Version
62
- hash: 1
63
- segments:
64
- - 3
65
- - 0
66
- - 3
67
56
  version: 3.0.3
68
- requirement: *id003
57
+ type: :runtime
58
+ prerelease: false
59
+ version_requirements: *id004
60
+ - !ruby/object:Gem::Dependency
61
+ name: hashie
62
+ requirement: &id005 !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: "0"
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: *id005
71
+ - !ruby/object:Gem::Dependency
72
+ name: uuid
73
+ requirement: &id006 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: "0"
79
+ type: :runtime
80
+ prerelease: false
81
+ version_requirements: *id006
69
82
  - !ruby/object:Gem::Dependency
83
+ name: rake
84
+ requirement: &id007 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: 0.8.7
70
90
  type: :development
71
91
  prerelease: false
92
+ version_requirements: *id007
93
+ - !ruby/object:Gem::Dependency
72
94
  name: rspec
73
- version_requirements: &id004 !ruby/object:Gem::Requirement
95
+ requirement: &id008 !ruby/object:Gem::Requirement
74
96
  none: false
75
97
  requirements:
76
98
  - - ~>
77
99
  - !ruby/object:Gem::Version
78
- hash: 3
79
- segments:
80
- - 2
81
- - 3
82
- - 0
83
100
  version: 2.3.0
84
- requirement: *id004
85
- - !ruby/object:Gem::Dependency
86
101
  type: :development
87
102
  prerelease: false
103
+ version_requirements: *id008
104
+ - !ruby/object:Gem::Dependency
88
105
  name: moqueue
89
- version_requirements: &id005 !ruby/object:Gem::Requirement
106
+ requirement: &id009 !ruby/object:Gem::Requirement
90
107
  none: false
91
108
  requirements:
92
109
  - - ">="
93
110
  - !ruby/object:Gem::Version
94
- hash: 3
95
- segments:
96
- - 0
97
111
  version: "0"
98
- requirement: *id005
99
- - !ruby/object:Gem::Dependency
100
112
  type: :development
101
113
  prerelease: false
114
+ version_requirements: *id009
115
+ - !ruby/object:Gem::Dependency
102
116
  name: mocha
103
- version_requirements: &id006 !ruby/object:Gem::Requirement
117
+ requirement: &id010 !ruby/object:Gem::Requirement
104
118
  none: false
105
119
  requirements:
106
120
  - - ">="
107
121
  - !ruby/object:Gem::Version
108
- hash: 3
109
- segments:
110
- - 0
111
122
  version: "0"
112
- requirement: *id006
113
- - !ruby/object:Gem::Dependency
114
123
  type: :development
115
124
  prerelease: false
125
+ version_requirements: *id010
126
+ - !ruby/object:Gem::Dependency
116
127
  name: bundler
117
- version_requirements: &id007 !ruby/object:Gem::Requirement
128
+ requirement: &id011 !ruby/object:Gem::Requirement
118
129
  none: false
119
130
  requirements:
120
131
  - - ~>
121
132
  - !ruby/object:Gem::Version
122
- hash: 23
123
- segments:
124
- - 1
125
- - 0
126
- - 0
127
133
  version: 1.0.0
128
- requirement: *id007
129
- - !ruby/object:Gem::Dependency
130
134
  type: :development
131
135
  prerelease: false
136
+ version_requirements: *id011
137
+ - !ruby/object:Gem::Dependency
132
138
  name: jeweler
133
- version_requirements: &id008 !ruby/object:Gem::Requirement
139
+ requirement: &id012 !ruby/object:Gem::Requirement
134
140
  none: false
135
141
  requirements:
136
142
  - - ~>
137
143
  - !ruby/object:Gem::Version
138
- hash: 7
139
- segments:
140
- - 1
141
- - 5
142
- - 2
143
144
  version: 1.5.2
144
- requirement: *id008
145
- - !ruby/object:Gem::Dependency
146
145
  type: :development
147
146
  prerelease: false
147
+ version_requirements: *id012
148
+ - !ruby/object:Gem::Dependency
148
149
  name: rcov
149
- version_requirements: &id009 !ruby/object:Gem::Requirement
150
+ requirement: &id013 !ruby/object:Gem::Requirement
150
151
  none: false
151
152
  requirements:
152
153
  - - ">="
153
154
  - !ruby/object:Gem::Version
154
- hash: 3
155
- segments:
156
- - 0
157
155
  version: "0"
158
- requirement: *id009
159
- - !ruby/object:Gem::Dependency
160
156
  type: :development
161
157
  prerelease: false
158
+ version_requirements: *id013
159
+ - !ruby/object:Gem::Dependency
162
160
  name: reek
163
- version_requirements: &id010 !ruby/object:Gem::Requirement
161
+ requirement: &id014 !ruby/object:Gem::Requirement
164
162
  none: false
165
163
  requirements:
166
164
  - - ~>
167
165
  - !ruby/object:Gem::Version
168
- hash: 15
169
- segments:
170
- - 1
171
- - 2
172
- - 8
173
166
  version: 1.2.8
174
- requirement: *id010
175
- - !ruby/object:Gem::Dependency
176
167
  type: :development
177
168
  prerelease: false
169
+ version_requirements: *id014
170
+ - !ruby/object:Gem::Dependency
178
171
  name: roodi
179
- version_requirements: &id011 !ruby/object:Gem::Requirement
172
+ requirement: &id015 !ruby/object:Gem::Requirement
180
173
  none: false
181
174
  requirements:
182
175
  - - ~>
183
176
  - !ruby/object:Gem::Version
184
- hash: 11
185
- segments:
186
- - 2
187
- - 1
188
- - 0
189
177
  version: 2.1.0
190
- requirement: *id011
178
+ type: :development
179
+ prerelease: false
180
+ version_requirements: *id015
191
181
  description: Cloudist is a simple, highly scalable job queue for Ruby applications, it can run within Rails, DaemonKit or your own custom application. Refer to github page for examples
192
182
  email: ivanvanderbyl@me.com
193
183
  executables: []
@@ -207,36 +197,53 @@ files:
207
197
  - Rakefile
208
198
  - VERSION
209
199
  - cloudist.gemspec
210
- - examples/extending_values.rb
200
+ - examples/amqp/Gemfile
201
+ - examples/amqp/Gemfile.lock
202
+ - examples/amqp/amqp_consumer.rb
203
+ - examples/amqp/amqp_publisher.rb
211
204
  - examples/queue_message.rb
212
- - examples/sandwich_client.rb
205
+ - examples/sandwich_client_with_custom_listener.rb
213
206
  - examples/sandwich_worker.rb
214
207
  - examples/sandwich_worker_with_class.rb
215
208
  - lib/cloudist.rb
216
- - lib/cloudist/callback.rb
217
- - lib/cloudist/callback_methods.rb
218
- - lib/cloudist/callbacks/error_callback.rb
209
+ - lib/cloudist/application.rb
210
+ - lib/cloudist/core_ext/class.rb
211
+ - lib/cloudist/core_ext/kernel.rb
212
+ - lib/cloudist/core_ext/module.rb
219
213
  - lib/cloudist/core_ext/object.rb
220
214
  - lib/cloudist/core_ext/string.rb
215
+ - lib/cloudist/encoding.rb
221
216
  - lib/cloudist/errors.rb
222
217
  - lib/cloudist/job.rb
223
218
  - lib/cloudist/listener.rb
219
+ - lib/cloudist/message.rb
220
+ - lib/cloudist/messaging.rb
224
221
  - lib/cloudist/payload.rb
222
+ - lib/cloudist/payload_old.rb
225
223
  - lib/cloudist/publisher.rb
224
+ - lib/cloudist/queue.rb
226
225
  - lib/cloudist/queues/basic_queue.rb
227
226
  - lib/cloudist/queues/job_queue.rb
228
227
  - lib/cloudist/queues/reply_queue.rb
229
228
  - lib/cloudist/request.rb
230
229
  - lib/cloudist/utils.rb
231
230
  - lib/cloudist/worker.rb
231
+ - lib/cloudist_old.rb
232
+ - lib/em/em_timer_utils.rb
233
+ - lib/em/iterator.rb
232
234
  - spec/cloudist/basic_queue_spec.rb
233
235
  - spec/cloudist/job_spec.rb
236
+ - spec/cloudist/message_spec.rb
237
+ - spec/cloudist/messaging_spec.rb
234
238
  - spec/cloudist/payload_spec.rb
239
+ - spec/cloudist/payload_spec_2_spec.rb
240
+ - spec/cloudist/queue_spec.rb
235
241
  - spec/cloudist/request_spec.rb
236
242
  - spec/cloudist/utils_spec.rb
237
243
  - spec/cloudist_spec.rb
238
244
  - spec/core_ext/string_spec.rb
239
245
  - spec/spec_helper.rb
246
+ - spec/support/amqp.rb
240
247
  has_rdoc: true
241
248
  homepage: http://github.com/ivanvanderbyl/cloudist
242
249
  licenses:
@@ -251,7 +258,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
251
258
  requirements:
252
259
  - - ">="
253
260
  - !ruby/object:Gem::Version
254
- hash: 3
261
+ hash: 599422849760493927
255
262
  segments:
256
263
  - 0
257
264
  version: "0"
@@ -260,28 +267,31 @@ required_rubygems_version: !ruby/object:Gem::Requirement
260
267
  requirements:
261
268
  - - ">="
262
269
  - !ruby/object:Gem::Version
263
- hash: 3
264
- segments:
265
- - 0
266
270
  version: "0"
267
271
  requirements: []
268
272
 
269
273
  rubyforge_project:
270
- rubygems_version: 1.3.7
274
+ rubygems_version: 1.6.2
271
275
  signing_key:
272
276
  specification_version: 3
273
277
  summary: Super fast job queue using AMQP
274
278
  test_files:
275
- - examples/extending_values.rb
279
+ - examples/amqp/amqp_consumer.rb
280
+ - examples/amqp/amqp_publisher.rb
276
281
  - examples/queue_message.rb
277
- - examples/sandwich_client.rb
282
+ - examples/sandwich_client_with_custom_listener.rb
278
283
  - examples/sandwich_worker.rb
279
284
  - examples/sandwich_worker_with_class.rb
280
285
  - spec/cloudist/basic_queue_spec.rb
281
286
  - spec/cloudist/job_spec.rb
287
+ - spec/cloudist/message_spec.rb
288
+ - spec/cloudist/messaging_spec.rb
282
289
  - spec/cloudist/payload_spec.rb
290
+ - spec/cloudist/payload_spec_2_spec.rb
291
+ - spec/cloudist/queue_spec.rb
283
292
  - spec/cloudist/request_spec.rb
284
293
  - spec/cloudist/utils_spec.rb
285
294
  - spec/cloudist_spec.rb
286
295
  - spec/core_ext/string_spec.rb
287
296
  - spec/spec_helper.rb
297
+ - spec/support/amqp.rb