Class: Adapter::ActuatorCollection

Inherits:
Object
  • Object
show all
Defined in:
lib/adapter/actuator_collection.rb

Defined Under Namespace

Classes: Null

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(firer_class = AsynchronousFirer) ⇒ ActuatorCollection

Returns a new instance of ActuatorCollection.



41
42
43
44
# File 'lib/adapter/actuator_collection.rb', line 41

def initialize(firer_class = AsynchronousFirer)
  @actuators = {}
  @firer_class = firer_class
end

Class Method Details

.nullObject



37
38
39
# File 'lib/adapter/actuator_collection.rb', line 37

def self.null
  Null.new
end

Instance Method Details

#create_actuator_for(actuator_name, &block) ⇒ Object



50
51
52
53
54
# File 'lib/adapter/actuator_collection.rb', line 50

def create_actuator_for(actuator_name, &block) 
  raise NoActuatorBlockGiven.new("must supply a code block for an actuator - none given") unless block_given?
  raise DuplicateActuatorException.new("actuator :#{actuator_name} already exists") if @actuators.has_key?(actuator_name)
  @actuators[actuator_name.to_sym] = @firer_class.new(&block)
end

#fire(actuator_name, *params) ⇒ Object



56
57
58
59
# File 'lib/adapter/actuator_collection.rb', line 56

def fire(actuator_name, *params)
  raise NoSuchActuatorException.new("actuator :#{actuator_name} does not exist") unless @actuators.has_key?(actuator_name)
  @actuators[actuator_name.to_sym].fire(*params)
end

#listObject



46
47
48
# File 'lib/adapter/actuator_collection.rb', line 46

def list
  @actuators.entries.collect {|e| e[0].to_s}.sort.collect{|e| e.to_sym}
end