Module: Cura::Attributes::HasRoot

Includes:
HasAttributes
Included in:
Window
Defined in:
lib/cura/attributes/has_root.rb

Overview

Adds the ‘root` attribute to an object, which defaults to a Component::Group.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from HasAttributes

included, #update_attributes

Instance Attribute Details

#rootComponent::Group

Get root component for this object.

Returns:



23
24
25
# File 'lib/cura/attributes/has_root.rb', line 23

def root
  @root
end

Instance Method Details

#add_child(component_or_type, attributes = {}) ⇒ Component

Add a child to this object’s root component.

Parameters:

  • component_or_type (#to_sym, Component)

    A Symbol representing the child component type or a Component::Base instance. When a Symbol is given, a new child component will be initialized of that type. See Component::Base.type.

  • attributes (#to_h) (defaults to: {})

    When component_or_type is a Symbol, then these attributes will be used to initialize the child component. When component_or_type is a Component::Base, then these attributes will be used to update the child component.

Returns:



54
55
56
# File 'lib/cura/attributes/has_root.rb', line 54

def add_child(component_or_type, attributes={})
  @root.add_child(component_or_type, attributes)
end

#add_children(*children) ⇒ <Component>

Add multiple children to this object’s root component.

Parameters:

Returns:



62
63
64
# File 'lib/cura/attributes/has_root.rb', line 62

def add_children(*children)
  @root.add_children(*children)
end

#children(recursive = false) ⇒ <Component>

Get the children of this object.

Returns:



41
42
43
# File 'lib/cura/attributes/has_root.rb', line 41

def children(recursive=false)
  @root.children(recursive)
end

#children?Boolean

Determine if this object’s root component has children.

Returns:

  • (Boolean)


92
93
94
# File 'lib/cura/attributes/has_root.rb', line 92

def children?
  @root.children?
end

#delete_child(component) ⇒ Component

Remove a child from this object’s root component.

Parameters:

Returns:



78
79
80
# File 'lib/cura/attributes/has_root.rb', line 78

def delete_child(component)
  @root.delete_child(component)
end

#delete_child_at(index) ⇒ Component

Remove a child from object’s root component at the given index.

Parameters:

  • index (Integer)

Returns:



70
71
72
# File 'lib/cura/attributes/has_root.rb', line 70

def delete_child_at(index)
  @root.delete_child_at(index)
end

#delete_childrenHasChildren

Remove all children from object’s root component.

Returns:



85
86
87
# File 'lib/cura/attributes/has_root.rb', line 85

def delete_children
  @root.delete_children
end

#initialize(attributes = {}) ⇒ Object



14
15
16
17
18
# File 'lib/cura/attributes/has_root.rb', line 14

def initialize(attributes={})
  @root = Component::Group.new(parent: self)

  super
end