Class: GBTiles::GBR::Export::ASM::ASM

Inherits:
Object
  • Object
show all
Includes:
ERB::Util
Defined in:
lib/gbtiles/gbr/export/asm/asm.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeASM

Returns a new instance of ASM.



13
14
# File 'lib/gbtiles/gbr/export/asm/asm.rb', line 13

def initialize
end

Instance Attribute Details

#bankObject

Returns the value of attribute bank.



10
11
12
# File 'lib/gbtiles/gbr/export/asm/asm.rb', line 10

def bank
  @bank
end

#tile_setObject

Returns the value of attribute tile_set.



11
12
13
# File 'lib/gbtiles/gbr/export/asm/asm.rb', line 11

def tile_set
  @tile_set
end

Instance Method Details

#prerenderObject



16
17
18
19
20
21
22
# File 'lib/gbtiles/gbr/export/asm/asm.rb', line 16

def prerender
  if @tile_set.nil? then
    raise "Missing required tile set"
  end

  @bank ||= @tile_set.tile_export.first.bank
end

#render_hObject



32
33
34
35
36
37
38
# File 'lib/gbtiles/gbr/export/asm/asm.rb', line 32

def render_h
  prerender

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

  ERB.new(template, nil, "-").result(binding)
end

#render_sObject



24
25
26
27
28
29
30
# File 'lib/gbtiles/gbr/export/asm/asm.rb', line 24

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) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
# File 'lib/gbtiles/gbr/export/asm/asm.rb', line 40

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