class GBTiles::GBT::Export::ASM::ASM

Attributes

bank[RW]
converter[RW]
label[RW]
mod_data[RW]

Public Class Methods

new() click to toggle source
# File lib/gbtiles/gbt/export/asm/asm.rb, line 16
def initialize
  @converter = GBTiles::GBT::Export::ASM::Converter.new
end

Public Instance Methods

prerender() click to toggle source
# File lib/gbtiles/gbt/export/asm/asm.rb, line 20
def prerender
  if !@bank.is_a? Numeric then
    raise "Bank must be numeric"
  end

  if @mod_data.nil? then
    raise "Missing required mod data"
  end

  @label ||= mod_data.name
end
render_h() click to toggle source
# File lib/gbtiles/gbt/export/asm/asm.rb, line 40
def render_h
  prerender

  template = File.open(File.join(__dir__, "asm.h.erb"), "r").read

  ERB.new(template, nil, "-").result(binding)
end
render_s() click to toggle source
# File lib/gbtiles/gbt/export/asm/asm.rb, line 32
def render_s
  prerender

  template = File.open(File.join(__dir__, "asm.s.erb"), "r").read

  ERB.new(template, nil, "-").result(binding)
end
write(output_stream) click to toggle source
# File lib/gbtiles/gbt/export/asm/asm.rb, line 48
def write output_stream
  output_stream.write(render_s)

  if output_stream.is_a? File then
    header_filename = "#{File.basename(output_stream.path, ".s")}.h"
    header_path = "#{File.dirname(File.expand_path(output_stream.path))}/#{header_filename}"
    header_stream = File.open(header_path, "w")
    header_stream.write(render_h)
    header_stream.close
  end
end