batsir 0.1.0 → 0.3.7

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.
Files changed (63) hide show
  1. data/.travis.yml +9 -1
  2. data/CHANGES.md +54 -0
  3. data/Gemfile +7 -10
  4. data/README.md +49 -5
  5. data/Rakefile +23 -16
  6. data/batsir.gemspec +43 -15
  7. data/lib/batsir/acceptors/acceptor.rb +31 -5
  8. data/lib/batsir/acceptors/amqp_acceptor.rb +36 -8
  9. data/lib/batsir/amqp.rb +35 -7
  10. data/lib/batsir/amqp_consumer.rb +8 -0
  11. data/lib/batsir/compiler/stage_worker_compiler.rb +86 -0
  12. data/lib/batsir/config.rb +208 -24
  13. data/lib/batsir/dsl/conditional_notifier_declaration.rb +31 -0
  14. data/lib/batsir/dsl/dsl_mappings.rb +27 -2
  15. data/lib/batsir/errors.rb +18 -0
  16. data/lib/batsir/filter.rb +5 -0
  17. data/lib/batsir/log.rb +7 -0
  18. data/lib/batsir/logger.rb +37 -0
  19. data/lib/batsir/logo.rb +3 -8
  20. data/lib/batsir/notifiers/amqp_notifier.rb +14 -4
  21. data/lib/batsir/notifiers/conditional_notifier.rb +29 -0
  22. data/lib/batsir/notifiers/notifier.rb +6 -5
  23. data/lib/batsir/registry.rb +6 -2
  24. data/lib/batsir/stage.rb +9 -4
  25. data/lib/batsir/stage_worker.rb +3 -56
  26. data/lib/batsir/strategies/retry_strategy.rb +35 -0
  27. data/lib/batsir/strategies/strategy.rb +20 -0
  28. data/lib/batsir/transformers/field_transformer.rb +2 -3
  29. data/lib/batsir/transformers/json_input_transformer.rb +6 -2
  30. data/lib/batsir/transformers/json_output_transformer.rb +6 -2
  31. data/lib/batsir/transformers/transformer.rb +5 -1
  32. data/lib/batsir/version.rb +10 -0
  33. data/lib/batsir.rb +31 -13
  34. data/spec/batsir/acceptors/acceptor_spec.rb +7 -78
  35. data/spec/batsir/acceptors/amqp_acceptor_spec.rb +55 -66
  36. data/spec/batsir/acceptors/shared_examples.rb +102 -0
  37. data/spec/batsir/amqp_spec.rb +58 -0
  38. data/spec/batsir/chain_spec.rb +4 -4
  39. data/spec/batsir/config_spec.rb +97 -0
  40. data/spec/batsir/dsl/chain_mapping_spec.rb +5 -6
  41. data/spec/batsir/dsl/conditional_notifier_mapping_spec.rb +80 -0
  42. data/spec/batsir/dsl/stage_mapping_spec.rb +38 -20
  43. data/spec/batsir/filter_queue_spec.rb +9 -15
  44. data/spec/batsir/filter_spec.rb +4 -5
  45. data/spec/batsir/log_spec.rb +10 -0
  46. data/spec/batsir/logger_spec.rb +46 -0
  47. data/spec/batsir/notifiers/amqp_notifier_spec.rb +43 -22
  48. data/spec/batsir/notifiers/conditional_notifier_spec.rb +62 -0
  49. data/spec/batsir/notifiers/notifier_spec.rb +4 -66
  50. data/spec/batsir/notifiers/shared_examples.rb +100 -0
  51. data/spec/batsir/registry_spec.rb +48 -0
  52. data/spec/batsir/stage_spec.rb +91 -85
  53. data/spec/batsir/stage_worker_spec.rb +13 -13
  54. data/spec/batsir/strategies/retry_strategy_spec.rb +58 -0
  55. data/spec/batsir/strategies/strategy_spec.rb +28 -0
  56. data/spec/batsir/support/bunny_mocks.rb +78 -5
  57. data/spec/batsir/transformers/field_transformer_spec.rb +22 -22
  58. data/spec/batsir/transformers/json_input_transformer_spec.rb +8 -3
  59. data/spec/batsir/transformers/json_output_transformer_spec.rb +2 -2
  60. data/spec/batsir/transformers/transformer_spec.rb +18 -4
  61. data/spec/spec_helper.rb +6 -2
  62. metadata +78 -23
  63. data/VERSION +0 -1
