Class: RgGen::OutputBase::Item

Inherits:
Base::Item show all
Includes:
Base::HierarchicalItemAccessors, CodeUtility, TemplateUtility
Defined in:
lib/rggen/output_base/item.rb

Direct Known Subclasses

RAL::Item, RTL::Item

Defined Under Namespace

Classes: CodeGenerator, FileWriter

Instance Attribute Summary

Attributes inherited from Base::Item

#owner

Class Method Summary collapse

Instance Method Summary collapse

Methods included from TemplateUtility

included, #process_template

Methods inherited from Base::Item

#available?, available?, define_helpers, inherit_class_instance_variable

Methods included from Forwardable

#def_class_delegator, #def_class_delegators

Constructor Details

#initialize(owner) ⇒ Item

Returns a new instance of Item.



129
130
131
132
# File 'lib/rggen/output_base/item.rb', line 129

def initialize(owner)
  super(owner)
  define_hierarchical_item_accessors
end

Class Method Details

.inherited(subclass) ⇒ Object



116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/rggen/output_base/item.rb', line 116

def self.inherited(subclass)
  [:@builders, :@exported_methods].each do |v|
    subclass.inherit_class_instance_variable(v, self, &:dup)
  end
  [
    :@pre_code_generator,
    :@code_generator,
    :@post_code_generator
  ].each do |v|
    subclass.inherit_class_instance_variable(v, self, &:copy)
  end
end

Instance Method Details

#buildObject



141
142
143
144
145
146
# File 'lib/rggen/output_base/item.rb', line 141

def build
  return if builders.nil?
  builders.each do |builder|
    instance_exec(&builder)
  end
end

#generate_code(kind, buffer) ⇒ Object



153
154
155
156
# File 'lib/rggen/output_base/item.rb', line 153

def generate_code(kind, buffer)
  return if code_generator.nil?
  code_generator.generate_code(self, kind, buffer)
end

#generate_post_code(kind, buffer) ⇒ Object



158
159
160
161
# File 'lib/rggen/output_base/item.rb', line 158

def generate_post_code(kind, buffer)
  return if post_code_generator.nil?
  post_code_generator.generate_code(self, kind, buffer)
end

#generate_pre_code(kind, buffer) ⇒ Object



148
149
150
151
# File 'lib/rggen/output_base/item.rb', line 148

def generate_pre_code(kind, buffer)
  return if pre_code_generator.nil?
  pre_code_generator.generate_code(self, kind, buffer)
end

#write_file(output_directory = '') ⇒ Object



163
164
165
166
# File 'lib/rggen/output_base/item.rb', line 163

def write_file(output_directory = '')
  return if file_writer.nil?
  file_writer.write_file(self, output_directory)
end