class MxxRu::Generators::Externals::Generator

Main class for code generation of binary unit test projects.

Usage:

receiver = StdReceiver.new
generator = Generator.new( args, receiver )
generator.run

Public Class Methods

new( args, receiver ) click to toggle source
# File lib/mxx_ru/generators/externals/g.rb, line 123
def initialize( args, receiver )
  @args = args
  @receiver = receiver
end

Public Instance Methods

run() click to toggle source
# File lib/mxx_ru/generators/externals/g.rb, line 128
def run
  options = Options.parse( @args,
      "Stubs for C++ build root file generator\n\n" +
      "Usage:\n" +
      "mxxrugen [<mxxrugen-options>] cpp-build-root [<options>]\n\n" )
  result = do_generation( options )
  @receiver.receive( result, options.output_file )
end

Private Instance Methods

do_generation( options ) click to toggle source

Performs main generation actions.

Returns generation result as String.

# File lib/mxx_ru/generators/externals/g.rb, line 141
def do_generation( options )
  template = IO.read( File.join( File.dirname( __FILE__ ), 'template.erb' ) )
  generator = ERB.new( template )

  params = TemplateParams.new( options )
  generator.result( params.get_binding ).gsub( /\n\n\n+/, "\n\n" )
end