conditional_callbacks 1.0.3 → 1.0.4
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 +8 -8
- data/lib/conditional_callbacks.rb +23 -0
- data/spec/conditional_callbacks_spec.rb +57 -0
- data/spec/spec_helper.rb +10 -0
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YWQxYmE2ZGRmZjU2YjEyZGFlZmU5ZDJkNDgzY2ZjOTNkMGRmNWE2Zg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NDFiNjMxNDE2ZGVlNGExZGU2MGY4OTZmMDhlOGZhNDQwNWU5OGE3OA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YTI1OTE4Mzk0OTEyOTE3ZTE4MDkwNGJhNTlhNWQ3ZmFjNzYxMzNkMDBmZGFh
|
10
|
+
YTJlZmM0YjZkNmU1OGU5MTZlZmJlMTc4MmI1ZTA1M2E3MjY1NmI0NmIzYWY4
|
11
|
+
NjAyNjNmNzdiODg1M2E1NTVkMjBmODVjYTBlMGNlNzY3ZTEyMmM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
OTViNjYwMGY1OGQzYmMwNDkyZWI2OWU4YzNmZDhkYjUzMGNlMmRhYzI5ZGVm
|
14
|
+
NTMyMWVlMzFiMjllNjY1MTJhZjVjOTFiY2NhYTk2Nzg3M2NlNjA5NjVlMDIy
|
15
|
+
NTQ4NDlmMGNlZjAwYTQxZGJjZWIxN2NlZWMyZGNhNTFmNzBhODc=
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module IntrepidProducts
|
2
|
+
class ConditionalCallbacks
|
3
|
+
def initialize(block)
|
4
|
+
@callbacks = {}
|
5
|
+
block.call(self)
|
6
|
+
end
|
7
|
+
|
8
|
+
def call_proc_for(callback_key, *args)
|
9
|
+
@callbacks[callback_key].call(*args)
|
10
|
+
end
|
11
|
+
|
12
|
+
def has_proc?(key)
|
13
|
+
@callbacks.has_key?(key)
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def method_missing(m, *args, &block)
|
19
|
+
block ? @callbacks[m] = block : super
|
20
|
+
self
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe IntrepidProducts::ConditionalCallbacks do
|
4
|
+
describe '#call_proc_for' do
|
5
|
+
result = nil
|
6
|
+
|
7
|
+
let(:callbacks_instance) do
|
8
|
+
instantiate_callbacks do |on|
|
9
|
+
on.success do
|
10
|
+
result = :success
|
11
|
+
end
|
12
|
+
|
13
|
+
on.failure do
|
14
|
+
result = :failure
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'invokes the named proc' do
|
20
|
+
callbacks_instance.call_proc_for(:success)
|
21
|
+
expect(result).to eq(:success)
|
22
|
+
|
23
|
+
callbacks_instance.call_proc_for(:failure)
|
24
|
+
expect(result).to eq(:failure)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe '#has_proc?' do
|
29
|
+
let(:callbacks_instance) do
|
30
|
+
instantiate_callbacks do |on|
|
31
|
+
on.eeny do
|
32
|
+
end
|
33
|
+
|
34
|
+
on.meeny do
|
35
|
+
end
|
36
|
+
|
37
|
+
on.miny do
|
38
|
+
end
|
39
|
+
|
40
|
+
on.moe do
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'indicates if a named proc is available' do
|
46
|
+
expect(callbacks_instance.has_proc?(:eeny)).to be true
|
47
|
+
expect(callbacks_instance.has_proc?(:meeny)).to be true
|
48
|
+
expect(callbacks_instance.has_proc?(:miny)).to be true
|
49
|
+
expect(callbacks_instance.has_proc?(:moe)).to be true
|
50
|
+
expect(callbacks_instance.has_proc?(:foo)).to be false
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def instantiate_callbacks(&block)
|
55
|
+
IntrepidProducts::ConditionalCallbacks.new(block)
|
56
|
+
end
|
57
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: conditional_callbacks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Intrepid Products
|
@@ -43,7 +43,10 @@ email: IntrepidProducts@gmail.com
|
|
43
43
|
executables: []
|
44
44
|
extensions: []
|
45
45
|
extra_rdoc_files: []
|
46
|
-
files:
|
46
|
+
files:
|
47
|
+
- lib/conditional_callbacks.rb
|
48
|
+
- spec/conditional_callbacks_spec.rb
|
49
|
+
- spec/spec_helper.rb
|
47
50
|
homepage:
|
48
51
|
licenses:
|
49
52
|
- MIT
|
@@ -68,5 +71,7 @@ rubygems_version: 2.4.2
|
|
68
71
|
signing_key:
|
69
72
|
specification_version: 4
|
70
73
|
summary: ConditionalCallbacks
|
71
|
-
test_files:
|
74
|
+
test_files:
|
75
|
+
- spec/conditional_callbacks_spec.rb
|
76
|
+
- spec/spec_helper.rb
|
72
77
|
has_rdoc:
|