skywalker 1.2.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +6 -0
- data/examples/Gemfile.lock +7 -7
- data/lib/skywalker/command.rb +2 -2
- data/lib/skywalker/version.rb +1 -1
- data/spec/lib/skywalker/command_spec.rb +30 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 409bd338e84e6633417f194fe89fd1ea74b12fc5
|
4
|
+
data.tar.gz: 51beb6b911c2b142f74900bfa59420cca6b26848
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e237880ca6fc003a627c071922a3c345679f85f7db88b0026f3641c421b4feb8f703898134323c5e84b47164f028d07e1304fa2e7c1f180852a48d4b61b37520
|
7
|
+
data.tar.gz: 0a0de39ec25816c5272d0c15f56cfd973c532526de8d21b0799312b9d9e13d19aa53dce794784eb491d4fa7fe5453bc2398a3ccb207b5d839adf45fc50ba40ed
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
All commits by Rob Yurkowski unless otherwise noted.
|
2
2
|
|
3
|
+
## 1.2.1 (2014-11-23)
|
4
|
+
|
5
|
+
- Fix a bug where callbacks would be called even if they were nil.
|
6
|
+
|
7
|
+
## 1.2.0 (2014-11-16)
|
8
|
+
|
9
|
+
- Add `required_args`, which allows marking certain attributes as required at initialization. Defaults to an empty list.
|
10
|
+
- Add testing section of README.
|
11
|
+
- Add example files.
|
3
12
|
|
4
13
|
## 1.1.0 (2014-11-03)
|
5
14
|
|
data/README.md
CHANGED
@@ -241,6 +241,12 @@ command = AddGroupCommand.call(
|
|
241
241
|
|
242
242
|
You can pass any object responding to `#call` to the `on_success` and `on_failure` handlers, including procs, lambdas, controller methods, or other commands themselves.
|
243
243
|
|
244
|
+
### What happens when callbacks fail?
|
245
|
+
|
246
|
+
Exceptions thrown inside the success callbacks (`on_success` or your own callbacks defined in `run_success_callbacks`) will cause the command to fail and run the failure callbacks.
|
247
|
+
|
248
|
+
Exceptions thrown inside the failure callbacks (`on_failure` or your own callbacks defined in `run_failure_callbacks`) will not be caught and will bubble out of the command.
|
249
|
+
|
244
250
|
### Overriding Methods
|
245
251
|
|
246
252
|
The following methods are overridable for easy customization:
|
data/examples/Gemfile.lock
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ../
|
3
3
|
specs:
|
4
|
-
skywalker (1.
|
4
|
+
skywalker (1.2.1)
|
5
5
|
activerecord (~> 4.1)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
activemodel (4.1.
|
11
|
-
activesupport (= 4.1.
|
10
|
+
activemodel (4.1.8)
|
11
|
+
activesupport (= 4.1.8)
|
12
12
|
builder (~> 3.1)
|
13
|
-
activerecord (4.1.
|
14
|
-
activemodel (= 4.1.
|
15
|
-
activesupport (= 4.1.
|
13
|
+
activerecord (4.1.8)
|
14
|
+
activemodel (= 4.1.8)
|
15
|
+
activesupport (= 4.1.8)
|
16
16
|
arel (~> 5.0.0)
|
17
|
-
activesupport (4.1.
|
17
|
+
activesupport (4.1.8)
|
18
18
|
i18n (~> 0.6, >= 0.6.9)
|
19
19
|
json (~> 1.7, >= 1.7.7)
|
20
20
|
minitest (~> 5.1)
|
data/lib/skywalker/command.rb
CHANGED
@@ -101,7 +101,7 @@ module Skywalker
|
|
101
101
|
|
102
102
|
|
103
103
|
private def run_success_callbacks
|
104
|
-
on_success.call(self)
|
104
|
+
on_success.call(self) unless on_success.nil?
|
105
105
|
end
|
106
106
|
|
107
107
|
|
@@ -115,7 +115,7 @@ module Skywalker
|
|
115
115
|
|
116
116
|
|
117
117
|
private def run_failure_callbacks
|
118
|
-
on_failure.call(self)
|
118
|
+
on_failure.call(self) unless on_failure.nil?
|
119
119
|
end
|
120
120
|
end
|
121
121
|
end
|
data/lib/skywalker/version.rb
CHANGED
@@ -83,18 +83,30 @@ module Skywalker
|
|
83
83
|
end
|
84
84
|
|
85
85
|
describe "on_success" do
|
86
|
-
context "when on_success is
|
86
|
+
context "when on_success is not nil" do
|
87
87
|
it "calls the on_success callback with itself" do
|
88
88
|
expect(on_success).to receive(:call).with(command)
|
89
89
|
command.call
|
90
90
|
end
|
91
|
+
|
92
|
+
context "when on_success is not callable" do
|
93
|
+
let(:on_failure) { double("on_failure") }
|
94
|
+
let(:command) { Command.new(on_success: "a string", on_failure: on_failure) }
|
95
|
+
|
96
|
+
it "confirms failure if the on_success callback fails" do
|
97
|
+
expect(on_failure).to receive(:call).with(command)
|
98
|
+
command.call
|
99
|
+
end
|
100
|
+
end
|
91
101
|
end
|
92
102
|
|
93
|
-
context "when on_success is
|
94
|
-
let(:
|
103
|
+
context "when on_success is nil" do
|
104
|
+
let(:nil_callback) { double("fakenil", nil?: true) }
|
105
|
+
let(:command) { Command.new(on_success: nil_callback) }
|
95
106
|
|
96
107
|
it "does not call on_success" do
|
97
|
-
expect(
|
108
|
+
expect(nil_callback).not_to receive(:call)
|
109
|
+
command.call
|
98
110
|
end
|
99
111
|
end
|
100
112
|
end
|
@@ -131,18 +143,28 @@ module Skywalker
|
|
131
143
|
allow(command).to receive(:error=)
|
132
144
|
end
|
133
145
|
|
134
|
-
context "when on_failure is
|
146
|
+
context "when on_failure is not nil" do
|
135
147
|
it "calls the on_failure callback with itself" do
|
136
148
|
expect(on_failure).to receive(:call).with(command)
|
137
149
|
command.call
|
138
150
|
end
|
151
|
+
|
152
|
+
context "when on_failure is not callable" do
|
153
|
+
let(:command) { Command.new(on_failure: "a string") }
|
154
|
+
|
155
|
+
it "raises an error" do
|
156
|
+
expect { command.call }.to raise_error
|
157
|
+
end
|
158
|
+
end
|
139
159
|
end
|
140
160
|
|
141
|
-
context "when on_failure is
|
142
|
-
let(:
|
161
|
+
context "when on_failure is nil" do
|
162
|
+
let(:nil_callback) { double("fakenil", nil?: true) }
|
163
|
+
let(:command) { Command.new(on_failure: nil_callback) }
|
143
164
|
|
144
165
|
it "does not call on_failure" do
|
145
|
-
expect(
|
166
|
+
expect(nil_callback).not_to receive(:call)
|
167
|
+
command.call
|
146
168
|
end
|
147
169
|
end
|
148
170
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: skywalker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rob Yurkowski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|