Sha256: eaee97b26e9333e218748576fadcb426a6d02cc460bd17ab85e6e1bb4f6b8dc6

Contents?: true

Size: 779 Bytes

Versions: 36

Compression:

Stored size: 779 Bytes

Contents

# -*- coding: utf-8 -*-
module Smalruby
  # イベントハンドラを表現するクラス
  class EventHandler
    attr_accessor :object
    attr_accessor :options
    attr_accessor :block

    # @param [Object] object 操作対象
    # @param [Array] options イベントハンドラのオプション
    # @param [Proc] block イベントハンドラ
    def initialize(object, options, &block)
      @object = object
      @options = options
      @block = block
      @running = false
    end

    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
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
smalruby-0.1.11-x86-mingw32 lib/smalruby/event_handler.rb
smalruby-0.1.11 lib/smalruby/event_handler.rb
smalruby-0.1.10-x86-mingw32 lib/smalruby/event_handler.rb
smalruby-0.1.10 lib/smalruby/event_handler.rb
smalruby-0.1.9-x86-mingw32 lib/smalruby/event_handler.rb
smalruby-0.1.9 lib/smalruby/event_handler.rb
smalruby-0.1.8-x86-mingw32 lib/smalruby/event_handler.rb
smalruby-0.1.8 lib/smalruby/event_handler.rb
smalruby-0.1.7-x86-mingw32 lib/smalruby/event_handler.rb
smalruby-0.1.7 lib/smalruby/event_handler.rb
smalruby-0.1.6-x86-mingw32 lib/smalruby/event_handler.rb
smalruby-0.1.6 lib/smalruby/event_handler.rb
smalruby-0.1.5-x86-mingw32 lib/smalruby/event_handler.rb
smalruby-0.1.5 lib/smalruby/event_handler.rb
smalruby-0.1.4-x86-mingw32 lib/smalruby/event_handler.rb
smalruby-0.1.4 lib/smalruby/event_handler.rb
smalruby-0.1.3-x86-mingw32 lib/smalruby/event_handler.rb
smalruby-0.1.3 lib/smalruby/event_handler.rb
smalruby-0.1.2-x86-mingw32 lib/smalruby/event_handler.rb
smalruby-0.1.2 lib/smalruby/event_handler.rb