class Nazar::View
Attributes
data[R]
use_generic_formatter[R]
Public Class Methods
new(data, use_generic_formatter: false)
click to toggle source
# File lib/nazar/view.rb, line 9 def initialize(data, use_generic_formatter: false) @data = data @use_generic_formatter = use_generic_formatter end
Public Instance Methods
render()
click to toggle source
# File lib/nazar/view.rb, line 14 def render return unless supported_data? table.tap do add_summary if summary end end
supported_data?()
click to toggle source
# File lib/nazar/view.rb, line 22 def supported_data? !!formatter_klass && formatter.valid? end
Private Instance Methods
add_summary()
click to toggle source
# File lib/nazar/view.rb, line 44 def add_summary table.add_separator table.add_row [pastel.bold('Total'), { value: summary, colspan: headers.size - 1 }] end
formatter()
click to toggle source
# File lib/nazar/view.rb, line 40 def formatter @formatter ||= formatter_klass.new(data) end
formatter_klass()
click to toggle source
# File lib/nazar/view.rb, line 36 def formatter_klass @formatter_klass ||= formatters.find { |klass| klass.valid?(data) } end
formatters()
click to toggle source
# File lib/nazar/view.rb, line 30 def formatters @formatters ||= Nazar.formatters.tap do |formatters| formatters << Nazar::Formatter::Generic if use_generic_formatter end end
pastel()
click to toggle source
# File lib/nazar/view.rb, line 57 def pastel @pastel ||= Pastel.new(enabled: Nazar.config.colors.enabled) end
table()
click to toggle source
# File lib/nazar/view.rb, line 49 def table @table ||= Terminal::Table.new( headings: headers, rows: cells, style: { border: :unicode_thick_edge } ) end