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