class Sqlite::HtmlRenderer
Public Instance Methods
render_error(result, solution, error)
click to toggle source
# File lib/html_renderer.rb, line 15 def render_error(result, solution, error) @error = error @table_name = result[:table_name] @result = parse_dataset(result[:dataset].header, result[:dataset].rows) @solution = parse_dataset(solution[:dataset].header, solution[:dataset].rows) @expected_message = expected_message result @obtained_message = I18n.t 'obtained' template_file_error.result binding end
render_success(result, message)
click to toggle source
# File lib/html_renderer.rb, line 6 def render_success(result, message) @message = message @table_name = result[:table_name] @header = result[:dataset].header @rows = result[:dataset].rows @extra_message = extra_message result template_file_success.result binding end
Protected Instance Methods
diff_class_of(value)
click to toggle source
# File lib/html_renderer.rb, line 57 def diff_class_of(value) case value when '+' 'required' when '-' 'errored' else 'nothing' end end
expected_message(result)
click to toggle source
# File lib/html_renderer.rb, line 72 def expected_message(result) if result[:show_query] I18n.t('message.failure.show_query', query: result[:query]) else I18n.t 'expected' end end
extra_message(result)
click to toggle source
# File lib/html_renderer.rb, line 68 def extra_message(result) result[:show_query] ? I18n.t('message.success.show_query', query: result[:query]) : '' end
first_column(row)
click to toggle source
# File lib/html_renderer.rb, line 53 def first_column(row) row.first.present? && row.first =~ /^[+-]$/ ? row.shift : '✓' end
parse_dataset(header, rows)
click to toggle source
# File lib/html_renderer.rb, line 27 def parse_dataset(header, rows) header_sign = first_column(header) rows = rows.map do |row| { sign: first_column(row), row: row } end { header: { sign: header_sign, class: diff_class_of(header_sign), fields: header }, rows: rows.map do |row| { sign: row[:sign], class: diff_class_of(row[:sign]), fields: row[:row] } end } end
template_file_error()
click to toggle source
# File lib/html_renderer.rb, line 84 def template_file_error ERB.new File.read("#{__dir__}/view/rows_error.html.erb") end
template_file_success()
click to toggle source
# File lib/html_renderer.rb, line 80 def template_file_success ERB.new File.read("#{__dir__}/view/rows_success.html.erb") end