@@ -0,0 +1,28 @@
1
+ require File.join( File.dirname(__FILE__), "..", "..", "spec_helper" )
2
+
3
+ describe Batsir::Strategies::Strategy do
4
+ let( :strategy_class ) {
5
+ Batsir::Strategies::Strategy
6
+ }
7
+
8
+ class MockContext
9
+ def execute(message)
10
+ end
11
+ end
12
+
13
+ class DefunctMockContext; end
14
+
15
+ it 'has an #execute method' do
16
+ strategy_class.instance_methods.map{|im| im.to_s}.should include "execute"
17
+ end
18
+
19
+ it 'has an accessable context' do
20
+ c = MockContext.new
21
+ strategy_class.new(c).context.should == c
22
+ end
23
+
24
+ it 'detects an incorrect context object being passed' do
25
+ c = DefunctMockContext.new
26
+ lambda{strategy_class.new(c)}.should raise_error Batsir::Errors::ExecuteMethodNotImplementedError
27
+ end
28
+ end
@@ -8,9 +8,22 @@ module Bunny
8
8
  yield @instance
9
9
  end
10
10
 
11
+ def self.new(options = {})
12
+ @instance = BunnyInstance.new(options)
13
+ @instance
14
+ end
15
+
16
+ class Consumer
17
+ def initialize(channel, queue, consumer_tag = 'test', no_ack = true, exclusive = false, arguments = {})
18
+ @channel = channel
19
+ @queue = queue
20
+ end
21
+ end
22
+
11
23
  class BunnyInstance
12
24
  attr_accessor :queues
13
25
  attr_accessor :options
26
+ attr_accessor :channel
14
27
  attr_accessor :exchange
15
28
 
16
29
  def initialize(options = {})
@@ -18,27 +31,66 @@ module Bunny
18
31
  @queues = {}
19
32
  end
20
33
 
34
+ def start
35
+ @channel = create_channel
36
+ self
37
+ end
38
+
21
39
  def exchange(exchange = nil)
22
- @exchange = BunnyExchange.new(exchange) if exchange
40
+ @exchange = BunnyExchange.new(self, exchange) if exchange
23
41
  @exchange
24
42
  end
25
43
 
26
- def queue(queue)
44
+ def queue(queue, options = {})
27
45
  @queues[queue] = BunnyQueue.new
28
46
  end
47
+
48
+ def create_channel
49
+ self
50
+ end
51
+
52
+ def connection
53
+ self
54
+ end
55
+
56
+ def host
57
+ @options[:host]
58
+ end
59
+
60
+ def port
61
+ @options[:port]
62
+ end
63
+
64
+ def user
65
+ @options[:user]
66
+ end
67
+
68
+ def pass
69
+ @options[:pass]
70
+ end
71
+
72
+ def vhost
73
+ @options[:vhost]
74
+ end
75
+
76
+ def number
77
+ 1
78
+ end
29
79
  end
30
80
 
31
81
  class BunnyExchange
32
82
  attr_accessor :name
33
83
  attr_accessor :key
34
84
  attr_accessor :message
85
+ attr_accessor :channel
35
86
 
36
- def initialize(name)
87
+ def initialize(channel, name)
88
+ @channel = channel
37
89
  @name = name
38
90
  end
39
91
 
40
92
  def publish(message, options = {})
41
- @key = options[:key]
93
+ @key = options[:routing_key] || options[:key]
42
94
  @message = message
43
95
  end
44
96
  end
@@ -48,15 +100,36 @@ module Bunny
48
100
  attr_accessor :block
49
101
  attr_accessor :bound_exchange
50
102
  attr_accessor :bound_key
103
+ attr_accessor :consumer
104
+
105
+ def initialize
106
+ @bindings = []
107
+ end
51
108
 
52
109
  def bind(exchange, options)
53
110
  @bound_exchange = exchange
54
- @bound_key = options[:key]
111
+
112
+ @bound_key = options[:routing_key] || options[:key]
113
+ @bindings << {:exchange => @bound_exchange.name, :routing_key => @bound_key}
55
114
  end
56
115
 
57
116
  def subscribe(*args, &block)
58
117
  @arguments = *args
59
118
  @block = block
60
119
  end
120
+
121
+ def subscribe_with(consumer, opts = {:block => false})
122
+ @block ||= opts[:block]
123
+ @consumer = consumer
124
+ @consumer
125
+ end
126
+
127
+ def name
128
+ @bound_key
129
+ end
130
+
131
+ def channel
132
+ @bound_exchange.channel
133
+ end
61
134
  end
