signals 1.2.0 → 1.3.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 +2 -0
- data/README.md +1 -0
- data/lib/signals/publisher.rb +1 -8
- data/lib/signals/subscriber.rb +3 -5
- data/lib/signals/version.rb +1 -1
- data/signals.gemspec +0 -2
- data/spec/signals/block_listener_spec.rb +11 -18
- data/spec/spec_helper.rb +0 -6
- metadata +3 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e78f968682caaa22dba7a81da04b2d45ef10cce1
|
4
|
+
data.tar.gz: 507f67b4b4d95f232c3986a3aae240f2d9ca7367
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e232c0d166d50bc27c55e2ccb3747fb7d6a5be83cef9f6da52e5141ef89e09b50354683c872fcf677069a2dcd251d2438fdb4348e345460aad61611b049427eb
|
7
|
+
data.tar.gz: 8269fe71caec4937502132c7a45162ce6172aad86e02619c82683e515540cd736280ba3ca4e340a8d03b2b853c37165c03d2ab7233ae7e1549fdbb9cf87d40fb
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# Signals
|
2
2
|
|
3
|
+
[](https://travis-ci.org/warmwaffles/signals)
|
3
4
|
[](https://codeclimate.com/github/warmwaffles/signals)
|
4
5
|
|
5
6
|
A light weight publish / subscribe. It is similar to how the Wisper gem works.
|
data/lib/signals/publisher.rb
CHANGED
@@ -8,36 +8,29 @@ module Signals
|
|
8
8
|
|
9
9
|
module InstanceMethods
|
10
10
|
# Broadcasts an event to all of the subscribed listeners
|
11
|
-
# @return [void]
|
12
11
|
def broadcast(event, *args)
|
13
12
|
listeners.each do |listener|
|
14
13
|
listener.call(event, *args)
|
15
14
|
end
|
16
|
-
|
15
|
+
args.one? ? args.first : args
|
17
16
|
end
|
18
17
|
|
19
18
|
# Creates a one off listener that will respond to the event provided only
|
20
19
|
# @param [Object] event the event that is triggered
|
21
|
-
# @return [void]
|
22
20
|
def on(event, &block)
|
23
21
|
listeners.add(BlockListener.new(event, &block))
|
24
|
-
nil
|
25
22
|
end
|
26
23
|
|
27
24
|
# Subscribe a listener to the publisher
|
28
25
|
# @param [Object] listener
|
29
|
-
# @return [void]
|
30
26
|
def subscribe(listener)
|
31
27
|
listeners.add(listener)
|
32
|
-
nil
|
33
28
|
end
|
34
29
|
|
35
30
|
# Unsubscribe a listener from the publisher
|
36
31
|
# @param [Object] listener
|
37
|
-
# @return [void]
|
38
32
|
def unsubscribe(listener)
|
39
33
|
listeners.delete(listener)
|
40
|
-
nil
|
41
34
|
end
|
42
35
|
|
43
36
|
# All of the listeners subscribed to a publisher
|
data/lib/signals/subscriber.rb
CHANGED
@@ -69,23 +69,21 @@ module Signals
|
|
69
69
|
self.send(action, *args) if self.respond_to?(action)
|
70
70
|
end
|
71
71
|
end
|
72
|
-
|
72
|
+
args.one? ? args.first : args
|
73
73
|
end
|
74
74
|
|
75
75
|
# Disables an event temporarily
|
76
76
|
# @param [Symbol] event
|
77
|
-
# @return [void]
|
78
77
|
def disable_event(event)
|
79
78
|
disabled_events.add(event)
|
80
|
-
|
79
|
+
self
|
81
80
|
end
|
82
81
|
|
83
82
|
# Enables an event that was disabled
|
84
83
|
# @param [Symbol] event
|
85
|
-
# @return [void]
|
86
84
|
def enable_event(event)
|
87
85
|
disabled_events.delete(event)
|
88
|
-
|
86
|
+
self
|
89
87
|
end
|
90
88
|
|
91
89
|
# Checks to see if the event is disabled
|
data/lib/signals/version.rb
CHANGED
data/signals.gemspec
CHANGED
@@ -3,31 +3,24 @@ require 'spec_helper'
|
|
3
3
|
describe Signals::BlockListener do
|
4
4
|
|
5
5
|
describe '#call' do
|
6
|
+
before :each do
|
7
|
+
@block = Signals::BlockListener.new(:testing)
|
8
|
+
@block.stub(listener: double('lambda', call: true))
|
9
|
+
end
|
10
|
+
|
6
11
|
it 'should execute the event it was registered for' do
|
7
|
-
block
|
8
|
-
block.
|
9
|
-
|
10
|
-
block.call(:testing)
|
11
|
-
|
12
|
-
block.listener.should have_received(:call).once
|
12
|
+
@block.call(:testing)
|
13
|
+
@block.listener.should have_received(:call).once
|
13
14
|
end
|
14
15
|
|
15
16
|
it 'should not execute when the event does not match' do
|
16
|
-
block
|
17
|
-
block.
|
18
|
-
|
19
|
-
block.call(:another)
|
20
|
-
|
21
|
-
block.listener.should_not have_received(:call)
|
17
|
+
@block.call(:another)
|
18
|
+
@block.listener.should_not have_received(:call)
|
22
19
|
end
|
23
20
|
|
24
21
|
it 'should pass parameters on to the proc' do
|
25
|
-
block
|
26
|
-
block.
|
27
|
-
|
28
|
-
block.call(:testing, 1, 2)
|
29
|
-
|
30
|
-
block.listener.should have_received(:call).with(1,2).once
|
22
|
+
@block.call(:testing, 1, 2)
|
23
|
+
@block.listener.should have_received(:call).with(1,2).once
|
31
24
|
end
|
32
25
|
end
|
33
26
|
|
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.3.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:
|
11
|
+
date: 2014-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,20 +52,6 @@ dependencies:
|
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
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'
|
69
55
|
description: A lightweight publish / subscribe library
|
70
56
|
email:
|
71
57
|
- warmwaffles@gmail.com
|
@@ -112,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
98
|
version: '0'
|
113
99
|
requirements: []
|
114
100
|
rubyforge_project:
|
115
|
-
rubygems_version: 2.
|
101
|
+
rubygems_version: 2.1.11
|
116
102
|
signing_key:
|
117
103
|
specification_version: 4
|
118
104
|
summary: A lightweight publish / subscribe library
|