class SimpleCsvCreator::Generator

Attributes

columns[R]

Public Class Methods

new() click to toggle source
# File lib/simple_csv_creator/generator.rb, line 5
def initialize
  @columns = []
end

Public Instance Methods

column(column_name, &block) click to toggle source
# File lib/simple_csv_creator/generator.rb, line 9
def column(column_name, &block)
  column = ::SimpleCsvCreator::Column.new(column_name, &block)
  @columns.push(column)
end
generate_using(generator) click to toggle source
# File lib/simple_csv_creator/generator.rb, line 22
def generate_using(generator)
  generate do |csv, columns|
    generator.call do |resource|
      csv << columns.map { |column| column.value(resource) }
    end
  end
end
simple_generate(resources) click to toggle source
# File lib/simple_csv_creator/generator.rb, line 14
def simple_generate(resources)
  generate do |csv, columns|
    resources.each do |resource|
      csv << columns.map { |column| column.value(resource) }
    end
  end
end

Private Instance Methods

column_human_names() click to toggle source
# File lib/simple_csv_creator/generator.rb, line 39
def column_human_names
  @columns.map(&:human_name)
end
generate() { |csv, columns| ... } click to toggle source
# File lib/simple_csv_creator/generator.rb, line 32
def generate
  CSV.generate do |csv|
    csv << column_human_names
    yield(csv, columns)
  end
end