bellbro 0.1.1 → 0.1.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 +4 -4
- data/lib/bellbro/hooks.rb +27 -2
- data/lib/bellbro/version.rb +1 -1
- data/lib/bellbro/worker.rb +7 -3
- 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: 59843051a36bb5d7d2d9d22a261a9f2d5e71dbdd
|
4
|
+
data.tar.gz: 2f7c00567922a84937e26c9fa4b2682fabdcd7cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 197c4375c817d11ad36058a9e28ca39ec1720e137cc0ac7ef574431affc94d4a9279047481073aa59fa8fdd83978f7980ebb1f659397fd6180bc0eebad339c77
|
7
|
+
data.tar.gz: 0b30b39693e8a51bbf596677c523e4e1bf2dc4dbe08e5ba29c637e2fae994b30453a8f740c8e1dc23817aa8338eb835a90ee7318f06c274f747971ab4dcd6b02
|
data/lib/bellbro/hooks.rb
CHANGED
@@ -5,6 +5,14 @@ module Bellbro
|
|
5
5
|
base.class_eval do
|
6
6
|
extend ClassMethods
|
7
7
|
end
|
8
|
+
|
9
|
+
def aborted?
|
10
|
+
!!@abort
|
11
|
+
end
|
12
|
+
|
13
|
+
def abort!
|
14
|
+
!(@abort = true)
|
15
|
+
end
|
8
16
|
end
|
9
17
|
|
10
18
|
module ClassMethods
|
@@ -125,6 +133,11 @@ module Bellbro
|
|
125
133
|
hooks.each { |hook| after_hooks.unshift(hook) }
|
126
134
|
end
|
127
135
|
|
136
|
+
def always(*hooks, &block)
|
137
|
+
hooks << block if block
|
138
|
+
hooks.each { |hook| always_hooks.unshift(hook) }
|
139
|
+
end
|
140
|
+
|
128
141
|
# Internal: An Array of declared hooks to run around Worker
|
129
142
|
# invocation. The hooks appear in the order in which they will be run.
|
130
143
|
#
|
@@ -181,6 +194,11 @@ module Bellbro
|
|
181
194
|
def after_hooks
|
182
195
|
@after_hooks ||= []
|
183
196
|
end
|
197
|
+
|
198
|
+
def always_hooks
|
199
|
+
@always_hooks ||= []
|
200
|
+
end
|
201
|
+
|
184
202
|
end
|
185
203
|
|
186
204
|
private
|
@@ -236,14 +254,21 @@ module Bellbro
|
|
236
254
|
run_hooks(self.class.after_hooks)
|
237
255
|
end
|
238
256
|
|
257
|
+
def run_always_hooks
|
258
|
+
run_hooks(self.class.always_hooks, halt_on_abort: false)
|
259
|
+
end
|
260
|
+
|
239
261
|
# Internal: Run a colection of hooks. The "run_hooks" method is the common
|
240
262
|
# interface by which collections of either before or after hooks are run.
|
241
263
|
#
|
242
264
|
# hooks - An Array of Symbol and Proc hooks.
|
243
265
|
#
|
244
266
|
# Returns nothing.
|
245
|
-
def run_hooks(hooks)
|
246
|
-
hooks.each
|
267
|
+
def run_hooks(hooks, halt_on_abort: true)
|
268
|
+
hooks.each do |hook|
|
269
|
+
run_hook(hook)
|
270
|
+
break if aborted? && halt_on_abort
|
271
|
+
end
|
247
272
|
end
|
248
273
|
|
249
274
|
# Internal: Run an individual hook. The "run_hook" method is the common
|
data/lib/bellbro/version.rb
CHANGED
data/lib/bellbro/worker.rb
CHANGED
@@ -7,13 +7,18 @@ module Bellbro
|
|
7
7
|
|
8
8
|
attr_reader :context
|
9
9
|
|
10
|
+
before :should_run?
|
11
|
+
|
10
12
|
def perform(args)
|
11
13
|
return unless args.present?
|
12
14
|
set_context(args)
|
13
15
|
run_before_hooks
|
14
|
-
return
|
16
|
+
return if aborted?
|
15
17
|
call
|
18
|
+
return if aborted?
|
16
19
|
run_after_hooks
|
20
|
+
ensure
|
21
|
+
run_always_hooks
|
17
22
|
end
|
18
23
|
|
19
24
|
def call
|
@@ -21,8 +26,7 @@ module Bellbro
|
|
21
26
|
end
|
22
27
|
|
23
28
|
def should_run?
|
24
|
-
|
25
|
-
self.class.should_run?
|
29
|
+
self.class.should_run? || abort!
|
26
30
|
end
|
27
31
|
|
28
32
|
def debug?
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bellbro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jon Stokes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|