class Roby::OpenStructModel

Attributes

superclass[R]

Returns the superclass, i.e. the state model this is a refinement on

Public Class Methods

new(super_or_obj = nil, attach_to = nil, attach_name = nil) click to toggle source
Calls superclass method Roby::OpenStruct::new
# File lib/roby/state/open_struct_model.rb, line 42
def initialize(super_or_obj = nil, attach_to = nil, attach_name = nil)
    @superclass = super_or_obj
    super(nil, attach_to, attach_name)
end

Public Instance Methods

__get(name, create_substruct = true, &update) click to toggle source
Calls superclass method Roby::OpenStruct#__get
# File lib/roby/state/open_struct_model.rb, line 6
def __get(name, create_substruct = true, &update)
    if result = super(name, false, &update)
        return result
    elsif superclass && (result = superclass.__get(name, false, &update))
        if result.kind_of?(OpenStructModel)
            return super(name, true, &update)
        else return result
        end
    elsif create_substruct
        return super
    end
end
__respond_to__(name) click to toggle source
Calls superclass method
# File lib/roby/state/open_struct_model.rb, line 19
def __respond_to__(name)
    super || (superclass.__respond_to__(name) if superclass)
end
create_subfield(name) click to toggle source
# File lib/roby/state/open_struct_model.rb, line 23
def create_subfield(name)
    if superclass
        self.class.new(superclass.get(name), self, name)
    else
        self.class.new(nil, self, name)
    end
end
each_member() { |name, value| ... } click to toggle source
Calls superclass method Roby::OpenStruct#each_member
# File lib/roby/state/open_struct_model.rb, line 31
def each_member(&block)
    super(&block)
    if superclass
        superclass.each_member do |name, value|
            if !@members.has_key?(name)
                yield(name, value)
            end
        end
    end
end