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