class RgGen::Core::Generator

Attributes

configuration[R]
register_map[R]

Public Instance Methods

run(builder, options) click to toggle source
# File lib/rggen/core/generator.rb, line 6
def run(builder, options)
  load_plugins(builder, options)
  load_configuration(builder, options[:configuration])
  load_register_map(builder, options.register_map_files)
  write_files(builder, options)
end

Private Instance Methods

file_writers(builder, targets) click to toggle source
# File lib/rggen/core/generator.rb, line 44
def file_writers(builder, targets)
  builder
    .build_factories(:output, targets)
    .map { |factory| factory.create(configuration, register_map) }
end
load_configuration(builder, file) click to toggle source
# File lib/rggen/core/generator.rb, line 22
def load_configuration(builder, file)
  @configuration =
    builder
      .build_factory(:input, :configuration)
      .create(Array(file))
end
load_plugins(builder, options) click to toggle source
# File lib/rggen/core/generator.rb, line 18
def load_plugins(builder, options)
  builder.load_plugins(options[:plugins], options[:no_default_plugins])
end
load_register_map(builder, files) click to toggle source
# File lib/rggen/core/generator.rb, line 29
def load_register_map(builder, files)
  files.empty? &&
    (raise Core::LoadError.new('no register map files are given'))
  @register_map =
    builder
      .build_factory(:input, :register_map)
      .create(configuration, files)
end
write_files(builder, options) click to toggle source
# File lib/rggen/core/generator.rb, line 38
def write_files(builder, options)
  options[:load_only] ||
    file_writers(builder, options[:enable])
      .each { |writer| writer.write_file(options[:output]) }
end