class RSpec::Core::Bisect::Server
@private A DRb server that receives run results from a separate RSpec
process started by the bisect process.
Attributes
Fetched via DRb by the BisectDRbFormatter to determine when to abort.
Fetched via DRb to tell clients which files to run
Set
via DRb by the BisectDRbFormatter with the results of the run.
Public Class Methods
Source
# File lib/rspec/core/bisect/server.rb, line 13 def self.run server = new server.start yield server ensure server.stop end
Public Instance Methods
Source
# File lib/rspec/core/bisect/server.rb, line 21 def capture_run_results(files_or_directories_to_run=[], expected_failures=[]) self.expected_failures = expected_failures self.files_or_directories_to_run = files_or_directories_to_run self.latest_run_results = nil run_output = yield if latest_run_results.nil? || latest_run_results.all_example_ids.empty? raise BisectFailedError.for_failed_spec_run(run_output) end latest_run_results end
Source
# File lib/rspec/core/bisect/server.rb, line 46 def drb_port @drb_port ||= Integer(@drb.uri[/\d+$/]) end
Source
# File lib/rspec/core/bisect/server.rb, line 34 def start # Only allow remote DRb requests from this machine. DRb.install_acl ACL.new(%w[ deny all allow localhost allow 127.0.0.1 allow ::1 ]) # We pass `nil` as the first arg to allow it to pick a DRb port. @drb = DRb.start_service(nil, self) end