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