class ZSpec::Scheduler
Public Class Methods
new(queue:, tracker:)
click to toggle source
# File lib/zspec/scheduler.rb, line 3 def initialize(queue:, tracker:) @queue = queue @tracker = tracker end
Public Instance Methods
schedule(args)
click to toggle source
# File lib/zspec/scheduler.rb, line 8 def schedule(args) enqueue( extract(args) .uniq .map(&method(:normalize)) .sort_by(&method(:runtime)) .reverse ) end
Private Instance Methods
enqueue(examples)
click to toggle source
# File lib/zspec/scheduler.rb, line 34 def enqueue(examples) @queue.enqueue(examples) end
extract(args)
click to toggle source
# File lib/zspec/scheduler.rb, line 20 def extract(args) configuration = ::RSpec.configuration ::RSpec::Core::ConfigurationOptions.new([args]).configure(configuration) configuration.files_to_run end
normalize(file)
click to toggle source
# File lib/zspec/scheduler.rb, line 38 def normalize(file) file.sub("#{Dir.pwd}/", "./") end
runtime(example)
click to toggle source
# File lib/zspec/scheduler.rb, line 30 def runtime(example) runtimes[example].to_i || 0 end
runtimes()
click to toggle source
# File lib/zspec/scheduler.rb, line 26 def runtimes @runtimes ||= @tracker.all_runtimes end