class RspecPuppetFactsUnsupported::Randomizer

Private class to perform randomization

Constants

SHORT_MAX

Attributes

order[R]
seed[R]

Public Class Methods

new(opts, envkey = :RSPEC_PUPPET_FACTS_UNSUPPORTED_ORDER) click to toggle source
# File lib/rspec-puppet-facts-unsupported/on_unsupported_os.rb, line 71
def initialize(opts, envkey = :RSPEC_PUPPET_FACTS_UNSUPPORTED_ORDER)
  opts[:order] ||= :random
  randomize_seed
  envvar = ENV[envkey.to_s]
  ordervalue = envvar.nil? ? opts[:order] : envvar.to_sym
  ilike = Integerlike.new(ordervalue)
  self.seed = ilike.to_i if ilike.integer?
  @order = ordervalue
  @repetitive_random = Random.new(42)
end

Public Instance Methods

get() click to toggle source
# File lib/rspec-puppet-facts-unsupported/on_unsupported_os.rb, line 82
def get
  should_randomize? ? @randomizer : @repetitive_random
end
should_randomize?() click to toggle source
# File lib/rspec-puppet-facts-unsupported/on_unsupported_os.rb, line 86
def should_randomize?
  @order == :random || Integerlike.new(@order).integer?
end

Private Instance Methods

randomize_seed() click to toggle source
# File lib/rspec-puppet-facts-unsupported/on_unsupported_os.rb, line 94
def randomize_seed
  self.seed = Random.new.rand(0..SHORT_MAX)
end
seed=(seed) click to toggle source
# File lib/rspec-puppet-facts-unsupported/on_unsupported_os.rb, line 98
def seed=(seed)
  @seed = seed
  @randomizer = Random.new(@seed)
end