class Smalruby::EventHandler

イベントハンドラを表現するクラス

Attributes

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

Public Class Methods

new(object, options, &block) click to toggle source

@param [Object] object 操作対象 @param [Array] options イベントハンドラのオプション @param [Proc] block イベントハンドラ

# File lib/smalruby/event_handler.rb, line 11
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/smalruby/event_handler.rb, line 18
def call(*args)
  return nil if @running
  return Thread.start(@object, @block) { |object, block|
    begin
      @running = true
      object.instance_exec(*args, &block)
    ensure
      @running = false
    end
  }
end