62
135
  end
@@ -5,51 +5,52 @@ describe Batsir::Transformers::FieldTransformer do
5
5
  Batsir::Transformers::FieldTransformer
6
6
  end
7
7
 
8
- it "should accept an options hash in its initializer" do
8
+ it "accepts an options hash in its initializer" do
9
9
  transformer_instance = transformer_class.new( {} )
10
10
  transformer_instance.should_not be_nil
11
11
  transformer_instance.should be_a transformer_class
12
12
  end
13
13
 
14
- it "should be possible to set a field mapping using the 'fields' option" do
14
+ it "can set a field mapping using the 'fields' option" do
15
15
  field_mapping = {:foo => :bar}
16
16
  transformer = transformer_class.new( :fields => field_mapping )
17
17
  transformer.fields.should == field_mapping
18
18
  end
19
19
 
20
- it "should use the fields mapping given in an options hash to transform the message using #transform" do
21
- field_mapping = {:foo => :bar}
20
+ it "uses the fields mapping given in an options hash to transform the message using #transform" do
21
+ field_mapping = {:foo => 'bar'}
22
22
  transformer = transformer_class.new( :fields => field_mapping )
23
23
 
24
- message = {:bar => "bar"}
24
+ message = {'bar' => 123}
25
25
  transformed_message = transformer.transform(message)
26
- transformed_message.should have_key :foo
27
- transformed_message.should_not have_key :bar
28
- transformed_message[:foo].should == "bar"
26
+ transformed_message.should have_key 'foo'
27
+ transformed_message.should_not have_key :foo
28
+ transformed_message.should_not have_key 'bar'
29
+ transformed_message['foo'].should == 123
29
30
  end
30
31
 
31
- it "should be possible to use symbols and string based keys and values all the same" do
32
+ it "can use symbols and string based keys and values all the same" do
32
33
  field_mapping = {:foo => "bar", "john" => :doe}
33
34
  transformer = transformer_class.new( :fields => field_mapping )
34
35
 
35
36
  message = {:bar => "foo", "doe" => :john}
36
37
  transformed_message = transformer.transform(message)
37
- transformed_message[:foo].should == "foo"
38
- transformed_message[:john].should == :john
38
+ transformed_message['foo'].should == 'foo'
39
+ transformed_message['john'].should == :john
39
40
  end
40
41
 
41
- it "should remove options not in the fields option when a fields option is given" do
42
+ it "removes options not in the fields option when a fields option is given" do
42
43
  field_mapping = {:foo => :bar}
43
44
  transformer = transformer_class.new( :fields => field_mapping )
44
45
 
45
- message = {:bar => "bar", :john => :doe}
46
+ message = {'bar' => "bar", 'john' => :doe}
46
47
  transformed_message = transformer.transform(message)
47
- transformed_message.should have_key :foo
48
- transformed_message.should_not have_key :bar
49
- transformed_message.should_not have_key :john
48
+ transformed_message.should have_key 'foo'
49
+ transformed_message.should_not have_key 'bar'
50
+ transformed_message.should_not have_key 'john'
50
51
  end
51
52
 
52
- it "should not remove fields when no mapping is given" do
53
+ it "does not remove fields when no mapping is given, but enforces the no_symbol_keys principle" do
53
54
  transformer = transformer_class.new
54
55
 
55
56
  message = {:bar => "bar", :john => :doe}
@@ -58,16 +59,15 @@ describe Batsir::Transformers::FieldTransformer do
58
59
  transformed_message.should have_key :john
59
60
  end
60
61
 
61
- it "should correctly handle more complex field mapping" do
62
+ it "correctly handles more complex field mapping" do
62
63
  field_mapping = {:id => :old_id}
63
64
  transformer = transformer_class.new( :fields => field_mapping )
64
65
 
65
66
  message = {:id => 2, :old_id => 1, :john => :doe}
66
67
  transformed_message = transformer.transform(message)
67
68
 
68
- transformed_message.should have_key :id
69
- transformed_message.should_not have_key :old_id
70
- transformed_message.should_not have_key :john
69
+ transformed_message.should have_key 'id'
70
+ transformed_message.should_not have_key 'old_id'
71
+ transformed_message.should_not have_key 'john'
71
72
  end
72
-
73
73
  end
