Module: InstanceStorage::InstanceStorageExtend

Defined in:
lib/instance_storage.rb

Instance Method Summary collapse

Instance Method Details

#[](name) ⇒ Object

インスタンス event_name を返す。既に有る場合はそのインスタンス、ない場合は新しく作って返す。

Args

name

インスタンスの名前(Symbol)

Return

Event



45
46
47
48
49
50
51
52
53
54
# File 'lib/instance_storage.rb', line 45

def [](name)
      name_sym = name.to_sym
      if instances_dict.has_key?(name_sym)
        instances_dict[name_sym]
      else
        storage_lock.synchronize{
          if instances_dict.has_key?(name_sym)
instances_dict[name_sym]
          else
instances_dict[name_sym] = self.new(name_sym) end } end end

#clear!Object

定義されているインスタンスを全て削除する



37
38
# File 'lib/instance_storage.rb', line 37

def clear!
@instances = @storage_lock = nil end

#destroy(name) ⇒ Object



84
85
# File 'lib/instance_storage.rb', line 84

def destroy(name)
instances_dict.delete(name.to_sym) end

#instance(name) ⇒ Object

name に対応するインスタンスが既にあれば真

Args

name

インスタンスの名前(Symbol)

Return

インスタンスかnil



81
82
# File 'lib/instance_storage.rb', line 81

def instance(name)
instances_dict[name.to_sym] end

#instance_exist?(name) ⇒ Boolean

名前 name に対応するインスタンスが存在するか否かを返す

Args

name

インスタンスの名前(Symbol)

Return

インスタンスが存在するなら真

Returns:

  • (Boolean)


73
74
# File 'lib/instance_storage.rb', line 73

def instance_exist?(name)
instances_dict.has_key? name.to_sym end

#instancesObject

このクラスのインスタンスを全て返す

Return

インスタンスの配列(Array)



59
60
# File 'lib/instance_storage.rb', line 59

def instances
instances_dict.values end

#instances_dictObject



30
31
# File 'lib/instance_storage.rb', line 30

def instances_dict
@instances ||= {} end

#instances_nameObject

このクラスのインスタンスの名前を全て返す

Return

インスタンスの名前の配列(Array)



65
66
# File 'lib/instance_storage.rb', line 65

def instances_name
instances_dict.keys end

#storage_lockObject



33
34
# File 'lib/instance_storage.rb', line 33

def storage_lock
@storage_lock ||= Mutex.new end