class Smalruby3::EventHandler

Attributes

block[RW]
object[RW]
options[RW]

Public Class Methods

new(object, options, &block) click to toggle source
# File lib/smalruby3/event_handler.rb, line 7
def initialize(object, options, &block)
  @object = object
  @options = options
  @block = block
  @running = false
end

Public Instance Methods

call(*args) click to toggle source
# File lib/smalruby3/event_handler.rb, line 14
def call(*args)
  if @running
    return nil
  end

  return Thread.start(@object, @block) { |object, block|
    begin
      @running = true
      object.instance_exec(*args, &block)
    ensure
      @running = false
    end
  }
end