Sha256: d957e975a3bbc842c2861ef0249f71aacab3dcc0e209746b58c1bb33d34e97d7

Contents?: true

Size: 567 Bytes

Versions: 12

Compression:

Stored size: 567 Bytes

Contents

module Mext

  #
  # +Mext::RandomGenerator+
  #
  # singleton seedable version of the default Random Generator
  #
  class RandomGenerator

    private_class_method :new

    MEXT_SEED_TAG = 'MEXT_SEED'

    def initialize
      @mext_seed = ENV[MEXT_SEED_TAG] ? ENV[MEXT_SEED_TAG] : (ENV[MEXT_SEED_TAG] = (rand()*10e20).to_i.to_s)
      self.seed = @mext_seed
    end

    def seed
      @mext_seed.to_i
    end

    def seed=(val)
      Math.send(:srand, val.to_i)
    end

    def r
      Math.send(:rand)
    end

  end

  PRNG = RandomGenerator.send(:new)

end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
ruby-mext-0.21.6 lib/mext/random_generator.rb
ruby-mext-0.21.5 lib/mext/random_generator.rb
ruby-mext-0.21.4 lib/mext/random_generator.rb
ruby-mext-0.21.3 lib/mext/random_generator.rb
ruby-mext-0.21.2 lib/mext/random_generator.rb
ruby-mext-0.21.1 lib/mext/random_generator.rb
ruby-mext-0.21.0 lib/mext/random_generator.rb
ruby-mext-0.20.1 lib/mext/random_generator.rb
ruby-mext-0.20.0 lib/mext/random_generator.rb
ruby-mext-0.19.0 lib/mext/random_generator.rb
ruby-mext-0.18.3 lib/mext/random_generator.rb
ruby-mext-0.18.2 lib/mext/random_generator.rb