Module: Mycel::Callbacks

Overview

Cross-cutting: Callbacks

Instance Method Summary collapse

Instance Method Details

#__mycel_callback_handlers__Object



27
28
29
# File 'lib/mycel.rb', line 27

def __mycel_callback_handlers__
  @__mycel_callback_handlers__ ||= Hash.new
end

#callback(sym) ⇒ Object



36
37
38
39
40
# File 'lib/mycel.rb', line 36

def callback(sym, ...)
  handler = __mycel_callback_handlers__[sym] ||
            (method((sym.to_s + '_callback').to_sym) rescue nil)
  handler&.call(...)
end

#on(sym, &block) ⇒ Object

Raises:

  • (ArgumentError)


31
32
33
34
# File 'lib/mycel.rb', line 31

def on(sym, &block)
  raise(ArgumentError) unless sym.is_a?(Symbol)
  __mycel_callback_handlers__[sym] = block
end