class Qsim::HtmlRenderer

Public Instance Methods

render(result, output) click to toggle source
# File lib/html_renderer.rb, line 5
def render(result, output)
  @output = output
  @result = {}
  output.keys.each do |output_key|
    fields = range(output_key, output)
               .map { |key| [key_for(output_key, key), '0000'] }
               .to_h
               .tap { |it| it.merge!(result[output_key].slice(*it.keys)) }
               .sort
    @result[output_key] = fields
  end
  template_file.result binding
end

Private Instance Methods

flags_range(_) click to toggle source
# File lib/html_renderer.rb, line 59
def flags_range(_)
  %w(N Z V C).map(&:to_sym)
end
key_for(output_key, key) click to toggle source
# File lib/html_renderer.rb, line 51
def key_for(output_key, key)
  send("to_#{output_key}".singularize, key)
end
memory_range(options) click to toggle source
# File lib/html_renderer.rb, line 41
def memory_range(options)
  from = options[:memory][:from].to_hex
  to = options[:memory][:to].to_hex
  (from..to)
end
range(output_key, output) click to toggle source
# File lib/html_renderer.rb, line 47
def range(output_key, output)
  send("#{output_key}_range", output)
end
records_range(_) click to toggle source
# File lib/html_renderer.rb, line 55
def records_range(_)
  (0..7)
end
special_records_range(_) click to toggle source
# File lib/html_renderer.rb, line 63
def special_records_range(_)
  %w(SP PC IR).map(&:to_sym)
end
template_file() click to toggle source
# File lib/html_renderer.rb, line 21
def template_file
  ERB.new File.read("#{__dir__}/view/records.html.erb")
end
to_flag(number) click to toggle source
# File lib/html_renderer.rb, line 33
def to_flag(number)
  number.to_sym
end
to_memory(number) click to toggle source
# File lib/html_renderer.rb, line 25
def to_memory(number)
  number.to_s(16).rjust(4, '0').upcase.to_sym
end
to_record(number) click to toggle source
# File lib/html_renderer.rb, line 29
def to_record(number)
  "R#{number}".to_sym
end
to_special_record(record) click to toggle source
# File lib/html_renderer.rb, line 37
def to_special_record(record)
  record.to_sym
end