Sha256: 84cd27cd142a0ccb02764c6b22f56b2ef69acb35dd7032b7a3f956f70db0a375
Contents?: true
Size: 761 Bytes
Versions: 1
Compression:
Stored size: 761 Bytes
Contents
require 'csv' module Julia class Builder attr_reader :collection def initialize(collection) @collection = collection end def self.columns @columns ||= {} end def self.column(keyname, action = nil) self.columns[keyname] = action end def build CSV.generate do |csv| csv << columns.keys collection.each do |record| csv << columns.map do |key, action| get_value(record, key, action) end end end end protected def get_value(record, key, action) return record.instance_exec(&action) if action.is_a?(Proc) record.send([action, key].compact.first) end def columns self.class.columns end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
julia_builder-0.1.0 | lib/julia/builder.rb |