class CsvTool

Public Class Methods

cut( args ) click to toggle source

command line tools

# File lib/csvutils/commands/cut.rb, line 7
def self.cut( args )

  config = { columns: [] }

  parser = OptionParser.new do |opts|
     opts.banner = "Usage: csvcut [OPTS] source [dest]"

     opts.on("-c", "--columns=COLUMNS", "Name of header columns" ) do |columns|
       config[:columns] = columns.split(/[,|;]/)   ## allow differnt separators
     end

     opts.on("-h", "--help", "Prints this help") do
       puts opts
       exit
     end
  end

  parser.parse!( args )

  ## pp config
  ## pp args

  source = args[0]
  dest   = args[1] || source   ## default to same as source (note: overwrites datafile in place!!!)

  unless args[0]
    puts "** error: arg missing - source filepath required - #{args.inspect}"
    exit 1
  end

  columns = config[:columns]

  CsvUtils.cut( source, *columns, output: dest )
end
head( args ) click to toggle source

command line tools

# File lib/csvutils/commands/head.rb, line 7
def self.head( args )

  config = { n: 4 }

  parser = OptionParser.new do |opts|
     opts.banner = "Usage: csvhead [OPTS] datafile ..."

     opts.on("-n", "--num=NUM", "Number of rows" ) do |num|
       config[:n] = num.to_i
     end

     opts.on("-h", "--help", "Prints this help") do
       puts opts
       exit
     end
  end

  parser.parse!( args )

  ## pp config
  ## pp args

  args.each do |arg|
    path = arg
    n = config[:n]

    puts "== #{File.basename(path)} (#{File.dirname(path)}) =="
    puts
    CsvUtils.head( path, n: n )
    puts
  end # each arg
end
header( args ) click to toggle source

command line tools

# File lib/csvutils/commands/header.rb, line 7
def self.header( args )

  config = {}

  parser = OptionParser.new do |opts|
     opts.banner = "Usage: csvheader [OPTS] datafile ..."

     opts.on("-h", "--help", "Prints this help") do
       puts opts
       exit
     end
  end

  parser.parse!( args )

  ## pp config
  ## pp args

  args.each do |arg|
    path = arg

    puts "== #{File.basename(path)} (#{File.dirname(path)}) =="
    puts
    CsvUtils.pp_header( CsvUtils.header( path ) )
    puts
  end # each arg
end
split( args ) click to toggle source

command line tools

# File lib/csvutils/commands/split.rb, line 7
def self.split( args )

  config = { columns: [] }

  parser = OptionParser.new do |opts|
     opts.banner = "Usage: csvsplit [OPTS] datafile ..."

     opts.on("-c", "--columns=COLUMNS", "Name of header columns" ) do |columns|
       config[:columns] = columns.split(/[,|;]/)   ## allow differnt separators
     end

     opts.on("-h", "--help", "Prints this help") do
       puts opts
       exit
     end
  end

  parser.parse!( args )

  ## pp config
  ## pp args

  args.each do |arg|
    path = arg
    columns = config[:columns]

    puts "== #{File.basename(path)} (#{File.dirname(path)}) =="
    puts
    CsvUtils.split( path, *columns )
    puts
  end
end
stat( args ) click to toggle source

command line tools

# File lib/csvutils/commands/stat.rb, line 7
def self.stat( args )

  config = { columns: [] }

  parser = OptionParser.new do |opts|
     opts.banner = "Usage: csvstat [OPTS] datafile ..."

     opts.on("-c", "--columns=COLUMNS", "Name of header columns" ) do |columns|
       config[:columns] = columns.split(/[,|;]/)   ## allow differnt separators
     end

     opts.on("-h", "--help", "Prints this help") do
       puts opts
       exit
     end
  end

  parser.parse!( args )

  ## pp config
  ## pp args

  args.each do |arg|
    path = arg
    columns = config[:columns]

    puts "== #{File.basename(path)} (#{File.dirname(path)}) =="
    puts
    CsvUtils.stat( path, *columns )
    puts
  end # each arg
end