Class: EventBus::SignalSlot
Instance Attribute Summary collapse
-
#methods ⇒ Object
readonly
Returns the value of attribute methods.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
- #call(*args, &block) ⇒ Object (also: #signal)
- #connect(method = nil, &block) ⇒ Object
- #disconnect! ⇒ Object
-
#initialize(bus, name) ⇒ SignalSlot
constructor
A new instance of SignalSlot.
- #to_s ⇒ Object
Constructor Details
#initialize(bus, name) ⇒ SignalSlot
Returns a new instance of SignalSlot.
81 82 83 84 85 |
# File 'lib/ls4/lib/ebus.rb', line 81 def initialize(bus, name) @bus = bus @name = name @methods = [] end |
Instance Attribute Details
#methods ⇒ Object (readonly)
Returns the value of attribute methods.
87 88 89 |
# File 'lib/ls4/lib/ebus.rb', line 87 def methods @methods end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
88 89 90 |
# File 'lib/ls4/lib/ebus.rb', line 88 def name @name end |
Instance Method Details
#call(*args, &block) ⇒ Object Also known as: signal
103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/ls4/lib/ebus.rb', line 103 def call(*args, &block) @bus.ebus_signal_log(methods, args, &block) methods.each {|block| begin block.call(*args, &block) rescue => err @bus.ebus_signal_error(err) end } nil end |
#connect(method = nil, &block) ⇒ Object
90 91 92 93 94 95 96 |
# File 'lib/ls4/lib/ebus.rb', line 90 def connect(method=nil, &block) method ||= block unless @methods.include?(method) @methods << method end @bus end |
#disconnect! ⇒ Object
98 99 100 101 |
# File 'lib/ls4/lib/ebus.rb', line 98 def disconnect! @methods.clear @bus end |
#to_s ⇒ Object
117 118 119 120 121 122 123 124 125 126 |
# File 'lib/ls4/lib/ebus.rb', line 117 def to_s methods = @methods.map {|m| if s = m.inspect[/\#\<[^\:]*\:\s?(.+)\>/, 1] s else m.to_s end } "#<slot :#{@name} => [#{methods.join(',')}]>" end |