Sha256: 6e34264399740b1fd178bcb73c46f404719340e7e89a58d6bca2a97728109791

Contents?: true

Size: 669 Bytes

Versions: 3

Compression:

Stored size: 669 Bytes

Contents

module Xdrgen
  class Compilation
    extend Memoist

    def initialize(source_paths, output_dir:".", language: :ruby, namespace: nil)
      @source_paths = source_paths
      @output_dir  = output_dir
      @namespace   = namespace
      @language    = language
    end

    memoize def source
     @source_paths.map{|p| IO.read(p)}.join("\n")
    end

    memoize def ast
      parser = Parser.new
      parser.parse(source)
    end

    def compile
      output = Output.new(@source_paths, @output_dir)

      
      generator = Generators.for_language(@language).new(ast, output, @namespace)
      generator.generate
    ensure
      output.close
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
xdrgen-0.1.1 lib/xdrgen/compilation.rb
xdrgen-0.1.0 lib/xdrgen/compilation.rb
xdrgen-0.0.1 lib/xdrgen/compilation.rb