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