Module: Flirt
- Defined in:
- lib/flirt.rb,
lib/flirt/version.rb,
lib/flirt/callback.rb,
lib/flirt/listener.rb
Overview
class MyListener
include Flirt::Listener
def initialize
subscribe_to :picked, with: :picked_callback
# or the alias
listen_to :picked, with: :picked_callback
end
def picked_callback(event_data)
puts "The #{event_data[:fruit]} has been picked"
end
end
or:
class MyListener
extend Flirt::Listener
subscribe_to :picked, with: :picked_callback
# or the alias
listen_to :picked, with: :picked_callback
def self.picked_callback(event_data)
puts "The #{event_data[:fruit]} has been picked"
end
end
Defined Under Namespace
Modules: Listener Classes: Callback
Constant Summary collapse
- VERSION =
"0.0.4"
Class Method Summary collapse
- .clear ⇒ Object
- .disable ⇒ Object
- .enable ⇒ Object
- .publish(event_name, event_data) ⇒ Object
- .subscribe(object, event_name, options = {}) ⇒ Object
- .unsubscribe(object, event_name, options = {}) ⇒ Object
Class Method Details
.clear ⇒ Object
47 48 49 |
# File 'lib/flirt.rb', line 47 def clear @callbacks = {} end |
.disable ⇒ Object
42 43 44 |
# File 'lib/flirt.rb', line 42 def disable self.disabled = true end |
.enable ⇒ Object
37 38 39 |
# File 'lib/flirt.rb', line 37 def enable self.disabled = false end |
.publish(event_name, event_data) ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/flirt.rb', line 12 def publish(event_name, event_data) return if disabled raise ArgumentError.new("Event name must be a symbol") unless event_name.is_a? Symbol (callbacks[event_name] || []).each do |callback| callback.call(event_data) end end |
.subscribe(object, event_name, options = {}) ⇒ Object
21 22 23 24 25 26 |
# File 'lib/flirt.rb', line 21 def subscribe(object, event_name, = {}) check_subscription_arguments(event_name, object, ) callback = Flirt::Callback.new object: object, callback_name: [:with] add_callback(event_name, callback) end |
.unsubscribe(object, event_name, options = {}) ⇒ Object
29 30 31 32 33 34 |
# File 'lib/flirt.rb', line 29 def unsubscribe(object, event_name, = {}) check_subscription_arguments(event_name, object, ) callback = Flirt::Callback.new object: object, callback_name: [:with] remove_callback(event_name, callback) end |