module FFaker::Random

Random Number Generator (RNG) used with ModuleUtils#fetch, shuffle, rand in order to provide deterministic repeatability.

Public Class Methods

new_rng() click to toggle source

Returns a new Random object instantiated with seed.

# File lib/ffaker.rb, line 125
def self.new_rng
  ::Random.new(seed)
end
rand(max = nil) click to toggle source

Returns a random number using an RNG with a known seed.

# File lib/ffaker.rb, line 113
def self.rand(max = nil)
  return rng.rand(max) if max

  rng.rand
end
reset!() click to toggle source

Reset the RNG back to its initial state.

# File lib/ffaker.rb, line 108
def self.reset!
  @rng = new_rng
end
rng() click to toggle source

Returns the current Random object.

# File lib/ffaker.rb, line 120
def self.rng
  @rng ||= new_rng
end
seed() click to toggle source

Returns the current RNG seed.

# File lib/ffaker.rb, line 96
def self.seed
  @seed ||= ::Random.new_seed
end
seed=(new_seed) click to toggle source

Sets the RNG seed and creates a new internal RNG.

# File lib/ffaker.rb, line 101
def self.seed=(new_seed)
  @seed = new_seed
  reset!
  new_seed
end