Class: Hirb::Helpers::VerticalTable

Inherits:
Table
  • Object
show all
Defined in:
lib/previews/hirb_vertical_table.rb

Instance Method Summary collapse

Instance Method Details

#render_rowsObject

Method should return an Array



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/previews/hirb_vertical_table.rb', line 5

def render_rows
  i = 0
  rows = ''
  longest_header = Hirb::String.size @headers.values.sort_by {|e| Hirb::String.size(e) }.last
  delimiter = "-" * longest_header
  @rows.map do |row|
    row = "\n#{delimiter} #{i+1}. review #{delimiter}\n" +
    @fields.map {|f|
      if !@options[:hide_empty] || (@options[:hide_empty] && !row[f].empty?)
        "#{Hirb::String.rjust(@headers[f], longest_header)}: #{row[f]}"
      else
        nil
      end
    }.compact.join("\n")
    i+= 1
    rows += row
  end
  rows = "#{@rows.size} review(s)" + rows
  if @options[:system_less] && system("which less 2>&1 > /dev/null")
    IO.popen('less', 'w') { |io| io.puts rows }
    []
  else
    [rows]
  end
end