Module: EventBus::SingletonMixin
Defined Under Namespace
Classes: ConnectEntry
Class Method Summary collapse
Instance Method Summary collapse
- #ebus_bind! ⇒ Object (also: #bind!)
- #ebus_connect(bus, *slots) ⇒ Object (also: #connect)
Methods included from BusMixin
#ebus_all_slots, #ebus_disconnect!
Methods included from DeclarerBase::Methods
#ebus_all_slots, #ebus_call_log, #ebus_call_slots, #ebus_signal_error, #ebus_signal_log, #ebus_signal_slots
Methods included from DeclarerBase
Class Method Details
.extended(mod) ⇒ Object
268 269 270 271 272 |
# File 'lib/ls4/lib/ebus.rb', line 268 def self.extended(mod) mod.instance_eval do include ::Singleton end end |
Instance Method Details
#ebus_bind! ⇒ Object Also known as: bind!
304 305 306 307 308 309 310 311 312 313 314 315 316 317 |
# File 'lib/ls4/lib/ebus.rb', line 304 def ebus_bind! constants.each {|const| if const.to_s =~ /^EBUS_CONNECT_.*/ e = const_get(const) if e.bus.is_a?(Symbol) bus = eval("#{e.bus}") else bus = e.bus end bus.__send__("connect_#{e.slot}", instance.method(e.mname)) end } self end |
#ebus_connect(bus, *slots) ⇒ Object Also known as: connect
285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 |
# File 'lib/ls4/lib/ebus.rb', line 285 def ebus_connect(bus, *slots) slots.each {|slot| case slot when Symbol ebus_connect_const_set(bus, slot, slot) when String ebus_connect_const_set(bus, slot.to_sym, slot.to_sym) when Hash slot.each_pair {|k,v| ebus_connect_const_set(bus, k.to_sym, v.to_sym) } else raise "slot name must be a Symbol: #{slot.inspect}" end } end |