queueing_rabbit 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -54,6 +54,9 @@ module QueueingRabbit
54
54
  QueueingRabbit.trigger_event(:event_machine_started)
55
55
  end
56
56
  end
57
+
58
+ # Block the control process while EM is starting up
59
+ sleep 0.5
57
60
  end
58
61
 
59
62
  def self.join_event_machine_thread
@@ -1,3 +1,3 @@
1
1
  module QueueingRabbit
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -23,8 +23,9 @@ module QueueingRabbit
23
23
  end
24
24
 
25
25
  def work!
26
- work
27
- QueueingRabbit::Client::AMQP.join_event_machine_thread
26
+ EM.run do
27
+ work
28
+ end
28
29
  end
29
30
 
30
31
  def use_pidfile(filename)
@@ -40,7 +40,7 @@ describe "Asynchronous publishing and consuming example" do
40
40
  end
41
41
  }
42
42
 
43
- done(2.5) { queue_size.should == 0 }
43
+ done(3.0) { queue_size.should == 0 }
44
44
  }
45
45
  end
46
46
 
@@ -88,8 +88,7 @@ describe QueueingRabbit::Worker do
88
88
 
89
89
  describe '#work!' do
90
90
  before do
91
- QueueingRabbit::Client::AMQP.
92
- should_receive(:join_event_machine_thread)
91
+ EM.should_receive(:run).and_yield
93
92
  end
94
93
 
95
94
  it 'runs #work and joins the eventmachine thread' do
metadata CHANGED
@@ -1,95 +1,104 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: queueing_rabbit
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 0
10
- version: 0.1.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Artem Chistyakov
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2013-03-22 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2013-03-22 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: amqp
22
- prerelease: false
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 0.9.0
23
22
  type: :runtime
24
- version_requirements: &id001 !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
25
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 59
30
- segments:
31
- - 0
32
- - 9
33
- - 0
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
34
29
  version: 0.9.0
35
- requirement: *id001
36
- - !ruby/object:Gem::Dependency
30
+ - !ruby/object:Gem::Dependency
37
31
  name: bunny
38
- prerelease: false
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 0.9.0.pre7
39
38
  type: :runtime
40
- version_requirements: &id002 !ruby/object:Gem::Requirement
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
41
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: -3596857410
46
- segments:
47
- - 0
48
- - 9
49
- - 0
50
- - pre
51
- - 7
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
52
45
  version: 0.9.0.pre7
53
- requirement: *id002
54
- - !ruby/object:Gem::Dependency
46
+ - !ruby/object:Gem::Dependency
55
47
  name: rake
56
- prerelease: false
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
57
54
  type: :runtime
58
- version_requirements: &id003 !ruby/object:Gem::Requirement
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
59
57
  none: false
60
- requirements:
61
- - - ">="
62
- - !ruby/object:Gem::Version
63
- hash: 3
64
- segments:
65
- - 0
66
- version: "0"
67
- requirement: *id003
68
- - !ruby/object:Gem::Dependency
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
69
63
  name: json
70
- prerelease: false
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
71
70
  type: :runtime
72
- version_requirements: &id004 !ruby/object:Gem::Requirement
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
73
  none: false
