Sha256: 4b3b0ef7d3147dffe5eadf3ff8eabdfc11a0399798e16f1aafecea4d189b5f34

Contents?: true

Size: 689 Bytes

Versions: 1

Compression:

Stored size: 689 Bytes

Contents

#!/usr/bin/env ruby

require 'optparse'

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]
lines = options[:lines].to_i
raise ArgumentError, "The filename is required" unless filename

file_size = `wc -l #{filename}`.strip.to_i

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dimsum-0.0.1 bin/dimsum