lib/hirb/helpers/table.rb in hirb-0.2.5 vs lib/hirb/helpers/table.rb in hirb-0.2.6

- old
+ new

@@ -44,29 +44,29 @@ # [:number] When set to true, numbers rows by adding a :hirb_number column as the first column. Default is false. # [:filters] A hash of fields and the filters that each row in the field must run through. The filter converts the cell's value by applying # a given proc or an array containing a method and optional arguments to it. # [:vertical] When set to true, renders a vertical table using Hirb::Helpers::VerticalTable. Default is false. # [:all_fields] When set to true, renders fields in all rows. Valid only in rows that are hashes. Default is false. + # [:description] When set to true, renders row count description at bottom. Default is true. # Examples: # Hirb::Helpers::Table.render [[1,2], [2,3]] # Hirb::Helpers::Table.render [[1,2], [2,3]], :field_lengths=>{0=>10} # Hirb::Helpers::Table.render [{:age=>10, :weight=>100}, {:age=>80, :weight=>500}] # Hirb::Helpers::Table.render [{:age=>10, :weight=>100}, {:age=>80, :weight=>500}], :headers=>{:weight=>"Weight(lbs)"} # Hirb::Helpers::Table.render [{:age=>10, :weight=>100}, {:age=>80, :weight=>500}], :filters=>{:age=>[:to_f]} def render(rows, options={}) - options.delete(:vertical) ? Helpers::VerticalTable.render(rows, options) : new(rows, options).render + options[:vertical] ? Helpers::VerticalTable.render(rows, options) : new(rows, options).render rescue TooManyFieldsForWidthError $stderr.puts "", "** Error: Too many fields for the current width. Configure your width " + "and/or fields to avoid this error. Defaulting to a vertical table. **" Helpers::VerticalTable.render(rows, options) end end #:stopdoc: def initialize(rows, options={}) - @options = options - @options[:filters] ||= {} + @options = {:description=>true, :filters=>{}}.merge(options) @fields = set_fields(rows) @rows = setup_rows(rows) @headers = @fields.inject({}) {|h,e| h[e] = e.to_s; h} if @options.has_key?(:headers) @headers = @options[:headers].is_a?(Hash) ? @headers.merge(@options[:headers]) : @@ -111,10 +111,10 @@ setup_field_lengths body += render_header body += render_rows body += render_footer end - body << render_table_description + body << render_table_description if @options[:description] body.join("\n") end def render_header @headers ? render_table_header : [render_border] \ No newline at end of file