flirt 0.0.3 → 0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3595d41a6ad627adc7eefdbb93242a03522ff4e5
4
- data.tar.gz: d2a89c116bf434fe75827ca5c85ae3fcfe6958de
3
+ metadata.gz: ddeb6e470d1d83c9d031c9eadbd763929ea01863
4
+ data.tar.gz: b9f82e07bde11c678184ee7ac79007c6e2ce7bea
5
5
  SHA512:
6
- metadata.gz: 1c42aba9604a42b718bca09e68d7ade30b6dbdfc0d10e9114ca658762bc3e72485b27f0c0740227e7621aac39c907446a3fd67ba7c97641ab78532364d9d77d6
7
- data.tar.gz: 55d2e892fd50a3694b5c13da4c5d8f4e32da0839d9fbec8b39670c536fee612995d08c423c2b8c171fa6857ccac1280bad2f0a87bf3c37e630281c0a1b5970e9
6
+ metadata.gz: 9b57170b981b3bbcc68cb5e57304ca0ccd341898eab2d668bb0d22a434c2addab6f73792cf029c084072a6346797ab0fc254a6493cccb82616d5a34e1e88649d
7
+ data.tar.gz: c7519ff2ae78315188bb0ce004fc22ce36cb70708ab3cba8a62d69bcaeee1c3b6d930d87832abe1abbc90901b6270c5a5d21304acbd6d4bad880a9630c9d151d
data/README.md CHANGED
@@ -29,20 +29,12 @@ Or install it yourself as:
29
29
 
30
30
  ## Usage
31
31
 
32
- To publish/broadcast an event:
32
+ To publish an event:
33
33
 
34
- ```ruby
35
- event_data = { fruit: "apple" }
36
- Flirt.broadcast :picked, event_data
37
- ```
38
-
39
- Or:
40
34
 
41
35
  ```ruby
42
36
  Flirt.publish :picked, event_data
43
37
  ```
44
-
45
- (These two versions are aliases)
46
38
 
47
39
  To subscribe:
48
40
 
@@ -50,8 +42,6 @@ To subscribe:
50
42
  class MyListener
51
43
  def initialize
52
44
  Flirt.subscribe self, :picked, with: :picked_callback
53
- # or the alias
54
- Flirt.listen self, :picked, with: :picked_callback
55
45
  end
56
46
 
57
47
  def picked_callback(event_data)
@@ -60,7 +50,15 @@ class MyListener
60
50
  end
61
51
  ```
62
52
 
63
- Sytactic sugar for subscription has been provided in the form of a module:
53
+ To unsubscribe:
54
+
55
+ ```ruby
56
+ Flirt.unsubscribe self, :picked, with: :picked_callback
57
+ end
58
+ ```
59
+
60
+
61
+ Syntactic sugar for subscription and unsubscription has been provided in the form of a module:
64
62
 
65
63
  ```ruby
66
64
  class MyListener
@@ -68,8 +66,10 @@ class MyListener
68
66
 
69
67
  def initialize
70
68
  subscribe_to :picked, with: :picked_callback
71
- # or the alias
72
- listen_to :picked, with: :picked_callback
69
+ end
70
+
71
+ def before_destroy
72
+ unsubscribe_from :picked, with: :picked_callback
73
73
  end
74
74
 
75
75
  def picked_callback(event_data)
@@ -85,8 +85,6 @@ class MyListener
85
85
  extend Flirt::Listener
86
86
 
87
87
  subscribe_to :picked, with: :picked_callback
88
- # or the alias
89
- listen_to :picked, with: :picked_callback
90
88
 
91
89
  def self.picked_callback(event_data)
92
90
  puts "The #{event_data[:fruit]} has been picked"
@@ -94,6 +92,8 @@ class MyListener
94
92
  end
95
93
  ```
96
94
 
95
+ ```unsubscribe_from``` can technically be used in the class context, but probably doesn't have as much use.
96
+
97
97
  Flirt defaults to 'enabled'. Switch Flirt off:
98
98
 
99
99
  ```ruby
@@ -121,7 +121,7 @@ Flirt.enable only: [:topping_added, :pancake_flipped]
121
121
  Enabled status affects broadcast/publish, listeners can still be added and will be
122
122
  remembered. No listeners will be removed.
123
123
 
124
- Clear all listeners
124
+ Clear all listeners:
125
125
 
