Parent

Class Index [+]

Quicksearch

Cucumber::Cli::DRbClient

Runs features on a DRB server, originally created with Spork compatibility in mind.

Constants

DEFAULT_PORT

Public Class Methods

run(args, error_stream, out_stream, port = nil) click to toggle source
    # File lib/cucumber/cli/drb_client.rb, line 14
14:         def run(args, error_stream, out_stream, port = nil)
15:           port ||= ENV["CUCUMBER_DRB"] || DEFAULT_PORT
16: 
17:           setup_support_for_io_streams_over_drb
18: 
19:           feature_server = DRbObject.new_with_uri("druby://127.0.0.1:#{port}")
20:           cloned_args = [] # I have no idea why this is needed, but if the regular args are sent then DRb magically transforms it into a DRb object - not an array
21:           args.each { |arg| cloned_args << arg }
22:           feature_server.run(cloned_args, error_stream, out_stream)
23:         rescue DRb::DRbConnError => e
24:           raise DRbClientError, "No DRb server is running."
25:         end

Private Class Methods

setup_support_for_io_streams_over_drb() click to toggle source
    # File lib/cucumber/cli/drb_client.rb, line 28
28:         def setup_support_for_io_streams_over_drb
29:           # See http://redmine.ruby-lang.org/issues/show/496 as to why we specify localhost:0
30:           begin
31:             DRb.start_service("druby://localhost:0")
32:           rescue SocketError, Errno::EADDRNOTAVAIL
33:             # Ruby-1.8.7 on snow leopard doesn't like localhost:0 - but just :0
34:             # seems to work just fine
35:             DRb.start_service("druby://:0")
36:           end
37:         end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.