@@ -1,17 +1,17 @@
1
1
  require File.join( File.dirname(__FILE__), "..", "..", "spec_helper" )
2
2
 
3
3
  describe Batsir::Transformers::JSONInputTransformer do
4
- it "should be a Batsir::Transformers::Transformer" do
4
+ it "is a Batsir::Transformers::Transformer" do
5
5
  subject.should be_a Batsir::Transformers::Transformer
6
6
  end
7
7
 
8
- it "should transform the input to a ruby object" do
8
+ it "transforms the input to a ruby object" do
9
9
  some_json = '{"foo" : "bar"}'
10
10
  result = subject.transform(some_json)
11
11
  result.should be_a Hash
12
12
  end
13
13
 
14
- it "should transform the input using string names" do
14
+ it "transforms the input using string names" do
15
15
  some_json = '{"foo" : "bar"}'
16
16
  result = subject.transform(some_json)
17
17
 
@@ -19,4 +19,9 @@ describe Batsir::Transformers::JSONInputTransformer do
19
19
  result["foo"].should_not be_nil
20
20
  result["foo"].should == "bar"
21
21
  end
22
+
23
+ it "should throw a TransformError when the input is malformed" do
24
+ test = Batsir::Transformers::JSONInputTransformer.new
25
+ expect{ test.transform("1") }.to raise_error Batsir::Errors::TransformError
26
+ end
22
27
  end
@@ -1,11 +1,11 @@
1
1
  require File.join( File.dirname(__FILE__), "..", "..", "spec_helper" )
2
2
 
3
3
  describe Batsir::Transformers::JSONOutputTransformer do
4
- it "should be a Batsir::Transformers::Transformer" do
4
+ it "is a Batsir::Transformers::Transformer" do
5
5
  subject.should be_a Batsir::Transformers::Transformer
6
6
  end
7
7
 
8
- it "should transform a hash to a valid json hash" do
8
+ it "transforms a hash to a valid json hash" do
9
9
  some_hash = {:foo => :bar}
10
10
  some_hash.should be_a Hash
11
11
 
@@ -5,18 +5,32 @@ describe Batsir::Transformers::Transformer do
5
5
  Batsir::Transformers::Transformer
6
6
  end
7
7
 
8
- it "should accept an options hash in its initializer" do
8
+ it "accepts an options hash in its initialiser" do
9
9
  transformer_instance = transformer_class.new( {} )
10
10
  transformer_instance.should_not be_nil
11
11
  transformer_instance.should be_a transformer_class
12
12
  end
13
13
 
14
- it "should have a #transform method" do
14
+ it "has a #transform method" do
15
15
  transformer_class.instance_methods.map{|m| m.to_s}.should include "transform"
16
16
  end
17
17
 
18
- it "should return the message by default" do
18
+ it "has an #execute method" do
19
+ transformer_class.instance_methods.map{|m| m.to_s}.should include "execute"
20
+ end
21
+
22
+ it 'raises an error when the #execute method is not implemented' do
23
+ message = {:foo => :bar}
24
+ lambda{transformer_class.new.transform(message)}.should raise_error NotImplementedError
25
+ end
26
+
27
+ it "can transform the message" do
28
+ class Autobot < Batsir::Transformers::Transformer
29
+ def execute(message)
30
+ message = "transform"
31
+ end
32
+ end
19
33
  message = {:foo => :bar}
20
- transformer_class.new.transform(message).should == message
34
+ Autobot.new.transform(message).should == "transform"
21
35
  end
22
36
  end
data/spec/spec_helper.rb CHANGED
@@ -11,12 +11,16 @@ require 'rspec/core'
11
11
 
12
12
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
13
13
  $LOAD_PATH.unshift(File.dirname(__FILE__))
14
+
14
15
  require 'batsir'
15
16
  require 'batsir/support/mock_filters'
16
17
  require 'batsir/support/bunny_mocks'
17
18
  Celluloid.logger.level = Logger::ERROR
18
19
  RSpec.configure do |config|
19
- config.after(:each) do
20
- Celluloid.shutdown
20
+ config.before(:each) do
21
+ Celluloid.boot
21
22
  end
23
+ # config.after(:each) do
24
+ # Celluloid.shutdown
25
+ # end
22
26
  end
metadata CHANGED
@@ -1,15 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: batsir
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - J.W. Koelewijn
9
+ - Bram de Vries
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2012-06-28 00:00:00.000000000 Z
13
+ date: 2013-10-24 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: bundler
@@ -43,12 +44,28 @@ dependencies:
43
44
  - - ! '>='
