Hacker News new | ask | show | jobs
by infraruby 3695 days ago

  require "securerandom"

  module SecureRandom
    F = File.open("/dev/urandom")

    def self.random_bytes(n = nil)
      F.read(n || 16)
    end
  end
1 comments

Why not just make the argument default to 16? Is something non-obvious going on?
The caller may pass nil explicitly.
I don't understand. You may still pass nil explicitly if the argument defaults to 16?
Yes:

  def f(n = 16)
    n
  end

  p f # => 16
  p f(nil) # => nil