Sha256: 397b22e14fffaaba4fd11303cd8af3d3c54beda95f1379ab343d3df6a4e75fee
Contents?: true
Size: 667 Bytes
Versions: 7
Compression:
Stored size: 667 Bytes
Contents
module Larynx module Callbacks def self.included(base) base.extend ClassMethods base.class_eval do include InstanceMethods end end module ClassMethods def define_callback(*callbacks) callbacks.each do |callback| class_eval <<-DEF def #{callback}(&block) @callbacks ||= {} @callbacks[:#{callback}] = block self end DEF end end end module InstanceMethods def fire_callback(callback, *args) @callbacks && @callbacks[callback] && @callbacks[callback].call(*args) end end end end
Version data entries
7 entries across 7 versions & 1 rubygems