44
45
  - !ruby/object:Gem::Version
45
46
  version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rdoc
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
46
63
  - !ruby/object:Gem::Dependency
47
64
  name: blockenspiel
48
65
  requirement: !ruby/object:Gem::Requirement
49
66
  none: false
50
67
  requirements:
51
- - - ~>
68
+ - - ! '>='
52
69
  - !ruby/object:Gem::Version
53
70
  version: 0.4.3
54
71
  type: :runtime
@@ -56,17 +73,33 @@ dependencies:
56
73
  version_requirements: !ruby/object:Gem::Requirement
57
74
  none: false
58
75
  requirements:
59
- - - ~>
76
+ - - ! '>='
60
77
  - !ruby/object:Gem::Version
61
78
  version: 0.4.3
62
79
  - !ruby/object:Gem::Dependency
63
80
  name: celluloid
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ version: 0.14.1
87
+ type: :runtime
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ version: 0.14.1
95
+ - !ruby/object:Gem::Dependency
96
+ name: sidekiq
64
97
  requirement: !ruby/object:Gem::Requirement
65
98
  none: false
66
99
  requirements:
67
100
  - - ! '>='
68
101
  - !ruby/object:Gem::Version
69
- version: '0'
102
+ version: 2.5.4
70
103
  type: :runtime
71
104
  prerelease: false
72
105
  version_requirements: !ruby/object:Gem::Requirement
@@ -74,9 +107,9 @@ dependencies:
74
107
  requirements:
75
108
  - - ! '>='
76
109
  - !ruby/object:Gem::Version
77
- version: '0'
110
+ version: 2.5.4
78
111
  - !ruby/object:Gem::Dependency
79
- name: sidekiq
112
+ name: bunny
80
113
  requirement: !ruby/object:Gem::Requirement
81
114
  none: false
82
115
  requirements:
@@ -92,7 +125,7 @@ dependencies:
92
125
  - !ruby/object:Gem::Version
93
126
  version: '0'
94
127
  - !ruby/object:Gem::Dependency
95
- name: bunny
128
+ name: json
96
129
  requirement: !ruby/object:Gem::Requirement
97
130
  none: false
98
131
  requirements:
@@ -108,7 +141,7 @@ dependencies:
108
141
  - !ruby/object:Gem::Version
109
142
  version: '0'
110
143
  - !ruby/object:Gem::Dependency
111
- name: json
144
+ name: log4r
112
145
  requirement: !ruby/object:Gem::Requirement
113
146
  none: false
114
147
  requirements:
@@ -124,64 +157,86 @@ dependencies:
124
157
  - !ruby/object:Gem::Version
125
158
  version: '0'
126
159
  description: ! "Batsir uses so called stages to define operation queues. These operation
127
- queus\n consist of several operations that will be executed one after the other.
128
- Each stage\n is defined by its name and the queue on which it will listen. Once
129
- a message is received\n on the queue, it is dispatched to a worker in a seperate
130
- thread that will pass the message\n to each operation in the operation queue.\n
131
- Operation queues can have 4 different operations, 1 common operation type, and 3
132
- special \n purpose operations: retrieval operations (which are always executed before
133
- all other operations),\n persistence operations (which are always executed after
134
- the common operations, but before the\n notification operations) and notification
135
- operations (which will always be executed last)\n This makes it possible to create
136
- chains of stages to perform tasks that depend on each\n other, but otherwise have
137
- a low coupling"
160
+ queues\n consist of several operations that will be executed one after the other.
161
+ Each stage\n is defined by its name and the queue on which it will listen. Once
162
+ a message is received\n on the queue, it is dispatched to a worker in a seperate
163
+ thread that will pass the message\n to each operation in the operation queue.\n
164
+ \ Operation queues can have 4 different operations, 1 common operation type, and
165
+ 3 special\n purpose operations: retrieval operations (which are always executed
166
+ before all other operations),\n persistence operations (which are always executed
167
+ after the common operations, but before the\n notification operations) and notification
168
+ operations (which will always be executed last)\n This makes it possible to create
169
+ chains of stages to perform tasks that depend on each\n other, but otherwise
170
+ have a low coupling"
138
171
  email: jwkoelewijn@gmail.com
139
172
  executables: []
140
173
  extensions: []
141
174
  extra_rdoc_files:
