bin/rubyc in rubyc-0.0.13 vs bin/rubyc in rubyc-0.0.14

- old
+ new

@@ -30,69 +30,69 @@ end end end class Rubyc < Thor - STDOUT.sync + $stdout.sync = true desc :map, "Apply Enumerable#map on each line" def map(code) proc = eval( "Proc.new{|line| l = line; #{code}}" ) - STDIN.map do |line| + $stdin.each do |line| puts proc.call(line.chomp).to_s end end desc :sum, "Calculate the sum of Numeric expressed on each line" def sum(code = nil) code ||= "line" proc = eval("Proc.new{|line| l = line; #{code}}") - sum = STDIN.sum do |line| + sum = $stdin.sum do |line| proc.call(line.chomp).to_f end puts sum end desc :select, "Apply Enumerable#select on each line" def select(code) - proc = eval( "Proc.new{|line| l = line; #{code}}" ) - STDIN.each do |line| + proc = eval("Proc.new{|line| l = line; #{code}}") + $stdin.each do |line| puts line if proc.call(line.chomp) end end desc :count_by, "Count the number of lines that have the same property. The property is defined by the return value of the given the block" def count_by(code = nil) code ||= "line" - proc = eval( "Proc.new{|line| l = line; #{code}}" ) - counts = STDIN.count_by do |line| + proc = eval("Proc.new{|line| l = line; #{code}}") + counts = $stdin.count_by do |line| proc.call(line.chomp) end puts counts.to_yaml end desc :sort_by, "Sort by" def sort_by(code = nil) code ||= "line" - proc = eval( "Proc.new{|line| l = line; #{code}}" ) - counts = STDIN.sort_by do |line| + proc = eval("Proc.new{|line| l = line; #{code}}") + counts = $stdin.sort_by do |line| proc.call(line.chomp) end puts counts end desc :grep, "Grep" def grep(pattern, code = nil) pattern = eval(pattern) - proc = code ? eval( "Proc.new{|line| l = line; #{code}}" ) : nil - puts STDIN.grep(pattern, &proc) + proc = code ? eval("Proc.new{|line| l = line; #{code}}") : nil + puts $stdin.grep(pattern, &proc) end desc :scan, "Scan" def scan(pattern, code = nil) pattern = eval(pattern) - proc = code ? eval( "Proc.new{|*match| m = match; #{code}}" ) : nil - str = STDIN.read + proc = code ? eval("Proc.new{|*match| m = match; #{code}}") : nil + str = $stdin.read str.scan(pattern, &proc) end desc :uniq, "uniq" def uniq @@ -104,10 +104,10 @@ STDIN.each{|line| puts line if line.chomp! != ""} end desc :merge, "Merge consecutive lines" def merge(nb_lines, sep = ",") - STDIN.each_slice(nb_lines.to_i){|chunk| puts chunk.map{|elem| elem.strip}.join(sep) } + STDIN.each_slice(nb_lines.to_i){|chunk| puts chunk.map{|elem| elem.strip}.join(sep)} end end Rubyc.start