conditional_callbacks 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZTlmMzhkOTFjMjhjMTI4MzMzYzllODhhNjAwYWY0ZTVhZjQzYmY0OQ==
4
+ YWQxYmE2ZGRmZjU2YjEyZGFlZmU5ZDJkNDgzY2ZjOTNkMGRmNWE2Zg==
5
5
  data.tar.gz: !binary |-
6
- YmM3ZjRjMjM4N2M3ZDU4Nzc0ZjIxYTczODM3YzY0NWFlMWVhZDdlZg==
6
+ NDFiNjMxNDE2ZGVlNGExZGU2MGY4OTZmMDhlOGZhNDQwNWU5OGE3OA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OTVjNDMwMGY3YzYzNzNhZDkwNTBmMTQyZjExYTBhMWI0ZDE5OTYwN2E4NDUx
10
- ZDViYzY3OTk4M2JjNmRhNjk4YTg3NjY0MmU3YjJmYWNjNzQ0NDUyZjM4Mzg1
11
- NTgxMjVmZTcxNzA2YmQ3ZjVhNzJlYTE4ZGE1NDkwZmNjYzAyMmE=
9
+ YTI1OTE4Mzk0OTEyOTE3ZTE4MDkwNGJhNTlhNWQ3ZmFjNzYxMzNkMDBmZGFh
10
+ YTJlZmM0YjZkNmU1OGU5MTZlZmJlMTc4MmI1ZTA1M2E3MjY1NmI0NmIzYWY4
11
+ NjAyNjNmNzdiODg1M2E1NTVkMjBmODVjYTBlMGNlNzY3ZTEyMmM=
12
12
  data.tar.gz: !binary |-
13
- ZmQ5ZTc0OGQ1MmIyODdmNzExZWFiM2I5NTE4MGY3MGUyMmNmZmFiZWEzODg4
14
- MzdkOTdmMGQyYjRmYTQyZTJmMDMxYmNkMTQxZGE1M2M1NWY1NjYwMGQ1ZmQ4
15
- MDM0ZGNlNDRhOGMzMzU4NGVlNTllZjk2MTU0MjIyNzdmYmRiNWU=
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
@@ -0,0 +1,10 @@
1
+ require 'bundler/setup'
2
+ Bundler.setup
3
+
4
+ require 'conditional_callbacks'
5
+
6
+ RSpec.configure do |config|
7
+ config.color = true
8
+ config.warnings = true
9
+ config.formatter = 'documentation'
10
+ end
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.3
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: