Class: Nxxd::DumpNums

Inherits:
Object
  • Object
show all
Includes:
ReadChunks
Defined in:
lib/nxxd.rb

Constant Summary collapse

LINE_SIZE =
12

Instance Method Summary collapse

Constructor Details

#initialize(upper: false, line_size: nil, capitals: nil, input: nil) ⇒ DumpNums

Returns a new instance of DumpNums.



135
136
137
138
139
140
141
142
143
144
145
# File 'lib/nxxd.rb', line 135

def initialize upper: false, line_size: nil, capitals: nil, input: nil
  @line_size = line_size||LINE_SIZE
  @nib_fmt = "%#04x"
  @nib_fmt.upcase! if upper
  if input then
    @varname = input.dup
    @varname.insert 0, "__" if @varname =~ /\A\d/
    @varname.gsub! /[^a-zA-Z0-9]/, "_"
    @varname.upcase! if capitals
  end
end

Instance Method Details

#run(input, &block) ⇒ Object



147
148
149
150
151
152
153
154
155
156
157
158
# File 'lib/nxxd.rb', line 147

def run input, &block
  block_given? or return [].tap { |r| run input do |l| r.push l end }
  if @varname then
    yield "unsigned char #@varname[] = {"
    len = run_plain input, &block
    yield "};"
    yield "unsigned int #@varname\_len = %d;" % len
  else
    run_plain input, &block
  end
  nil
end