Class: RgGen::InputBase::Component

Inherits:
Base::Component show all
Defined in:
lib/rggen/input_base/component.rb

Direct Known Subclasses

RegisterMap::Component

Instance Attribute Summary

Attributes inherited from Base::Component

#children, #items, #level, #parent

Instance Method Summary collapse

Methods inherited from Base::Component

#add_child, #need_children?

Methods included from SingleForwardable

#def_object_delegator, #def_object_delegators, #def_single_delegator

Constructor Details

#initialize(parent) ⇒ Component

Returns a new instance of Component.



4
5
6
7
# File 'lib/rggen/input_base/component.rb', line 4

def initialize(parent)
  super(parent)
  @need_children  = true
end

Instance Method Details

#add_item(item) ⇒ Object



13
14
15
16
# File 'lib/rggen/input_base/component.rb', line 13

def add_item(item)
  super(item)
  def_object_delegators(@items.last, *item.fields)
end

#fieldsObject



18
19
20
# File 'lib/rggen/input_base/component.rb', line 18

def fields
  items.flat_map(&:fields)
end

#need_no_childrenObject



9
10
11
# File 'lib/rggen/input_base/component.rb', line 9

def need_no_children
  @need_children  = false
end

#validateObject



22
23
24
25
# File 'lib/rggen/input_base/component.rb', line 22

def validate
  items.each(&:validate)
  children.each(&:validate)
end