Sha256: c1fac8651615c55f3498eda97a9642d92180b16b39a6aad4780ba65082793059

Contents?: true

Size: 734 Bytes

Versions: 1

Compression:

Stored size: 734 Bytes

Contents

# rbs_inline: enabled

module Autocad
  class EventHandler
    def initialize
      @handlers = {}
      @file = File.open("event_handler.log", "w")
    end

    # @rbs event: String -- the event name to handle
    def add_handler(event, &block)
      @handlers[event] = block if block
    end

    def get_handler(event)
      @handlers[event]
    end

    def method_missing(event, *args)
      if @handlers[event.to_s]
        @handlers[event.to_s].call(*args)
      else
        @file.puts "Unhandled event: #{event} args: #{args}"
        @file.puts "Event class is: #{event.class}, args are: #{args}"
        # event = event.to_sym if event.is_a? String
        # super
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
autocad-0.4.6 lib/autocad/event_handler.rb