Class: Kaitai::Struct::Visualizer::ExternalCompilerVisualizer

Inherits:
Visualizer
  • Object
show all
Defined in:
lib/kaitai/struct/visualizer/visualizer_main.rb

Instance Method Summary collapse

Methods inherited from Visualizer

#initialize, #run

Constructor Details

This class inherits a constructor from Kaitai::Struct::Visualizer::Visualizer

Instance Method Details

#compile_format(fn) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/kaitai/struct/visualizer/visualizer_main.rb', line 7

def compile_format(fn)
  main_class_name = nil
  Dir.mktmpdir { |code_dir|
    system("ksc -- --debug -t ruby '#{fn}' -d '#{code_dir}'")
    exit $?.exitstatus if $?.exitstatus != 0

    compiled_path = Dir.glob("#{code_dir}/*.rb")[0]

    require compiled_path

    main_class_name = File.readlines(compiled_path).grep(/^class /)[0].strip.gsub(/^class /, '').gsub(/ <.*$/, '')
  }

  return main_class_name
end