class Reportabull::ReportBuilder
Attributes
columns[R]
humanize_name[RW]
options[R]
Public Class Methods
new(options = {}, &block)
click to toggle source
# File lib/reportabull/report_builder.rb, line 15 def initialize(options = {}, &block) @columns = [] @options = options @block = block @humanize_name = options.delete(:humanize_name) end
Public Instance Methods
build(collection = [], output: nil, format: nil)
click to toggle source
# File lib/reportabull/report_builder.rb, line 34 def build(collection = [], output: nil, format: nil) exec_columns builder = case format when :csv CsvBuilder.new(columns, options, collection, output || '') else Builder.new(columns, options, collection, output || []) end builder.build end
column(name, _options = {}, &block)
click to toggle source
# File lib/reportabull/report_builder.rb, line 30 def column(name, _options = {}, &block) @columns << Column.new(name, { humanize_name: humanize_name }, block) end
csv_options()
click to toggle source
# File lib/reportabull/report_builder.rb, line 22 def csv_options @csv_options ||= options.except( :encoding_options, :byte_order_mark, :column_names ) end
Private Instance Methods
exec_columns()
click to toggle source
# File lib/reportabull/report_builder.rb, line 50 def exec_columns @columns = [] instance_exec(&@block) if @block.present? columns end