74
- requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- hash: 3
78
- segments:
79
- - 0
80
- version: "0"
81
- requirement: *id004
82
- description: " QueueingRabbit is a Ruby library providing convenient object-oriented syntax\n for managing background jobs using AMQP. All jobs' argumets are serialized\n to JSON and transfered to jobs using AMQP message payload. The library\n implements amqp and bunny gems as adapters making it possible to use\n synchronous publishing and asynchronous consuming, which might be useful for\n Rails app running on non-EventMachine based application servers (i. e.\n Passenger).\n\n Any Ruby class or Module can be transformed into QueueingRabbit's background\n job by including QueueingRabbit::Job module. It is also possible to inherit\n your class from QueueingRabbit::AbstractJob abstract class.\n\n The library is bundled with a Rake task which is capable of starting a\n worker processing a specified list of jobs.\n\n To achieve the required simplicity the gem doesn't try to support all\n features of AMQP protocol. It uses a restricted subset instead:\n\n * Only a single direct exchange is used\n * Every job is consumed using a separate channel\n * All jobs are consumed with acknowledgements\n * ACK is only sent to the broker if a job was processed successfully\n * Currently all messages are published with persistent option\n"
83
- email:
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ description: ! " QueueingRabbit is a Ruby library providing convenient object-oriented
79
+ syntax\n for managing background jobs using AMQP. All jobs' argumets are serialized\n
80
+ \ to JSON and transfered to jobs using AMQP message payload. The library\n implements
81
+ amqp and bunny gems as adapters making it possible to use\n synchronous publishing
82
+ and asynchronous consuming, which might be useful for\n Rails app running on
83
+ non-EventMachine based application servers (i. e.\n Passenger).\n\n Any Ruby
84
+ class or Module can be transformed into QueueingRabbit's background\n job by
85
+ including QueueingRabbit::Job module. It is also possible to inherit\n your class
86
+ from QueueingRabbit::AbstractJob abstract class.\n\n The library is bundled with
87
+ a Rake task which is capable of starting a\n worker processing a specified list
88
+ of jobs.\n\n To achieve the required simplicity the gem doesn't try to support
89
+ all\n features of AMQP protocol. It uses a restricted subset instead:\n\n *
90
+ Only a single direct exchange is used\n * Every job is consumed using a separate
91
+ channel\n * All jobs are consumed with acknowledgements\n * ACK is only sent
92
+ to the broker if a job was processed successfully\n * Currently all messages
93
+ are published with persistent option\n"
94
+ email:
84
95
  - chistyakov.artem@gmail.com
85
96
  executables: []
86
-
87
97
  extensions: []
88
-
89
- extra_rdoc_files:
98
+ extra_rdoc_files:
90
99
  - LICENSE
91
100
  - README.md
92
- files:
101
+ files:
93
102
  - .gitignore
94
103
  - .rvmrc
95
104
  - .travis.yml
@@ -131,38 +140,36 @@ files:
131
140
  - spec/unit/queueing_rabbit_spec.rb
132
141
  homepage: https://github.com/temochka/queueing_rabbit
133
142
  licenses: []
134
-
135
143
  post_install_message:
136
- rdoc_options:
144
+ rdoc_options:
137
145
  - --charset=UTF-8
138
- require_paths:
146
+ require_paths:
139
147
  - lib
140
- required_ruby_version: !ruby/object:Gem::Requirement
148
+ required_ruby_version: !ruby/object:Gem::Requirement
141
149
  none: false
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- hash: 3
146
- segments:
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ segments:
147
155
  - 0
148
- version: "0"
149
- required_rubygems_version: !ruby/object:Gem::Requirement
156
+ hash: 4549414432260122412
157
+ required_rubygems_version: !ruby/object:Gem::Requirement
150
158
  none: false
151
- requirements:
152
- - - ">="
153
- - !ruby/object:Gem::Version
154
- hash: 3
155
- segments:
159
+ requirements:
160
+ - - ! '>='
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
163
+ segments:
156
164
  - 0
157
- version: "0"
165
+ hash: 4549414432260122412
158
166
  requirements: []
159
-
160
167
  rubyforge_project:
161
- rubygems_version: 1.8.24
168
+ rubygems_version: 1.8.25
162
169
  signing_key:
163
170
  specification_version: 3
164
171
  summary: QueueingRabbit is an AMQP-based queueing system
165
- test_files:
172
+ test_files:
166
173
  - spec/integration/asynchronous_publishing_and_consuming_spec.rb
167
174
  - spec/integration/jobs/print_line_job.rb
168
175
  - spec/integration/synchronous_publishing_and_asynchronous_consuming_spec.rb