proletariat 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,83 @@
1
+ require 'proletariat/worker'
2
+
3
+ module Proletariat
4
+ describe Worker do
5
+ let(:logger) { double }
6
+
7
+ before do
8
+ allow(Proletariat).to receive(:logger).and_return(logger)
9
+ end
10
+
11
+ describe '#started' do
12
+ it 'should log status' do
13
+ expect(logger).to receive(:info).with /online/
14
+ Worker.new.started
15
+ end
16
+ end
17
+
18
+ describe '#stopped' do
19
+ it 'should log status' do
20
+ expect(logger).to receive(:info).with /offline/
21
+ Worker.new.stopped
22
+ end
23
+ end
24
+
25
+ describe '#stopping' do
26
+ it 'should log status' do
27
+ expect(logger).to receive(:info).with /graceful shutdown/
28
+ Worker.new.stopping
29
+ end
30
+ end
31
+
32
+ describe '#work' do
33
+ it 'should raise NotImplementedError' do
34
+ expect { Worker.new.work('message') }.to \
35
+ raise_exception NotImplementedError
36
+ end
37
+ end
38
+
39
+ describe '#log' do
40
+ context 'when message is provided' do
41
+ it 'should log the message directly' do
42
+ expect(logger).to receive(:info).with 'message to log'
43
+ Worker.new.log 'message to log'
44
+ end
45
+ end
46
+
47
+ context 'when no message is provided' do
48
+ it 'should return the logger instance' do
49
+ expect(Worker.new.log).to eq logger
50
+ end
51
+ end
52
+ end
53
+
54
+ describe '#publish' do
55
+ it 'should forward the message to the publisher' do
56
+ expect(Proletariat).to receive(:publish).with('topic', 'message')
57
+ Worker.new.publish 'topic', 'message'
58
+ end
59
+
60
+ it 'should have a blank default message' do
61
+ expect(Proletariat).to receive(:publish).with('topic', '')
62
+ Worker.new.publish 'topic'
63
+ end
64
+ end
65
+
66
+ describe '.listen_on' do
67
+ it 'should add the given keys to routing_keys' do
68
+ Worker.listen_on 'topic1', 'topic2'
69
+ expect(Worker.routing_keys).to eq %w(topic1 topic2)
70
+ end
71
+ end
72
+
73
+ describe '.routing_keys' do
74
+ before do
75
+ Worker.instance_variable_set :@routing_keys, nil
76
+ end
77
+
78
+ it 'should return an empty array by default' do
79
+ expect(Worker.routing_keys).to eq []
80
+ end
81
+ end
82
+ end
83
+ end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: proletariat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
5
- prerelease:
4
+ version: 0.0.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Sebastian Edwards
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-01-18 00:00:00.000000000 Z
11
+ date: 2014-01-25 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - '='
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - '='
28
25
  - !ruby/object:Gem::Version
@@ -30,49 +27,43 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rubocop
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: concurrent-ruby
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ~>
45
+ - - "~>"
52
46
  - !ruby/object:Gem::Version
53
47
  version: 0.4.0
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ~>
52
+ - - "~>"
60
53
  - !ruby/object:Gem::Version
61
54
  version: 0.4.0
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: bunny
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ~>
59
+ - - "~>"
68
60
  - !ruby/object:Gem::Version
69
61
  version: 1.1.0
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ~>
66
+ - - "~>"
76
67
  - !ruby/object:Gem::Version
77
68
  version: 1.1.0
78
69
  description: Lightweight background processing powered by RabbitMQ
@@ -82,8 +73,9 @@ executables: []
82
73
  extensions: []
83
74
  extra_rdoc_files: []
84
75
  files:
85
- - .gitignore
86
- - .rspec
76
+ - ".gitignore"
77
+ - ".rspec"
78
+ - ".rubocop.yml"
87
79
  - CHANGELOG.md
88
80
  - Gemfile
89
81
  - LICENSE
@@ -91,6 +83,9 @@ files:
91
83
  - Rakefile
92
84
  - lib/proletariat.rb
93
85
  - lib/proletariat/concerns/logging.rb
86
+ - lib/proletariat/concurrency/actor.rb
87
+ - lib/proletariat/concurrency/supervisor.rb
88
+ - lib/proletariat/configuration.rb
94
89
  - lib/proletariat/cucumber.rb
95
90
  - lib/proletariat/manager.rb
96
91
  - lib/proletariat/publisher.rb
@@ -102,33 +97,47 @@ files:
102
97
  - lib/proletariat/testing/expectation.rb
103
98
  - lib/proletariat/testing/expectation_guarantor.rb
104
99
  - lib/proletariat/testing/fixnum_extension.rb
100
+ - lib/proletariat/util/worker_description_parser.rb
105
101
  - lib/proletariat/version.rb
106
102
  - lib/proletariat/worker.rb
107
103
  - proletariat.gemspec
104
+ - spec/lib/configuration_spec.rb
108
105
  - spec/lib/proletariat_spec.rb
106
+ - spec/lib/publisher_spec.rb
107
+ - spec/lib/queue_config_spec.rb
108
+ - spec/lib/testing/expectation_guarantor_spec.rb
109
+ - spec/lib/testing/expectation_spec.rb
110
+ - spec/lib/util/worker_description_parser_spec.rb
111
+ - spec/lib/worker_spec.rb
109
112
  homepage: https://github.com/SebastianEdwards/proletariat
110
113
  licenses: []
114
+ metadata: {}
111
115
  post_install_message:
112
116
  rdoc_options: []
113
117
  require_paths:
114
118
  - lib
115
119
  required_ruby_version: !ruby/object:Gem::Requirement
116
- none: false
117
120
  requirements:
118
- - - ! '>='
121
+ - - ">="
119
122
  - !ruby/object:Gem::Version
120
123
  version: '0'
121
124
  required_rubygems_version: !ruby/object:Gem::Requirement
122
- none: false
123
125
  requirements:
124
- - - ! '>='
126
+ - - ">="
125
127
  - !ruby/object:Gem::Version
126
128
  version: '0'
127
129
  requirements: []
128
130
  rubyforge_project:
129
- rubygems_version: 1.8.25
131
+ rubygems_version: 2.2.0
130
132
  signing_key:
131
- specification_version: 3
133
+ specification_version: 4
132
134
  summary: Lightweight background processing powered by RabbitMQ
133
135
  test_files:
136
+ - spec/lib/configuration_spec.rb
134
137
  - spec/lib/proletariat_spec.rb
138
+ - spec/lib/publisher_spec.rb
139
+ - spec/lib/queue_config_spec.rb
140
+ - spec/lib/testing/expectation_guarantor_spec.rb
141
+ - spec/lib/testing/expectation_spec.rb
142
+ - spec/lib/util/worker_description_parser_spec.rb
143
+ - spec/lib/worker_spec.rb