class ActiveSet::Exporting::CSVStrategy

Public Class Methods

new(set, column_instructions) click to toggle source
# File lib/active_set/exporting/csv_strategy.rb, line 10
def initialize(set, column_instructions)
  @set = set
  @column_instructions = column_instructions
end

Public Instance Methods

execute() click to toggle source
# File lib/active_set/exporting/csv_strategy.rb, line 15
def execute
  ::CSV.generate do |output|
    output << column_keys_for(item: @set.first)
    @set.each do |item|
      output << column_values_for(item: item)
    end
  end
end

Private Instance Methods

column_keys_for(item:) click to toggle source
# File lib/active_set/exporting/csv_strategy.rb, line 26
def column_keys_for(item:)
  columns.map do |column|
    ColumnInstruction.new(column, item).key
  end
end
column_values_for(item:) click to toggle source
# File lib/active_set/exporting/csv_strategy.rb, line 32
def column_values_for(item:)
  columns.map do |column|
    ColumnInstruction.new(column, item).value
  end
end
columns() click to toggle source
# File lib/active_set/exporting/csv_strategy.rb, line 38
def columns
  @column_instructions.compact
end