175
+ - CHANGES.md
142
176
  - LICENSE.txt
143
177
  - README.md
144
178
  files:
145
179
  - .document
146
180
  - .rspec
147
181
  - .travis.yml
182
+ - CHANGES.md
148
183
  - Gemfile
149
184
  - LICENSE.txt
150
185
  - README.md
151
186
  - Rakefile
152
- - VERSION
153
187
  - batsir.gemspec
154
188
  - batsir.png
155
189
  - lib/batsir.rb
156
190
  - lib/batsir/acceptors/acceptor.rb
157
191
  - lib/batsir/acceptors/amqp_acceptor.rb
158
192
  - lib/batsir/amqp.rb
193
+ - lib/batsir/amqp_consumer.rb
159
194
  - lib/batsir/chain.rb
195
+ - lib/batsir/compiler/stage_worker_compiler.rb
160
196
  - lib/batsir/config.rb
197
+ - lib/batsir/dsl/conditional_notifier_declaration.rb
161
198
  - lib/batsir/dsl/dsl_mappings.rb
199
+ - lib/batsir/errors.rb
162
200
  - lib/batsir/filter.rb
163
201
  - lib/batsir/filter_queue.rb
202
+ - lib/batsir/log.rb
203
+ - lib/batsir/logger.rb
164
204
  - lib/batsir/logo.rb
165
205
  - lib/batsir/notifiers/amqp_notifier.rb
206
+ - lib/batsir/notifiers/conditional_notifier.rb
166
207
  - lib/batsir/notifiers/notifier.rb
167
208
  - lib/batsir/registry.rb
168
209
  - lib/batsir/stage.rb
169
210
  - lib/batsir/stage_worker.rb
211
+ - lib/batsir/strategies/retry_strategy.rb
212
+ - lib/batsir/strategies/strategy.rb
170
213
  - lib/batsir/transformers/field_transformer.rb
171
214
  - lib/batsir/transformers/json_input_transformer.rb
172
215
  - lib/batsir/transformers/json_output_transformer.rb
173
216
  - lib/batsir/transformers/transformer.rb
217
+ - lib/batsir/version.rb
174
218
  - spec/batsir/acceptors/acceptor_spec.rb
175
219
  - spec/batsir/acceptors/amqp_acceptor_spec.rb
220
+ - spec/batsir/acceptors/shared_examples.rb
221
+ - spec/batsir/amqp_spec.rb
176
222
  - spec/batsir/chain_spec.rb
223
+ - spec/batsir/config_spec.rb
177
224
  - spec/batsir/dsl/chain_mapping_spec.rb
225
+ - spec/batsir/dsl/conditional_notifier_mapping_spec.rb
178
226
  - spec/batsir/dsl/stage_mapping_spec.rb
179
227
  - spec/batsir/filter_queue_spec.rb
180
228
  - spec/batsir/filter_spec.rb
229
+ - spec/batsir/log_spec.rb
230
+ - spec/batsir/logger_spec.rb
181
231
  - spec/batsir/notifiers/amqp_notifier_spec.rb
232
+ - spec/batsir/notifiers/conditional_notifier_spec.rb
182
233
  - spec/batsir/notifiers/notifier_spec.rb
234
+ - spec/batsir/notifiers/shared_examples.rb
235
+ - spec/batsir/registry_spec.rb
183
236
  - spec/batsir/stage_spec.rb
184
237
  - spec/batsir/stage_worker_spec.rb
238
+ - spec/batsir/strategies/retry_strategy_spec.rb
239
+ - spec/batsir/strategies/strategy_spec.rb
185
240
  - spec/batsir/support/bunny_mocks.rb
186
241
  - spec/batsir/support/mock_filters.rb
187
242
  - spec/batsir/transformers/field_transformer_spec.rb
@@ -204,7 +259,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
204
259
  version: '0'
205
260
  segments:
206
261
  - 0
207
- hash: -1524934688976294279
262
+ hash: 3965214533793542389
208
263
  required_rubygems_version: !ruby/object:Gem::Requirement
209
264
  none: false
210
265
  requirements:
@@ -213,7 +268,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
213
268
  version: '0'
214
269
  requirements: []
215
270
  rubyforge_project:
216
- rubygems_version: 1.8.22
271
+ rubygems_version: 1.8.25
217
272
  signing_key:
218
273
  specification_version: 3
219
274
  summary: Batsir is an execution platform for stage based operation queue execution
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.1.0