class Domotics::Core::ElementGroup
Attributes
elements[R]
name[R]
room[R]
type[R]
Public Class Methods
new(args = {})
click to toggle source
# File lib/domotics/core/element_group.rb, line 4 def initialize(args = {}) #::Object.instance_method(:is_a?).bind(self) @name = args[:name] || :undefined @room = Room[args[:room]] @room.register_element self, @name @elements = [] @type = :group end
Public Instance Methods
add_element(element)
click to toggle source
# File lib/domotics/core/element_group.rb, line 12 def add_element(element) @elements << element end
method_missing(method, *args, &block)
click to toggle source
Calls superclass method
# File lib/domotics/core/element_group.rb, line 24 def method_missing(method, *args, &block) if @elements.map{ |el| el.respond_to? method }.reduce{ |res, n| res && n } @elements.map{ |el| el.public_send method, *args, &block }.reduce{ |res, n| res && n } else super end end
respond_to?(method)
click to toggle source
Calls superclass method
# File lib/domotics/core/element_group.rb, line 31 def respond_to?(method) @elements.map{ |el| el.respond_to? method }.reduce{ |res, n| res && n } || super end
to_s()
click to toggle source
# File lib/domotics/core/element_group.rb, line 34 def to_s "Group :#{@name} -> #{@elements}" end
verbose_state()
click to toggle source
# File lib/domotics/core/element_group.rb, line 15 def verbose_state { @room.name => { :elements => { @name => { :state => nil } } } } end