Sha256: 27b33234403b2de277175a1671db6d2e32010b4917c064f6355429367cbb1b62
Contents?: true
Size: 898 Bytes
Versions: 9
Compression:
Stored size: 898 Bytes
Contents
module Protobuf class Lifecycle def self.register( event_name, &blk ) raise "Lifecycle register must have a block" unless block_given? event_name = normalized_event_name( event_name ) lifecycle_events[ event_name ] ||= [] lifecycle_events[ event_name ] << blk end def self.trigger( event_name, *args ) event_name = normalized_event_name( event_name ) if lifecycle_events.has_key?( event_name ) lifecycle_events[ event_name ].each do |block| if ! args.empty? && block.arity != 0 block.call(*args) else block.call end end end end def self.normalized_event_name( event_name ) return "#{event_name}".downcase end class << self attr_accessor :lifecycle_events alias_method :on, :register end @lifecycle_events ||= {} end end
Version data entries
9 entries across 9 versions & 1 rubygems