business_flow 0.4.0 → 0.4.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1a7e45240693906221c1e55e093c0588274746f0
4
- data.tar.gz: 4b2191aaf8e84752f4183f9ea89ce5fe1299ddda
3
+ metadata.gz: 92d2304397a649b2a73fa73a937fd8742034e432
4
+ data.tar.gz: 5d3c9f9a9cd0aa1cb2ea27eb49f73e67083f8e30
5
5
  SHA512:
6
- metadata.gz: 2907e0e9d8139972e810c667ce65a6dedbc4e95a5a069e16f40a59ba12dd1c808cfb77fe572089375b92a3c22c94bebe42f9dc8dfadea480938410049c092c22
7
- data.tar.gz: aea9b30bd764f0ae977381ab77cf1b5d1c1d91e873ff8d6fe7ed57657d566d2bc5f94e68641fbcc84a09a1c5bf90cab447bca74e85950af147a7b99eb577732e
6
+ metadata.gz: e7ac218850f590644168ffdbf3eacbdc46c801e80ec5d6a212c327dd7a8394183e73f8dbd2e6a3f4b14d49e01acff029332c9bb38060509c7dd11318f6cb9a10
7
+ data.tar.gz: 6ab08a2fc63d6b3ed44680732bd7b18eddc29e7315e6224b8fe64c90925a377032d4988cf9a06555064afe6a2fe2d09360dc08270675d8e9c8f9b9eea14fcc0d
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- business_flow (0.3.0)
4
+ business_flow (0.4.0)
5
5
  activemodel (>= 3.0)
6
6
  activesupport (>= 3.0)
7
7
 
@@ -9,17 +9,27 @@ module BusinessFlow
9
9
  end
10
10
 
11
11
  def call
12
- @step_queue.each do |step|
13
- catch(:halt_step) { process_step(step) }
14
- break if @flow.errors.any?
12
+ ActiveSupport::Notifications.instrument(flow_name, flow: @flow) do
13
+ @step_queue.each do |step|
14
+ break unless process_step(step)
15
+ end
15
16
  end
16
17
  end
17
18
 
18
19
  protected
19
20
 
20
21
  def process_step(step)
22
+ catch(:halt_step) { execute_step(step) }
23
+ return true if @flow.errors.blank?
24
+ ActiveSupport::Notifications.publish(
25
+ event_name(step) + '.error', step: step, flow: @flow
26
+ )
27
+ false
28
+ end
29
+
30
+ def execute_step(step)
21
31
  ActiveSupport::Notifications.instrument(
22
- event_name(step), flow: @flow
32
+ event_name(step), flow: @flow, step: step
23
33
  ) do |payload|
24
34
  payload[:step_result] = result = step.call(@flow)
25
35
  result.merge_into(@flow)
@@ -27,6 +37,10 @@ module BusinessFlow
27
37
  end
28
38
  end
29
39
 
40
+ def flow_name
41
+ "business_flow.flow.#{@flow.class.to_s.underscore}"
42
+ end
43
+
30
44
  def event_name(step)
31
45
  "business_flow.step.#{@flow.class.to_s.underscore}. " \
32
46
  "#{step.to_s.underscore}"
@@ -1,3 +1,3 @@
1
1
  module BusinessFlow
2
- VERSION = '0.4.0'.freeze
2
+ VERSION = '0.4.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: business_flow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Scarborough