Sha256: 8f49a8782c33809a5aec744c9fac086fee84e1e30314b735852b0755696e3356
Contents?: true
Size: 846 Bytes
Versions: 1
Compression:
Stored size: 846 Bytes
Contents
# extract subset of columns from CSV require "csv" class Masticate::Plucker < Masticate::Base def configure(opts) standard_options(opts) @fields = opts[:fields] or raise "missing fields to pluck" end def pluck(opts) execute(opts) end def crunch(row) if !@headers @headers = row @indexes = @fields.map do |f| case f when String row.index(f) or raise "Unable to find column '#{f}'" when Fixnum if f > row.count raise "Cannot pluck column #{f}, there are only #{row.count} fields" else f-1 end else raise "Invalid field descriptor '#{f}'" end end @indexes.map {|i| row[i]} elsif row # output is just the selected columns @indexes.map {|i| row[i]} end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
masticate-0.2.1 | lib/masticate/plucker.rb |