signals 1.1.1 → 1.2.0
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/.travis.yml +4 -0
- data/Rakefile +4 -0
- data/lib/signals/block_listener.rb +1 -1
- data/lib/signals/publisher.rb +1 -1
- data/lib/signals/subscriber.rb +7 -1
- data/lib/signals/version.rb +1 -1
- data/signals.gemspec +2 -1
- data/spec/signals/block_listener_spec.rb +4 -4
- data/spec/signals/publisher_spec.rb +2 -2
- data/spec/signals/subscriber_spec.rb +3 -3
- data/spec/spec_helper.rb +6 -0
- metadata +20 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d184e121a283a392bf65f084d9b524050b452f7e
|
4
|
+
data.tar.gz: 1ebd618e86240f84f89f34f9351d919252dd2dd7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b00a3fb13c422e2262965f7a2f86026bc125e503e111f7bb2b1c5bef9b04eeb96e11aae77080a018cdbc9af033451e2f1c71aac6e8dca3cbd31747f577c8b4f4
|
7
|
+
data.tar.gz: def7c455d015514349fe401411ae1080615eb3d5f89ed2f1b48fae4ac4d2dbd106c1aedf2a372affec6c6878a0f7d467ce5608085679078d00f84351d7c37799
|
data/.travis.yml
ADDED
data/Rakefile
CHANGED
data/lib/signals/publisher.rb
CHANGED
data/lib/signals/subscriber.rb
CHANGED
@@ -40,10 +40,13 @@ module Signals
|
|
40
40
|
|
41
41
|
# @param [Symbol] e the event
|
42
42
|
# @param [Array|Symbol] actions the actions to be taken
|
43
|
+
# @return [void]
|
43
44
|
def add_event(e, actions)
|
44
45
|
event(e).concat(actions.is_a?(Array) ? actions : [actions])
|
46
|
+
nil
|
45
47
|
end
|
46
48
|
|
49
|
+
# @return [Hash]
|
47
50
|
def events
|
48
51
|
@events ||= Hash.new
|
49
52
|
end
|
@@ -58,12 +61,15 @@ module Signals
|
|
58
61
|
end
|
59
62
|
|
60
63
|
module InstanceMethods
|
61
|
-
|
64
|
+
# @param [Symbol] event
|
65
|
+
# @return [void]
|
66
|
+
def call(event, *args)
|
62
67
|
if event_enabled?(event)
|
63
68
|
actions_for(event).each do |action|
|
64
69
|
self.send(action, *args) if self.respond_to?(action)
|
65
70
|
end
|
66
71
|
end
|
72
|
+
nil
|
67
73
|
end
|
68
74
|
|
69
75
|
# Disables an event temporarily
|
data/lib/signals/version.rb
CHANGED
data/signals.gemspec
CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
22
|
spec.add_development_dependency "rake"
|
23
|
-
spec.add_development_dependency "rspec", "2.14.0
|
23
|
+
spec.add_development_dependency "rspec", "2.14.0"
|
24
|
+
spec.add_development_dependency "simplecov"
|
24
25
|
|
25
26
|
end
|
@@ -2,12 +2,12 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Signals::BlockListener do
|
4
4
|
|
5
|
-
describe '#
|
5
|
+
describe '#call' do
|
6
6
|
it 'should execute the event it was registered for' do
|
7
7
|
block = Signals::BlockListener.new(:testing)
|
8
8
|
block.stub(listener: double('lambda', call: true))
|
9
9
|
|
10
|
-
block.
|
10
|
+
block.call(:testing)
|
11
11
|
|
12
12
|
block.listener.should have_received(:call).once
|
13
13
|
end
|
@@ -16,7 +16,7 @@ describe Signals::BlockListener do
|
|
16
16
|
block = Signals::BlockListener.new(:testing)
|
17
17
|
block.stub(listener: double('lambda', call: true))
|
18
18
|
|
19
|
-
block.
|
19
|
+
block.call(:another)
|
20
20
|
|
21
21
|
block.listener.should_not have_received(:call)
|
22
22
|
end
|
@@ -25,7 +25,7 @@ describe Signals::BlockListener do
|
|
25
25
|
block = Signals::BlockListener.new(:testing)
|
26
26
|
block.stub(listener: double('lambda', call: true))
|
27
27
|
|
28
|
-
block.
|
28
|
+
block.call(:testing, 1, 2)
|
29
29
|
|
30
30
|
block.listener.should have_received(:call).with(1,2).once
|
31
31
|
end
|
@@ -8,13 +8,13 @@ describe Signals::Publisher do
|
|
8
8
|
describe '#broadcast' do
|
9
9
|
it 'should broadcast an event to subscribers' do
|
10
10
|
publisher = DummyPublisher.new
|
11
|
-
listener = double('Listener',
|
11
|
+
listener = double('Listener', call: true)
|
12
12
|
listeners = [listener]
|
13
13
|
publisher.stub(listeners: listeners)
|
14
14
|
|
15
15
|
publisher.broadcast(:event, 1, 2)
|
16
16
|
|
17
|
-
listener.should have_received(:
|
17
|
+
listener.should have_received(:call).with(:event, 1, 2)
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -10,13 +10,13 @@ describe Signals::Subscriber do
|
|
10
10
|
listen_for [:event, :complex] => [:action_5, :action_6]
|
11
11
|
end
|
12
12
|
|
13
|
-
describe '#
|
13
|
+
describe '#call' do
|
14
14
|
context 'when the event is disabled' do
|
15
15
|
it 'should not execute the actions' do
|
16
16
|
subscriber = DummySubscriber.new
|
17
17
|
subscriber.stub(event_enabled?: false, action_1: true)
|
18
18
|
|
19
|
-
subscriber.
|
19
|
+
subscriber.call(:event)
|
20
20
|
|
21
21
|
subscriber.should_not have_received(:action_1)
|
22
22
|
end
|
@@ -27,7 +27,7 @@ describe Signals::Subscriber do
|
|
27
27
|
subscriber = DummySubscriber.new
|
28
28
|
subscriber.stub(event_enabled?: true, action_1: true)
|
29
29
|
|
30
|
-
subscriber.
|
30
|
+
subscriber.call(:event)
|
31
31
|
|
32
32
|
subscriber.should have_received(:action_1).once
|
33
33
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: signals
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Johnston
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -44,14 +44,28 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - '='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 2.14.0
|
47
|
+
version: 2.14.0
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 2.14.0
|
54
|
+
version: 2.14.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: simplecov
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
description: A lightweight publish / subscribe library
|
56
70
|
email:
|
57
71
|
- warmwaffles@gmail.com
|
@@ -63,6 +77,7 @@ files:
|
|
63
77
|
- .rspec
|
64
78
|
- .ruby-gemset
|
65
79
|
- .ruby-version
|
80
|
+
- .travis.yml
|
66
81
|
- Gemfile
|
67
82
|
- LICENSE.txt
|
68
83
|
- README.md
|
@@ -97,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
112
|
version: '0'
|
98
113
|
requirements: []
|
99
114
|
rubyforge_project:
|
100
|
-
rubygems_version: 2.0.
|
115
|
+
rubygems_version: 2.0.5
|
101
116
|
signing_key:
|
102
117
|
specification_version: 4
|
103
118
|
summary: A lightweight publish / subscribe library
|