Class: DeepTest::Options
- Inherits:
-
Object
show all
- Defined in:
- lib/deep_test/options.rb
Defined Under Namespace
Classes: InvalidOptionError
Constant Summary
collapse
- VALID_OPTIONS =
[
Option.new(:distributed_server, Option::String, nil),
Option.new(:number_of_workers, Option::Integer, 2),
Option.new(:metrics_file, Option::String, nil),
Option.new(:pattern, Option::String, nil),
Option.new(:server_port, Option::Integer, 6969),
Option.new(:sync_options, Option::Hash, {}),
Option.new(:timeout_in_seconds, Option::Integer, 30),
Option.new(:ui, Option::String, "DeepTest::UI::Console"),
Option.new(:worker_listener, Option::String, "DeepTest::NullWorkerListener"),
Option.new(:libs, Option::Array, []),
Option.new(:requires, Option::Array, []),
Option.new(:test_collector, Option::Symbol, :objectspace),
]
- UI_INSTANCES =
Don’t store UI instances in the options instance, which will need to be dumped over DRb. UI instances may not be dumpable and we don’t want to have to start yet another DRb Server
{}
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(hash) ⇒ Options
Returns a new instance of Options.
38
39
40
41
42
43
44
|
# File 'lib/deep_test/options.rb', line 38
def initialize(hash)
@origin_hostname = Socket.gethostname
check_option_keys(hash)
VALID_OPTIONS.each do |option|
send("#{option.name}=", hash[option.name] || option.default)
end
end
|
Class Method Details
.from_command_line(command_line) ⇒ Object
30
31
32
33
34
35
36
|
# File 'lib/deep_test/options.rb', line 30
def self.from_command_line(command_line)
hash = {}
VALID_OPTIONS.each do |option|
hash[option.name] = option.from_command_line(command_line)
end
new(hash)
end
|
Instance Method Details
#gathering_metrics? ⇒ Boolean
46
47
48
|
# File 'lib/deep_test/options.rb', line 46
def gathering_metrics?
!@metrics_file.nil?
end
|
#mirror_path(base) ⇒ Object
79
80
81
82
83
|
# File 'lib/deep_test/options.rb', line 79
def mirror_path(base)
raise "No source directory specified in sync_options" unless sync_options[:source]
relative_mirror_path = origin_hostname + sync_options[:source].gsub('/','_')
"#{base}/#{relative_mirror_path}"
end
|
#new_listener_list ⇒ Object
50
51
52
53
54
55
|
# File 'lib/deep_test/options.rb', line 50
def new_listener_list
listeners = worker_listener.split(',').map do |listener|
eval(listener).new
end
ListenerList.new(listeners)
end
|
#origin_hostname ⇒ Object
57
58
59
|
# File 'lib/deep_test/options.rb', line 57
def origin_hostname
@origin_hostname
end
|
#server ⇒ Object
99
100
101
|
# File 'lib/deep_test/options.rb', line 99
def server
Server.remote_reference(origin_hostname, server_port)
end
|
#to_command_line ⇒ Object
70
71
72
73
74
75
76
77
|
# File 'lib/deep_test/options.rb', line 70
def to_command_line
command_line = []
VALID_OPTIONS.each do |option|
value = send(option.name)
command_line << option.to_command_line(value)
end
command_line.compact.join(' ')
end
|
#ui=(value) ⇒ Object
22
23
24
|
# File 'lib/deep_test/options.rb', line 22
def ui=(value)
@ui = value.to_s
end
|
#ui_instance ⇒ Object
66
67
68
|
# File 'lib/deep_test/options.rb', line 66
def ui_instance
UI_INSTANCES[self] ||= eval(ui).new(self)
end
|
#worker_listener=(value) ⇒ Object
26
27
28
|
# File 'lib/deep_test/options.rb', line 26
def worker_listener=(value)
@worker_listener = value.to_s
end
|