Sha256: 1e6426861258ae738dc4959782bb9d40ea8f334a187cb6d65d190916c7ac1b47

Contents?: true

Size: 665 Bytes

Versions: 6

Compression:

Stored size: 665 Bytes

Contents

module UI
  # Simple placeholder implementation
  # will need to be rewrite/improved
  module Eventable
    def on(event, action = nil, &block)
      if action
        __events__[event.to_sym] ||= action
      elsif block
        __events__[event.to_sym] ||= block
      end
    end

    def trigger(event, *args)
      # if no listener found we will do nothing
      return unless registered_event = __events__.fetch(event, nil)

      case registered_event
        when String, Symbol
          self.send(registered_event, *args)
        else
          registered_event.call(*args)
      end
    end

    def __events__
      @__events__ ||= {}
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
motion-flow-0.1.8 flow/ui/eventable.rb
motion-flow-0.1.7 flow/ui/eventable.rb
motion-flow-0.1.6 flow/ui/eventable.rb
motion-flow-0.1.5 flow/ui/eventable.rb
motion-flow-0.1.4 flow/ui/eventable.rb
motion-flow-0.1.3 flow/ui/eventable.rb