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"),
]
- 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.
35
36
37
38
39
40
41
|
# File 'lib/deep_test/options.rb', line 35
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
27
28
29
30
31
32
33
|
# File 'lib/deep_test/options.rb', line 27
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
43
44
45
|
# File 'lib/deep_test/options.rb', line 43
def gathering_metrics?
!@metrics_file.nil?
end
|
#mirror_path(base) ⇒ Object
76
77
78
79
80
|
# File 'lib/deep_test/options.rb', line 76
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
47
48
49
50
51
52
|
# File 'lib/deep_test/options.rb', line 47
def new_listener_list
listeners = worker_listener.split(',').map do |listener|
eval(listener).new
end
ListenerList.new(listeners)
end
|
#origin_hostname ⇒ Object
54
55
56
|
# File 'lib/deep_test/options.rb', line 54
def origin_hostname
(Socket.gethostname == @origin_hostname) ? 'localhost' : @origin_hostname
end
|
#server ⇒ Object
96
97
98
|
# File 'lib/deep_test/options.rb', line 96
def server
Server.remote_reference(origin_hostname, server_port)
end
|
#to_command_line ⇒ Object
67
68
69
70
71
72
73
74
|
# File 'lib/deep_test/options.rb', line 67
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
19
20
21
|
# File 'lib/deep_test/options.rb', line 19
def ui=(value)
@ui = value.to_s
end
|
#ui_instance ⇒ Object
63
64
65
|
# File 'lib/deep_test/options.rb', line 63
def ui_instance
UI_INSTANCES[self] ||= eval(ui).new(self)
end
|
#worker_listener=(value) ⇒ Object
23
24
25
|
# File 'lib/deep_test/options.rb', line 23
def worker_listener=(value)
@worker_listener = value.to_s
end
|