sequential_workflow 0.0.1 → 0.0.2

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: 2d655e8e4f4a46d640951b35991405d24578c38a
4
- data.tar.gz: 2acf79cab5dabad15cc541a47098e40c50a96e0e
3
+ metadata.gz: 59069b5d84ad67d94e866286f7b3d7e3ece8e9ef
4
+ data.tar.gz: 07fc3687a3b58bd9c56eb749e3ec529fcf98c64e
5
5
  SHA512:
6
- metadata.gz: 13df4c3f8732cc8843acb508b1a7fb6fe05684e5eb0ec3449ae41ccb92c35ff84b08695a1b6b317338a4961145bdeb9efcf9e14b533e7ba36feaf8c9dd8080ec
7
- data.tar.gz: d305a9e08b9e54b90e6a9cabb270e06924633cf595130507163ada8e2c862da5ba7fce81a0512e320e09d21948406f656853b46a3ce6bc91bbcb41edd9dce4db
6
+ metadata.gz: 19ab3a2c08f94285e9a8f511be12b12f21961141067d419464094b66bdf2a8e96eedf40f0c61a25fec341a938ba5783f2fd646499d702d4a893009497095d61e
7
+ data.tar.gz: 85eedbf201a11ebf9624e2a3750f4131f5e5fb3583968bdc715325dc442775d330d4c4093615cf987bd9643c3dde16ff2c151c99c9110850a963ca86e643d79c
@@ -1,3 +1,3 @@
1
1
  module SequentialWorkflow
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -11,6 +11,10 @@ module SequentialWorkflow
11
11
  reject(e)
12
12
  end
13
13
 
14
+ def catch(catch_with)
15
+ method(catch_with).call
16
+ end
17
+
14
18
  def then(on_success, rescue_with)
15
19
  case workflow_state
16
20
  when :fulfilled
@@ -18,8 +22,6 @@ module SequentialWorkflow
18
22
  fulfill result
19
23
  when :rejected
20
24
  method(rescue_with).call(@reason)
21
- fail
22
- when :failed
23
25
  self
24
26
  end
25
27
  rescue => e
@@ -38,10 +40,5 @@ module SequentialWorkflow
38
40
  self
39
41
  end
40
42
 
41
- def fail
42
- @workflow_state = :failed
43
- self
44
- end
45
-
46
43
  alias_method :end_with, :then
47
44
  end
@@ -5,8 +5,9 @@ RSpec.describe 'SequentialWorkflow' do
5
5
 
6
6
  def execute_workflow
7
7
  start(:bar)
8
- .then(:first_method, :handle_previous_error)
8
+ .then(:first_method, nil)
9
9
  .then(:second_method, :handle_previous_error)
10
+ .catch(:catch_method)
10
11
  end
11
12
 
12
13
  def bar
@@ -20,6 +21,9 @@ RSpec.describe 'SequentialWorkflow' do
20
21
 
21
22
  def handle_previous_error(e)
22
23
  end
24
+
25
+ def catch_method
26
+ end
23
27
  end
24
28
 
25
29
  let(:foo) { Foo.new }
@@ -55,7 +59,7 @@ RSpec.describe 'SequentialWorkflow' do
55
59
 
56
60
  it 'sets #workflow_state to :rejected' do
57
61
  foo.execute_workflow
58
- expect(foo.workflow_state).to eq :failed
62
+ expect(foo.workflow_state).to eq :rejected
59
63
  end
60
64
 
61
65
  it "doesn't call subsequent methods" do
@@ -64,5 +68,11 @@ RSpec.describe 'SequentialWorkflow' do
64
68
  end
65
69
  end
66
70
 
71
+ describe '#catch' do
72
+ it 'runs if :rejected' do
73
+ foo.execute_workflow
74
+ expect(foo).not_to receive(:catch_method)
75
+ end
76
+ end
67
77
  end
68
78
  end
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequential_workflow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dinshaw
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-17 00:00:00.000000000 Z
11
+ date: 2014-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
- requirement: !ruby/object:Gem::Requirement
15
+ version_requirements: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.7'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
20
+ requirement: !ruby/object:Gem::Requirement
23
21
  requirements:
24
- - - "~>"
22
+ - - ~>
25
23
  - !ruby/object:Gem::Version
26
24
  version: '1.7'
25
+ prerelease: false
26
+ type: :development
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
- requirement: !ruby/object:Gem::Requirement
29
+ version_requirements: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '10.0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
34
+ requirement: !ruby/object:Gem::Requirement
37
35
  requirements:
38
- - - "~>"
36
+ - - ~>
39
37
  - !ruby/object:Gem::Version
40
38
  version: '10.0'
39
+ prerelease: false
40
+ type: :development
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
- requirement: !ruby/object:Gem::Requirement
43
+ version_requirements: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '3.0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
51
49
  requirements:
52
- - - "~>"
50
+ - - ~>
53
51
  - !ruby/object:Gem::Version
54
52
  version: '3.0'
53
+ prerelease: false
54
+ type: :development
55
55
  description: Manage sequential work-flows.
56
56
  email:
57
57
  - gobhai@gmail.com
@@ -59,7 +59,7 @@ executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
- - ".gitignore"
62
+ - .gitignore
63
63
  - Gemfile
64
64
  - LICENSE.txt
65
65
  - README.md
@@ -72,24 +72,24 @@ homepage: ''
72
72
  licenses:
73
73
  - MIT
74
74
  metadata: {}
75
- post_install_message:
75
+ post_install_message:
76
76
  rdoc_options: []
77
77
  require_paths:
78
78
  - lib
79
79
  required_ruby_version: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ">="
81
+ - - '>='
82
82
  - !ruby/object:Gem::Version
83
83
  version: '0'
84
84
  required_rubygems_version: !ruby/object:Gem::Requirement
85
85
  requirements:
86
- - - ">="
86
+ - - '>='
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
89
  requirements: []
90
- rubyforge_project:
91
- rubygems_version: 2.2.2
92
- signing_key:
90
+ rubyforge_project:
91
+ rubygems_version: 2.1.9
92
+ signing_key:
93
93
  specification_version: 4
94
94
  summary: Partial implementation of the Promise pattern.
95
95
  test_files: