class RSpec::Core::Ordering::ConfigurationManager

@private Manages ordering configuration.

@note This is not intended to be used externally. Use

the APIs provided by `RSpec::Core::Configuration` instead.

Attributes

ordering_registry[R]
seed[R]

Public Class Methods

new() click to toggle source
# File lib/rspec/core/ordering.rb, line 119
def initialize
  @ordering_registry = Registry.new(self)
  @seed = rand(0xFFFF)
  @seed_forced = false
  @order_forced = false
end

Public Instance Methods

force(hash) click to toggle source
# File lib/rspec/core/ordering.rb, line 151
def force(hash)
  if hash.key?(:seed)
    self.seed = hash[:seed]
    @seed_forced  = true
    @order_forced = true
  elsif hash.key?(:order)
    self.order = hash[:order]
    @order_forced = true
  end
end
order=(type) click to toggle source
# File lib/rspec/core/ordering.rb, line 136
def order=(type)
  order, seed = type.to_s.split(':')
  @seed = seed.to_i if seed

  ordering_name = if order.include?('rand')
                    :random
                  elsif order == 'defined'
                    :defined
                  elsif order == 'recently-modified'
                    :recently_modified
                  end

  register_ordering(:global, ordering_registry.fetch(ordering_name)) if ordering_name
end
register_ordering(name, strategy=Custom.new(Proc.new { |l| yield l })) click to toggle source
# File lib/rspec/core/ordering.rb, line 162
def register_ordering(name, strategy=Custom.new(Proc.new { |l| yield l }))
  return if @order_forced && name == :global
  ordering_registry.register(name, strategy)
end
seed=(seed) click to toggle source
# File lib/rspec/core/ordering.rb, line 130
def seed=(seed)
  return if @seed_forced
  register_ordering(:global, ordering_registry.fetch(:random))
  @seed = seed.to_i
end
seed_used?() click to toggle source
# File lib/rspec/core/ordering.rb, line 126
def seed_used?
  ordering_registry.used_random_seed?
end