bin/dimsum in dimsum-0.0.1 vs bin/dimsum in dimsum-0.0.2

- old
+ new

@@ -1,39 +1,26 @@ -#!/usr/bin/env ruby - require 'optparse' +require 'dimsum' +include Dimsum + options = {} OptionParser.new do |opts| opts.banner = "Usage: sample.rb [options]" opts.on("-n [Fixnum]", "--number [Fixnum]", "") do |n| options[:lines] = n end end.parse! -filename = ARGV[0] +options[:lines] ||= "5" + lines = options[:lines].to_i -raise ArgumentError, "The filename is required" unless filename -file_size = `wc -l #{filename}`.strip.to_i +reservoir_sample = if ARGV.length > 0 + filename = ARGV[0] + reservoir_file(filename, lines) + else + reservoir_stdin(lines) + end -last_2 = `tail -c2 #{filename}` -if last_2 == "\n\n" - file_size -= 1 -end - -random = Random.new - -File.open(filename, "r").lines do |line| - if file_size == 0 - next - end - r = random.rand(0 .. file_size - 1) - if r < lines - STDOUT.print line - STDOUT.flush - lines -= 1 - end - file_size -= 1 -end - +reservoir_sample.each{ |l| STDOUT.print l }