Class: RspecPuppetFactsUnsupported::Randomizer

Inherits:
Object
  • Object
show all
Defined in:
lib/rspec-puppet-facts-unsupported/on_unsupported_os.rb

Overview

Private class to perform randomization

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts, envkey = :RSPEC_PUPPET_FACTS_UNSUPPORTED_ORDER) ⇒ Randomizer

Returns a new instance of Randomizer.



71
72
73
74
75
76
77
78
79
80
# 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

Instance Attribute Details

#orderObject (readonly)

Returns the value of attribute order.



69
70
71
# File 'lib/rspec-puppet-facts-unsupported/on_unsupported_os.rb', line 69

def order
  @order
end

#seedObject

Returns the value of attribute seed.



69
70
71
# File 'lib/rspec-puppet-facts-unsupported/on_unsupported_os.rb', line 69

def seed
  @seed
end

Instance Method Details

#getObject



82
83
84
# File 'lib/rspec-puppet-facts-unsupported/on_unsupported_os.rb', line 82

def get
  should_randomize? ? @randomizer : @repetitive_random
end

#should_randomize?Boolean

Returns:

  • (Boolean)


86
87
88
# File 'lib/rspec-puppet-facts-unsupported/on_unsupported_os.rb', line 86

def should_randomize?
  @order == :random || Integerlike.new(@order).integer?
end