Sha256: 282c2362793ae37af0a70ef0df359ba41b8bd63e3e1046cae288730d5b4f8709
Contents?: true
Size: 993 Bytes
Versions: 5
Compression:
Stored size: 993 Bytes
Contents
#!/usr/bin/env ruby require 'rubygems' require 'optparse' $LOAD_PATH << File.join(File.dirname(__FILE__), '..', 'lib') require 'pru' options = {} OptionParser.new do |opts| opts.banner = <<BANNER Pipeable Ruby Use ruby in your pipes, forget about grep / sed / awk / wc ... Map works on each line as String Reduce works on all lines as Array (optional or via -r) Usage: something | pru 'map' ['reduce'] something | pru -r 'reduce' Options: BANNER opts.on("-r", "--reduce S","reduce via") {|s| options[:reduce] = s } opts.on("-h", "--help","Show this.") { puts opts; exit } opts.on('-v', '--version','Show Version'){ puts Pru::VERSION; exit} end.parse! map, reduce = ARGV reduce ||= options[:reduce] map = nil if map and map.empty? if map and not reduce Pru.map($stdin, map){|x| puts x } elsif map and reduce results = [] Pru.map($stdin, map){|x| results << x } puts Pru.reduce(results, reduce) elsif reduce puts Pru.reduce($stdin.read.split("\n"), reduce) end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
pru-0.1.4 | bin/pru |
pru-0.1.3 | bin/pru |
pru-0.1.2 | bin/pru |
pru-0.1.1 | bin/pru |
pru-0.1.0 | bin/pru |