Module: Specwrk
- Defined in:
- lib/specwrk.rb,
lib/specwrk/cli.rb,
lib/specwrk/ipc.rb,
lib/specwrk/web.rb,
lib/specwrk/hooks.rb,
lib/specwrk/client.rb,
lib/specwrk/worker.rb,
lib/specwrk/version.rb,
lib/specwrk/watcher.rb,
lib/specwrk/web/app.rb,
lib/specwrk/web/auth.rb,
lib/specwrk/seed_loop.rb,
lib/specwrk/store/base.rb,
lib/specwrk/web/logger.rb,
lib/specwrk/cli_reporter.rb,
lib/specwrk/list_examples.rb,
lib/specwrk/worker/executor.rb,
lib/specwrk/store/serializer.rb,
lib/specwrk/web/endpoints/pop.rb,
lib/specwrk/store/base_adapter.rb,
lib/specwrk/store/bucket_store.rb,
lib/specwrk/store/file_adapter.rb,
lib/specwrk/store/worker_store.rb,
lib/specwrk/web/endpoints/base.rb,
lib/specwrk/web/endpoints/seed.rb,
lib/specwrk/store/pending_store.rb,
lib/specwrk/store/memory_adapter.rb,
lib/specwrk/web/endpoints/health.rb,
lib/specwrk/web/endpoints/report.rb,
lib/specwrk/store/completed_store.rb,
lib/specwrk/web/endpoints/popable.rb,
lib/specwrk/worker/null_formatter.rb,
lib/specwrk/store/processing_store.rb,
lib/specwrk/web/endpoints/shutdown.rb,
lib/specwrk/web/endpoints/heartbeat.rb,
lib/specwrk/worker/progress_formatter.rb,
lib/specwrk/worker/completion_formatter.rb,
lib/specwrk/web/endpoints/complete_and_pop.rb
Defined Under Namespace
Modules: CLI, Hooks
Classes: BucketStore, CLIReporter, Client, CompletedStore, IPC, ListExamples, PendingStore, ProcessingStore, SeedLoop, Store, Watcher, Web, Worker, WorkerStore
Constant Summary
collapse
- Error =
Class.new(StandardError)
- ClientError =
Class.new(Error)
- UnhandledResponseError =
Class.new(ClientError)
- WaitingForSeedError =
Class.new(ClientError)
- NoMoreExamplesError =
Class.new(ClientError)
- CompletedAllExamplesError =
Class.new(ClientError)
- VERSION =
"0.21.0"
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.force_quit ⇒ Object
Returns the value of attribute force_quit.
20
21
22
|
# File 'lib/specwrk.rb', line 20
def force_quit
@force_quit
end
|
.net_http ⇒ Object
Returns the value of attribute net_http.
20
21
22
|
# File 'lib/specwrk.rb', line 20
def net_http
@net_http
end
|
.starting_pid ⇒ Object
Returns the value of attribute starting_pid.
21
22
23
|
# File 'lib/specwrk.rb', line 21
def starting_pid
@starting_pid
end
|
Class Method Details
.after_all_workers_exit(&block) ⇒ Object
59
60
61
|
# File 'lib/specwrk.rb', line 59
def after_all_workers_exit(&block)
Hooks.register(:after_all_workers_exit, &block)
end
|
.after_seed(&block) ⇒ Object
27
28
29
|
# File 'lib/specwrk.rb', line 27
def after_seed(&block)
Hooks.register(:after_seed, &block)
end
|
.after_server_seed(&block) ⇒ Object
35
36
37
|
# File 'lib/specwrk.rb', line 35
def after_server_seed(&block)
Hooks.register(:after_server_seed, &block)
end
|
.after_worker_examples_execute(&block) ⇒ Object
51
52
53
|
# File 'lib/specwrk.rb', line 51
def after_worker_examples_execute(&block)
Hooks.register(:after_worker_examples_execute, &block)
end
|
.after_worker_fork(&block) ⇒ Object
43
44
45
|
# File 'lib/specwrk.rb', line 43
def after_worker_fork(&block)
Hooks.register(:after_worker_fork, &block)
end
|
.before_seed(&block) ⇒ Object
23
24
25
|
# File 'lib/specwrk.rb', line 23
def before_seed(&block)
Hooks.register(:before_seed, &block)
end
|
.before_server_seed(&block) ⇒ Object
31
32
33
|
# File 'lib/specwrk.rb', line 31
def before_server_seed(&block)
Hooks.register(:before_server_seed, &block)
end
|
.before_worker_examples_execute(&block) ⇒ Object
47
48
49
|
# File 'lib/specwrk.rb', line 47
def before_worker_examples_execute(&block)
Hooks.register(:before_worker_examples_execute, &block)
end
|
.before_worker_exit(&block) ⇒ Object
55
56
57
|
# File 'lib/specwrk.rb', line 55
def before_worker_exit(&block)
Hooks.register(:before_worker_exit, &block)
end
|
.before_worker_fork(&block) ⇒ Object
39
40
41
|
# File 'lib/specwrk.rb', line 39
def before_worker_fork(&block)
Hooks.register(:before_worker_fork, &block)
end
|
.human_readable_duration(total_seconds, precision: 2) ⇒ Object
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
# File 'lib/specwrk.rb', line 83
def human_readable_duration(total_seconds, precision: 2)
secs = total_seconds.to_f
hours = (secs / 3600).to_i
mins = ((secs % 3600) / 60).to_i
seconds = secs % 60
parts = []
parts << "#{hours}h" if hours.positive?
parts << "#{mins}m" if mins.positive?
if seconds.positive?
sec_str = format("%0.#{precision}f", seconds).sub(/\.?0+$/, "")
parts << "#{sec_str}s"
end
parts.join(" ")
end
|
.wait_for_pids_exit(pids) ⇒ Object
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
# File 'lib/specwrk.rb', line 63
def wait_for_pids_exit(pids)
exited_pids = {}
loop do
pids.each do |pid|
next if exited_pids.key? pid
_, status = Process.waitpid2(pid, Process::WNOHANG)
exited_pids[pid] = status.exitstatus if status&.exitstatus
rescue Errno::ECHILD
exited_pids[pid] = 1
end
break if exited_pids.keys.length == pids.length
sleep 0.1
end
exited_pids
end
|