126
126
  ```ruby
127
127
  Flirt.clear
@@ -2,6 +2,7 @@
2
2
  # and contains a method for calling the callback.
3
3
 
4
4
  module Flirt
5
+
5
6
  class Callback
6
7
 
7
8
  attr_accessor :object, :callback_name
@@ -32,19 +32,18 @@
32
32
  #
33
33
 
34
34
  module Flirt
35
+
35
36
  module Listener
37
+
36
38
  def subscribe_to(event_name, opts = {})
37
- raise ArgumentError.new("You must pass a callback") unless opts[:with].is_a? Symbol
38
39
  Flirt.subscribe self, event_name, opts
39
40
  end
40
- alias_method :listen_to, :subscribe_to
41
41
 
42
42
 
43
43
  def unsubscribe_from(event_name, opts = {})
44
- raise ArgumentError.new("You must pass a callback") unless opts[:with].is_a? Symbol
45
44
  Flirt.unsubscribe self, event_name, opts
46
45
  end
47
- alias_method :forget, :unsubscribe_from
48
46
 
49
47
  end
48
+
50
49
  end
data/lib/flirt/version.rb CHANGED
@@ -1,3 +1,5 @@
1
1
  module Flirt
2
- VERSION = "0.0.3"
2
+
3
+ VERSION = "0.0.4"
4
+
3
5
  end
data/lib/flirt.rb CHANGED
@@ -16,7 +16,6 @@ module Flirt
16
16
  callback.call(event_data)
17
17
  end
18
18
  end
19
- alias_method :broadcast, :publish
20
19
 
21
20
 
22
21
  def subscribe(object, event_name, options = {})
@@ -25,7 +24,6 @@ module Flirt
25
24
  callback_name: options[:with]
26
25
  add_callback(event_name, callback)
27
26
  end
28
- alias_method :listen, :subscribe
29
27
 
30
28
 
31
29
  def unsubscribe(object, event_name, options = {})
@@ -34,7 +32,6 @@ module Flirt
34
32
  callback_name: options[:with]
35
33
  remove_callback(event_name, callback)
36
34
  end
37
- alias_method :unlisten, :unsubscribe
38
35
 
39
36
 
40
37
  def enable
@@ -79,10 +76,11 @@ module Flirt
79
76
 
80
77
 
81
78
  def check_subscription_arguments(event_name, object, options)
82
- raise ArgumentError.new("You must pass a callback") unless options[:with].is_a? Symbol
83
- raise ArgumentError.new("You must pass an object") if object.nil?
79
+ raise ArgumentError.new("You must pass a callback") unless options[:with].is_a? Symbol
84
80
  raise ArgumentError.new("You must pass an event name") unless event_name.is_a? Symbol
81
+ raise ArgumentError.new("You must pass an object") if object.nil?
85
82
  end
86
83
 
87
84
  end
85
+
88
86
  end
@@ -27,29 +27,23 @@ describe Flirt::Listener do
27
27
  end
28
28
 
29
29
 
30
- [:listen_to, :subscribe_to].each do |method|
31
- it "subscribes to an event with ##{method}" do
32
- block_event = event
33
- block_callback_name = callback_name
34
- expect(Flirt).to receive(:subscribe).with(test_instance, event, { with: callback_name })
35
- test_instance.instance_eval do
36
- send method, block_event, with: block_callback_name
37
- end
38
-
30
+ it "subscribes to an event with #subscribe_to" do
31
+ block_event = event
32
+ block_callback_name = callback_name
33
+ expect(Flirt).to receive(:subscribe).with(test_instance, event, { with: callback_name })
34
+ test_instance.instance_eval do
35
+ subscribe_to block_event, with: block_callback_name
39
36
  end
40
37
 
41
38
  end
42
39
 
43
40
 
44
- [:forget, :unsubscribe_from].each do |method|
45
- it "unsubscribes from an event with ##{method}" do
46
- block_event = event
47
- block_callback_name = callback_name
48
- expect(Flirt).to receive(:unsubscribe).with(test_instance, event, { with: callback_name })
49
- test_instance.instance_eval do
50
- send method, block_event, with: block_callback_name
51
- end
52
-
41
+ it "unsubscribes from an event with #unsubscribe_from" do
42
+ block_event = event
43
+ block_callback_name = callback_name
44
+ expect(Flirt).to receive(:unsubscribe).with(test_instance, event, { with: callback_name })
45
+ test_instance.instance_eval do
46
+ unsubscribe_from block_event, with: block_callback_name
53
47
  end
54
48
 
55
49
  end
@@ -68,31 +62,25 @@ describe Flirt::Listener do
68
62
  let(:test_class) { Class.new }
69
63
 
70
64
 
71
- [:listen_to, :subscribe_to].each do |method|
72
- it "subscribes to an event with ##{method}" do
73
- block_event = event
74
- block_callback_name = callback_name
75
- expect(Flirt).to receive(:subscribe).with(test_class, event, { with: callback_name })
76
- test_class.class_eval do
77
- extend Flirt::Listener
78
- send method, block_event, with: block_callback_name
79
- end
80
-
65
+ it "subscribes to an event with #subscribe_to" do
66
+ block_event = event
67
+ block_callback_name = callback_name
68
+ expect(Flirt).to receive(:subscribe).with(test_class, event, { with: callback_name })
69
+ test_class.class_eval do
70
+ extend Flirt::Listener
71
+ subscribe_to block_event, with: block_callback_name
81
72
  end
82
73
 
83
74
  end
84
75
 
85
76
 
86
- [:forget, :unsubscribe_from].each do |method|
87
- it "unsubscribes from an event with ##{method}" do
88
- block_event = event
89
- block_callback_name = callback_name
90
- expect(Flirt).to receive(:unsubscribe).with(test_class, event, { with: callback_name })
91
- test_class.class_eval do
92
- extend Flirt::Listener
93
- send method, block_event, with: block_callback_name
94
- end
95
-
77
+ it "unsubscribes from an event with #unsubscribe_from" do
78
+ block_event = event
79
+ block_callback_name = callback_name
80
+ expect(Flirt).to receive(:unsubscribe).with(test_class, event, { with: callback_name })
81
+ test_class.class_eval do
82
+ extend Flirt::Listener
83
+ unsubscribe_from block_event, with: block_callback_name
96
84
  end
97
85
 
98
86
  end
@@ -16,85 +16,75 @@ describe Flirt do
16
16
  let!(:listener) { Object.new }
17
17
 
18
18
 
19
- [:subscribe, :listen].each do |method|
19
+ describe "and a listener added with #subscribe" do
20
20
 
21
- describe "and a listener added with ##{method}" do
22
-
23
- before(:each) do
24
- Flirt.send method, listener, event, with: callback
25
- end
26
-
27
-
28
- [:publish, :broadcast].each do |method|
29
-
30
- it "listens to the correct event published with ##{method}" do
31
- expect(listener).to receive(callback).with(response)
32
- Flirt.send method, event, response
33
- end
21
+ before(:each) do
22
+ Flirt.subscribe listener, event, with: callback
23
+ end
34
24
 
35
25
 
36
- it "doesn't listen to the wrong event published with ##{method}" do
37
- expect(listener).not_to receive(callback)
38
- Flirt.send method, wrong_event, response
39
- end
26
+ it "listens to the correct event published with #publish" do
27
+ expect(listener).to receive(callback).with(response)
28
+ Flirt.publish event, response
29
+ end
40
30
 
41
31
 
42
- describe "when disabled" do
32
+ it "doesn't listen to the wrong event published with #publish" do
33
+ expect(listener).not_to receive(callback)
34
+ Flirt.publish wrong_event, response
35
+ end
43
36
 
44
- before(:each) { Flirt.disable }
45
37
 
46
- after(:each) { Flirt.enable }
38
+ describe "when disabled" do
47
39
 
40
+ before(:each) { Flirt.disable }
48
41
 
49
- it "doesn't broadcast an event published with ##{method}" do
50
- expect(listener).not_to receive(callback)
51
- Flirt.send method, event, response
52
- end
42
+ after(:each) { Flirt.enable }
53
43
 
54
- end
55
44
 
45
+ it "doesn't publish an event" do
46
+ expect(listener).not_to receive(callback)
47
+ Flirt.publish event, response
56
48
  end
57
49
 
58
- describe "when cleared" do
59
-
60
- let(:callback2) { :respond2 }
50
+ end
61
51
 
62
52
 
63
- before(:each) do
64
- Flirt.listen listener, event, with: callback2
65
- Flirt.clear
66
- end
53
+ describe "when cleared" do
67
54
 
55
+ let(:callback2) { :respond2 }
68
56
 
69
- it "forgets listeners" do
70
- expect(listener).not_to receive(callback)
71
- expect(listener).not_to receive(callback2)
72
- Flirt.publish event, response
73
- end
74
57
 
58
+ before(:each) do
59
+ Flirt.subscribe listener, event, with: callback2
60
+ Flirt.clear
75
61
  end
76
62
 
77
- [:unsubscribe, :unlisten].each do |method|
78
63
 
79
- describe "when another listener is added and the original unsubscribed with ##{method}" do
64
+ it "forgets listeners" do
65
+ expect(listener).not_to receive(callback)
66
+ expect(listener).not_to receive(callback2)
67
+ Flirt.publish event, response
68
+ end
69
+
70
+ end
80
71
 
81
- let(:callback2) { :respond2 }
82
72
 
73
+ describe "when another listener is added and the original is unsubscribed" do
83
74
 
84
- before(:each) do
85
- Flirt.listen listener, event, with: callback2
86
- Flirt.send method, listener, event, with: callback
87
- end
75
+ let(:callback2) { :respond2 }
88
76
 
89
77
 
90
- it "it forgets the original listener but remembers the new one" do
91
- expect(listener).not_to receive(callback)
92
- expect(listener).to receive(callback2).with(response)
93
- Flirt.broadcast event, response
94
- end
78
+ before(:each) do
79
+ Flirt.subscribe listener, event, with: callback2
80
+ Flirt.unsubscribe listener, event, with: callback
81
+ end
95
82
 
96
- end
97
83
 
84
+ it "it forgets the original listener but remembers the new one" do
85
+ expect(listener).not_to receive(callback)
86
+ expect(listener).to receive(callback2).with(response)
87
+ Flirt.publish event, response
98
88
  end
99
89
 
100
90
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flirt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benjamin Randles-Dunkley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-29 00:00:00.000000000 Z
11
+ date: 2015-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler