Sha256: 23784c58069a75e6a8228181e2c4b560c888906591a77f92d90b7948898ddbba

Contents?: true

Size: 784 Bytes

Versions: 20

Compression:

Stored size: 784 Bytes

Contents

# -*- coding: utf-8 -*-
require 'singleton'

module Smalruby
  # 環境を表現するクラス
  class World
    include Singleton

    attr_accessor :objects
    attr_accessor :board
    attr_reader :sensor_change_queue
    attr_reader :button_change_queue

    def initialize
      @objects = []
      @board = nil
      @sensor_change_queue = []
      @sensor_change_queue.extend(Mutex_m)
      @button_change_queue = []
      @button_change_queue.extend(Mutex_m)
    end

    def sensor_changed(pin, value)
      @sensor_change_queue.synchronize do
        @sensor_change_queue.push([pin, value])
      end
    end

    def button_changed(pin, up_or_down)
      @button_change_queue.synchronize do
        @button_change_queue.push([pin, up_or_down])
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
smalruby-0.0.22-x86-mingw32 lib/smalruby/world.rb
smalruby-0.0.22 lib/smalruby/world.rb
smalruby-0.0.21-x86-mingw32 lib/smalruby/world.rb
smalruby-0.0.21 lib/smalruby/world.rb
smalruby-0.0.20-x86-mingw32 lib/smalruby/world.rb
smalruby-0.0.20 lib/smalruby/world.rb
smalruby-0.0.19-x86-mingw32 lib/smalruby/world.rb
smalruby-0.0.19 lib/smalruby/world.rb
smalruby-0.0.18-x86-mingw32 lib/smalruby/world.rb
smalruby-0.0.18 lib/smalruby/world.rb
smalruby-0.0.17-x86-mingw32 lib/smalruby/world.rb
smalruby-0.0.17 lib/smalruby/world.rb
smalruby-0.0.16-x86-mingw32 lib/smalruby/world.rb
smalruby-0.0.16 lib/smalruby/world.rb
smalruby-0.0.15-x86-mingw32 lib/smalruby/world.rb
smalruby-0.0.15 lib/smalruby/world.rb
smalruby-0.0.14-x86-mingw32 lib/smalruby/world.rb
smalruby-0.0.14 lib/smalruby/world.rb
smalruby-0.0.13-x86-mingw32 lib/smalruby/world.rb
smalruby-0.0.13 lib/smalruby/world.rb