class Julia::Builder
Attributes
collection[R]
csv_options[R]
Public Class Methods
build(collection, csv_options = Hash.new)
click to toggle source
# File lib/julia/builder.rb, line 42 def self.build(collection, csv_options = Hash.new) new(collection, csv_options).build end
column(keyname, action = nil, &block)
click to toggle source
# File lib/julia/builder.rb, line 18 def self.column(keyname, action = nil, &block) columns_config[keyname] = Action.new(keyname, action, &block) end
columns(*args)
click to toggle source
# File lib/julia/builder.rb, line 22 def self.columns(*args) args.each do |key| column(key) end end
columns_config()
click to toggle source
# File lib/julia/builder.rb, line 28 def self.columns_config @columns_config ||= {} end
new(collection, csv_options = Hash.new)
click to toggle source
# File lib/julia/builder.rb, line 7 def initialize(collection, csv_options = Hash.new) @collection, @csv_options = collection, default_options.merge(csv_options) end
Public Instance Methods
build()
click to toggle source
# File lib/julia/builder.rb, line 32 def build CSV.generate(**csv_options) do |csv| collection.each do |record| csv << columns_config.values.map do |action| action.get_value(record, self) end end end end
default_options()
click to toggle source
# File lib/julia/builder.rb, line 11 def default_options { headers: columns_config.keys, write_headers: true } end
Protected Instance Methods
columns_config()
click to toggle source
# File lib/julia/builder.rb, line 48 def columns_config self.class.columns_config end