Class: SPQR::ModelClassGenerator

Inherits:
Object
  • Object
show all
Includes:
PrettyPrinter
Defined in:
lib/spqr/codegen.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from PrettyPrinter

#dec_indent, #inc_indent, #indent, #outfile, #pp, #pp_call, #pp_decl, #pp_invoke, #stack, #with_output_to, #writemode

Constructor Details

#initialize(sc) ⇒ ModelClassGenerator

Returns a new instance of ModelClassGenerator.



153
154
155
# File 'lib/spqr/codegen.rb', line 153

def initialize(sc)
  @sc = sc
end

Class Method Details

.class_registryObject



149
150
151
# File 'lib/spqr/codegen.rb', line 149

def ModelClassGenerator.class_registry
  @class_registry ||= {}
end

.id_registryObject



145
146
147
# File 'lib/spqr/codegen.rb', line 145

def ModelClassGenerator.id_registry
  @id_registry ||= {}
end

Instance Method Details

#genObject



157
158
159
160
161
162
163
164
165
166
# File 'lib/spqr/codegen.rb', line 157

def gen
  @package_list = @sc.package.split(".")
  package_dir = "./#{@package_list.join('/')}"
  FileUtils.mkdir_p package_dir

  filename = "#{$OUTDIR}/#{package_dir}/#{@sc.name}.rb"
  with_output_to filename do
    gen_class
  end
end