class CsvBlueprints::Blueprint
Public Class Methods
new()
click to toggle source
# File lib/csv_blueprints/blueprint.rb, line 45 def initialize @columns = [] end
Public Instance Methods
column(name, value: nil)
click to toggle source
# File lib/csv_blueprints/blueprint.rb, line 49 def column(name, value: nil) @columns << column_for_value(name, value) end
column_names()
click to toggle source
# File lib/csv_blueprints/blueprint.rb, line 63 def column_names @columns.map(&:name) end
columns(*names, value:)
click to toggle source
# File lib/csv_blueprints/blueprint.rb, line 53 def columns(*names, value:) wrapped_value = value.respond_to?(:call) ? RepeatedValue.new(value, names.length) : value names.each { |name| column(name, value: wrapped_value) } end
default_values(row)
click to toggle source
# File lib/csv_blueprints/blueprint.rb, line 67 def default_values(row) Hash[@columns.map { |c| [c.name, c.value_for(row)] }] end
plan()
click to toggle source
# File lib/csv_blueprints/blueprint.rb, line 59 def plan PlanBuilder.new(self) end
Private Instance Methods
column_for_value(name, value)
click to toggle source
# File lib/csv_blueprints/blueprint.rb, line 73 def column_for_value(name, value) case value when :blank Column.new(name, nil) when :sequence Column.new(name, -> i { i }) else Column.new(name, value) end end