tork 19.3.0 → 19.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,16 @@
1
+ ## Version 19.3.1 (2013-06-07)
2
+
3
+ Patch:
4
+
5
+ * server: rescue from failed writes to asynchronously closed clients.
6
+
7
+ Thanks to Jonathan Cairns for reporting and fixing this bug in GH-53:
8
+ https://github.com/sunaku/tork/issues/53
9
+
10
+ Other:
11
+
12
+ * Upgrade to md2man 2.0.
13
+
1
14
  ## Version 19.3.0 (2013-05-05)
2
15
 
3
16
  Minor:
@@ -1,4 +1,4 @@
1
- .TH TORK\-DRIVER 1 2013\-05\-05 19.3.0
1
+ .TH TORK\-DRIVER 1 2013\-06\-07 19.3.1
2
2
  .SH NAME
3
3
  .PP
4
4
  tork\-driver \- drives
@@ -0,0 +1,93 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="generator" content="md2man 2.0.0 https://github.com/sunaku/md2man" />
6
+ <title>tork-driver(1) &mdash; drives tork-engine(1) when files change</title>
7
+ <link rel="stylesheet" href="../style.css"/>
8
+ <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
9
+ </head>
10
+ <body><div class="navbar"><div class="navbar-inner"><span class="brand"><a href="../index.html#man1">man1</a>/tork-driver.1</span></div></div><div class="container-fluid"><h1 id="TORK-DRIVER-1-2013-06-07-19-3-1">TORK-DRIVER 1 2013-06-07 19.3.1</h1><h2 id="NAME">NAME</h2><p>tork-driver - drives <a class="md2man-xref" href="../man1/tork-engine.1.html">tork-engine(1)</a> when files change</p><h2 id="SYNOPSIS">SYNOPSIS</h2><p><code>tork-driver</code> [<em>OPTION</em>]...</p><h2 id="DESCRIPTION">DESCRIPTION</h2><p>This program drives <a class="md2man-xref" href="../man1/tork-engine.1.html">tork-engine(1)</a> when <a class="md2man-xref" href="../man1/tork-herald.1.html">tork-herald(1)</a> reports files changes.</p><p>This program can be controlled remotely by multiple <a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a> instances.</p><h3 id="Input">Input</h3><p>This program reads the following commands, which are single-line JSON arrays,
11
+ from stdin and performs the actions described respectively.</p><dl><dt><code>[&quot;run_all_test_files&quot;]</code></dt><dd>Runs all test files found within and beneath the current working directory.</dd></dl><dl><dt><em>...</em></dt><dd>Commands for <a class="md2man-xref" href="../man1/tork-engine.1.html">tork-engine(1)</a> are also accepted here.</dd></dl><h3 id="Output">Output</h3><p>This program prints the following messages, which are single-line JSON arrays,
12
+ to stdout.</p><dl><dt><code>[&quot;reabsorb&quot;,</code> <em>overhead_file</em><code>]</code></dt><dd>Test execution overhead is being reabsorbed because <em>overhead_file</em> has
13
+ changed.</dd></dl><dl><dt><em>...</em></dt><dd>Messages from <a class="md2man-xref" href="../man1/tork-engine.1.html">tork-engine(1)</a> and <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a> are also reproduced here.</dd></dl><h2 id="OPTIONS">OPTIONS</h2><dl><dt><code>-h</code>, <code>--help</code></dt><dd>Show this help manual.</dd></dl><h2 id="FILES">FILES</h2><dl><dt><em>.tork/config.rb</em></dt><dd>Optional Ruby script that is loaded inside the driver process on startup.
14
+ It can read and change the <code>ENV[&#39;TORK_CONFIGS&#39;]</code> environment variable.</dd></dl><dl><dt><code>.tork/driver.rb</code></dt><dd>Optional Ruby script that is loaded inside the driver process on startup.
15
+ It can read and change the following variables.</dd></dl>
16
+ <blockquote>
17
+ <dl><dt><code>Tork::Driver::REABSORB_FILE_GREPS</code></dt><dd>Array of strings or regular expressions that match the paths of overhead
18
+ files. If any of these equal or match the path of a changed file
19
+ reported by <a class="md2man-xref" href="../man1/tork-herald.1.html">tork-herald(1)</a>, then the test execution overhead will be
20
+ reabsorbed in <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a>.</dd></dl><dl><dt><code>Tork::Driver::ALL_TEST_FILE_GLOBS</code></dt><dd>Array of file globbing patterns that describe the set of all test files
21
+ in your Ruby application.</dd></dl><dl><dt><code>Tork::Driver::TEST_FILE_GLOBBERS</code></dt><dd>Hash that maps (1) a regular expression describing a set of file paths
22
+ to (2) a lambda function that accepts a <code>MatchData</code> object containing
23
+ the results of the regular expression matching against the path of a
24
+ changed file, and yields one or more file globbing patterns (a single
25
+ string, or an array of strings) that describe a set of test files that
26
+ need to be run.</dd></dl><dl><dd>The results of these functions are recursively expanded (fed back into
27
+ them) to construct an entire dependency tree of test files that need to
28
+ be run. For instance, if one function returns a glob that yields files
29
+ matched by another function, then that second function will be called to
30
+ glob more test files. This process repeats until all dependent test
31
+ files have been accounted for.</dd></dl>
32
+ <blockquote>
33
+ <p><strong><em>Single glob expansion</em></strong></p><p>For example, if test files had the same names as their source files
34
+ followed by an underscore and the file name in reverse like this:</p>
35
+ <ul>
36
+ <li>lib/hello.rb =&gt; test/hello_olleh.rb</li>
37
+ <li>app/world.rb =&gt; spec/world_ldrow.rb</li>
38
+ </ul>
39
+ <p>Then you would add the following to your configuration file:</p>
40
+ <pre><code>Tork::Driver::TEST_FILE_GLOBBERS.update(
41
+ %r{^(lib|app)/.*?([^/]+?)\.rb$} =&gt; lambda do |matches|
42
+ name = matches[2]
43
+ &quot;{test,spec}/**/#{name}_#{name.reverse}.rb&quot;
44
+ end
45
+ )
46
+ </code></pre>
47
+ <p><strong><em>Multi-glob expansion</em></strong></p><p>For example, if test files could optionally have &quot;test&quot; or &quot;spec&quot;
48
+ prefixed or appended to their already peculiar names, like so:</p>
49
+ <ul>
50
+ <li>lib/hello.rb =&gt; test/hello_olleh_test.rb</li>
51
+ <li>lib/hello.rb =&gt; test/test_hello_olleh.rb</li>
52
+ <li>app/world.rb =&gt; spec/world_ldrow_spec.rb</li>
53
+ <li>app/world.rb =&gt; spec/spec_world_ldrow.rb</li>
54
+ </ul>
55
+ <p>Then you would add the following to your configuration file:</p>
56
+ <pre><code>Tork::Driver::TEST_FILE_GLOBBERS.update(
57
+ %r{^(lib|app)/.*?([^/]+?)\.rb$} =&gt; lambda do |matches|
58
+ name = matches[2]
59
+ [&quot;{test,spec}/**/#{name}_#{name.reverse}.rb&quot;,
60
+ &quot;{test,spec}/**/#{name}_#{name.reverse}_{test,spec}.rb&quot;,
61
+ &quot;{test,spec}/**/{test,spec}_#{name}_#{name.reverse}.rb&quot;]
62
+ end
63
+ )
64
+ </code></pre>
65
+ <p><strong><em>Recursive expansion</em></strong></p><p>For example, if you wanted to run test files associated with
66
+ <code>lib/hello.rb</code> whenever the <code>app/world.rb</code> file changed, then you would
67
+ write:</p>
68
+ <pre><code>Tork::Driver::TEST_FILE_GLOBBERS.update(
69
+ %r{^app/world\.rb$} =&gt; lambda do |matches|
70
+ &#39;lib/hello.rb&#39;
71
+ end
72
+ )
73
+ </code></pre>
74
+ <p>This effectively aliases one file onto another, but not in both
75
+ directions.</p><p><strong><em>Suppressing expansion</em></strong></p><p>These lambda functions can return <code>nil</code> if they do not wish for a
76
+ particular source file to be tested. For example, to ignore tests for
77
+ all source files except those within a <code>models/</code> directory, you would
78
+ write:</p>
79
+ <pre><code>Tork::Driver::TEST_FILE_GLOBBERS.update(
80
+ %r{^(lib|app)(/.*?)([^/]+?)\.rb$} =&gt; lambda do |matches|
81
+ if matches[2].include? &#39;/models/&#39;
82
+ [&quot;{test,spec}/**/#{matches[3]}_{test,spec}.rb&quot;,
83
+ &quot;{test,spec}/**/{test,spec}_#{matches[3]}.rb&quot;]
84
+ #else # implied by the Ruby language
85
+ #nil # implied by the Ruby language
86
+ end
87
+ end
88
+ )
89
+ </code></pre>
90
+ </blockquote>
91
+ </blockquote>
92
+ <h2 id="ENVIRONMENT">ENVIRONMENT</h2><p>See <a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>.</p><h2 id="SEE-ALSO">SEE ALSO</h2><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>, <a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a>, <a class="md2man-xref" href="../man1/tork-herald.1.html">tork-herald(1)</a>, <a class="md2man-xref" href="../man1/tork-engine.1.html">tork-engine(1)</a>, <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a></p></div></body>
93
+ </html>
@@ -1,4 +1,4 @@
1
- .TH TORK\-ENGINE 1 2013\-05\-05 19.3.0
1
+ .TH TORK\-ENGINE 1 2013\-06\-07 19.3.1
2
2
  .SH NAME
3
3
  .PP
4
4
  tork\-engine \- wraps
@@ -0,0 +1,19 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="generator" content="md2man 2.0.0 https://github.com/sunaku/md2man" />
6
+ <title>tork-engine(1) &mdash; wraps tork-master(1) with bookkeeping</title>
7
+ <link rel="stylesheet" href="../style.css"/>
8
+ <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
9
+ </head>
10
+ <body><div class="navbar"><div class="navbar-inner"><span class="brand"><a href="../index.html#man1">man1</a>/tork-engine.1</span></div></div><div class="container-fluid"><h1 id="TORK-ENGINE-1-2013-06-07-19-3-1">TORK-ENGINE 1 2013-06-07 19.3.1</h1><h2 id="NAME">NAME</h2><p>tork-engine - wraps <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a> with bookkeeping</p><h2 id="SYNOPSIS">SYNOPSIS</h2><p><code>tork-engine</code> [<em>OPTION</em>]...</p><h2 id="DESCRIPTION">DESCRIPTION</h2><p>This program uses <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a> to run tests and keeps track of the results.</p><p>This program can be controlled remotely by multiple <a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a> instances.</p><h3 id="Input">Input</h3><p>This program reads the following commands, which are single-line JSON arrays,
11
+ from stdin and performs the actions described respectively.</p><dl><dt><code>[&quot;reabsorb_overhead&quot;]</code></dt><dd>Stops any test files that are currently running, reabsorbs the test
12
+ execution overhead, and then re-runs those stopped test files.</dd></dl><dl><dt><code>[&quot;run_test_file&quot;</code>, <em>test_file</em><code>,</code> <em>line_numbers</em>...<code>]</code></dt><dd>Runs tests that correspond to the given sequence of <em>line_numbers</em> in the
13
+ given <em>test_file</em>. If no <em>line_numbers</em> are given, then only those lines
14
+ that have changed since the last run of <em>test_file</em> will be substituted.
15
+ If any <em>line_numbers</em> are zero, then the entire <em>test_file</em> will be run.</dd></dl><dl><dt><code>[&quot;run_test_files&quot;</code>, <em>test_files_with_optional_line_numbers</em><code>]</code></dt><dd>Calls the <code>run_test_file</code> command once for each item in the given array.</dd></dl><dl><dt><code>[&quot;stop_running_test_files&quot;</code>, <em>signal</em><code>]</code></dt><dd>Stops test files that are currently running by sending the given <em>signal</em>
16
+ (optional; defaults to &quot;SIGTERM&quot;) to their respective worker processes.</dd></dl><dl><dt><code>[&quot;rerun_passed_test_files&quot;]</code></dt><dd>Runs all test files that have passed during their most recent run.</dd></dl><dl><dt><code>[&quot;rerun_failed_test_files&quot;]</code></dt><dd>Runs all test files that have failed during their most recent run.</dd></dl><dl><dt><code>[&quot;quit&quot;]</code></dt><dd>Stops all tests that are currently running and exits.</dd></dl><h3 id="Output">Output</h3><p>This program prints the following messages, which are single-line JSON arrays,
17
+ to stdout.</p><dl><dt><code>[&quot;idle&quot;]</code></dt><dd>All tests have finished running and no tests are queued for running either.</dd></dl><dl><dt><code>[&quot;pass_now_fail&quot;,</code> <em>test_file</em><code>,</code> <em>message</em><code>]</code></dt><dd>A previously passing <em>test_file</em> has now failed. See <em>message</em> for details.</dd></dl><dl><dt><code>[&quot;fail_now_pass&quot;,</code> <em>test_file</em><code>,</code> <em>message</em><code>]</code></dt><dd>A previously failing <em>test_file</em> has now passed. See <em>message</em> for details.</dd></dl><dl><dt><em>...</em></dt><dd>Messages from <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a> are also reproduced here.</dd></dl><h2 id="OPTIONS">OPTIONS</h2><dl><dt><code>-h</code>, <code>--help</code></dt><dd>Show this help manual.</dd></dl><h2 id="FILES">FILES</h2><dl><dt><em>.tork/config.rb</em></dt><dd>Optional Ruby script that is loaded inside the driver process on startup.
18
+ It can read and change the <code>ENV[&#39;TORK_CONFIGS&#39;]</code> environment variable.</dd></dl><dl><dt><em>.tork/engine.rb</em></dt><dd>Optional Ruby script that is loaded inside the master process on startup.</dd></dl><h2 id="ENVIRONMENT">ENVIRONMENT</h2><p>See <a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>.</p><h2 id="SEE-ALSO">SEE ALSO</h2><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>, <a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a>, <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a></p></div></body>
19
+ </html>
@@ -1,4 +1,4 @@
1
- .TH TORK\-HERALD 1 2013\-05\-05 19.3.0
1
+ .TH TORK\-HERALD 1 2013\-06\-07 19.3.1
2
2
  .SH NAME
3
3
  .PP
4
4
  tork\-herald \- reports modified files
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="generator" content="md2man 2.0.0 https://github.com/sunaku/md2man" />
6
+ <title>tork-herald(1) &mdash; reports modified files</title>
7
+ <link rel="stylesheet" href="../style.css"/>
8
+ <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
9
+ </head>
10
+ <body><div class="navbar"><div class="navbar-inner"><span class="brand"><a href="../index.html#man1">man1</a>/tork-herald.1</span></div></div><div class="container-fluid"><h1 id="TORK-HERALD-1-2013-06-07-19-3-1">TORK-HERALD 1 2013-06-07 19.3.1</h1><h2 id="NAME">NAME</h2><p>tork-herald - reports modified files</p><h2 id="SYNOPSIS">SYNOPSIS</h2><p><code>tork-herald</code> [<em>OPTION</em>]...</p><h2 id="DESCRIPTION">DESCRIPTION</h2><p>This program monitors the current working directory and all those below it
11
+ recursively. When any files therein are modified, it prints their relative
12
+ paths in a single-line JSON array to stdout.</p><h2 id="OPTIONS">OPTIONS</h2><dl><dt><code>-h</code>, <code>--help</code></dt><dd>Show this help manual.</dd></dl><h2 id="SEE-ALSO">SEE ALSO</h2><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>, <a class="md2man-xref" href="../man1/tork-driver.1.html">tork-driver(1)</a></p></div></body>
13
+ </html>
@@ -1,4 +1,4 @@
1
- .TH TORK\-MASTER 1 2013\-05\-05 19.3.0
1
+ .TH TORK\-MASTER 1 2013\-06\-07 19.3.1
2
2
  .SH NAME
3
3
  .PP
4
4
  tork\-master \- absorbs overhead and runs tests
@@ -0,0 +1,35 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="generator" content="md2man 2.0.0 https://github.com/sunaku/md2man" />
6
+ <title>tork-master(1) &mdash; absorbs overhead and runs tests</title>
7
+ <link rel="stylesheet" href="../style.css"/>
8
+ <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
9
+ </head>
10
+ <body><div class="navbar"><div class="navbar-inner"><span class="brand"><a href="../index.html#man1">man1</a>/tork-master.1</span></div></div><div class="container-fluid"><h1 id="TORK-MASTER-1-2013-06-07-19-3-1">TORK-MASTER 1 2013-06-07 19.3.1</h1><h2 id="NAME">NAME</h2><p>tork-master - absorbs overhead and runs tests</p><h2 id="SYNOPSIS">SYNOPSIS</h2><p><code>tork-master</code> [<em>OPTION</em>]...</p><h2 id="DESCRIPTION">DESCRIPTION</h2><p>This program absorbs your Ruby application&#39;s test execution overhead once and
11
+ simply <a class="md2man-xref">fork(3)</a>s worker processses to run your tests thereafter. As a result,
12
+ your tests run faster because they no longer spend any time absorbing the test
13
+ execution overhead: worker processes simply inherit the overhead when forked.</p><p>This program can be controlled remotely by multiple <a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a> instances.</p><h3 id="Input">Input</h3><p>This program reads the following commands, which are single-line JSON arrays,
14
+ from stdin and performs the actions described respectively.</p><dl><dt><code>[&quot;test&quot;,</code> <em>test_file</em><code>,</code> <em>line_numbers</em><code>]</code></dt><dd>Forks a worker process to run tests that correspond to the given
15
+ <em>line_numbers</em> in the given <em>test_file</em>. If <em>line_numbers</em> is empty, then
16
+ the entire <em>test_file</em> will be run.</dd></dl><dl><dt><code>[&quot;stop&quot;,</code> <em>signal</em><code>]</code></dt><dd>Stops all tests that are currently running by sending the given <em>signal</em>
17
+ (optional; defaults to &quot;SIGTERM&quot;) to their respective worker processes.</dd></dl><dl><dt><code>[&quot;quit&quot;]</code></dt><dd>Stops all tests that are currently running and exits.</dd></dl><h3 id="Output">Output</h3><p>This program prints the following messages, which are single-line JSON arrays,
18
+ to stdout.</p><dl><dt><code>[&quot;absorb&quot;]</code></dt><dd>Test execution overhead has been absorbed. We are ready for testing!</dd></dl><dl><dt><code>[&quot;test&quot;,</code> <em>test_file</em><code>,</code> <em>line_numbers</em><code>,</code> <em>log_file</em><code>,</code> <em>worker_number</em><code>]</code></dt><dd>Test has begun running. Its output (both stdout and stderr) is being
19
+ captured into <em>log_file</em> in real time, so you can watch it with <code>tail -f</code>.</dd></dl><dl><dt><code>[&quot;pass&quot;,</code> <em>test_file</em><code>,</code> <em>line_numbers</em><code>,</code> <em>log_file</em><code>,</code> <em>worker_number</em><code>,</code> <em>exit_code</em><code>,</code> <em>exit_info</em><code>]</code></dt><dd>Test has passed.</dd></dl><dl><dt><code>[&quot;fail&quot;,</code> <em>test_file</em><code>,</code> <em>line_numbers</em><code>,</code> <em>log_file</em><code>,</code> <em>worker_number</em><code>,</code> <em>exit_code</em><code>,</code> <em>exit_info</em><code>]</code></dt><dd>Test has failed.</dd></dl><h2 id="OPTIONS">OPTIONS</h2><dl><dt><code>-h</code>, <code>--help</code></dt><dd>Show this help manual.</dd></dl><h2 id="FILES">FILES</h2><dl><dt><em>.tork/config.rb</em></dt><dd>Optional Ruby script that is loaded inside the driver process on startup.
20
+ It can read and change the <code>ENV[&#39;TORK_CONFIGS&#39;]</code> environment variable.</dd></dl><dl><dt><em>.tork/master.rb</em></dt><dd>Optional Ruby script that is loaded inside the master process on startup.
21
+ It can read and change the following variables.</dd></dl>
22
+ <blockquote>
23
+ <dl><dt><code>Tork::Master::MAX_CONCURRENT_WORKERS</code></dt><dd>Maximum number of worker processes that are allowed to be running
24
+ simultaneously at any given time. The default value is either the
25
+ number of processors detected on your system or 1 if detection failed.</dd></dl></blockquote>
26
+ <dl><dt><em>.tork/onfork.rb</em></dt><dd>Optional Ruby script that is loaded inside the master process just before a
27
+ worker process is forked. It can read and change the following variables.</dd></dl>
28
+ <blockquote>
29
+ <dl><dt><code>$tork_test_file</code></dt><dd>Path of the test file that will be run by the worker process.</dd></dl><dl><dt><code>$tork_line_numbers</code></dt><dd>Array of line numbers in the test file that were requested to be run.</dd></dl><dl><dt><code>$tork_log_file</code></dt><dd>Path of the log file that will hold the output of the worker process.</dd></dl><dl><dt><code>$tork_worker_number</code></dt><dd>Sequence number of the worker process that will be forked shortly.</dd></dl></blockquote>
30
+ <dl><dt><em>.tork/worker.rb</em></dt><dd>Optional Ruby script that is loaded inside a worker process just after
31
+ it is forked. It can read and change the following variables.</dd></dl>
32
+ <blockquote>
33
+ <dl><dt><code>$tork_test_file</code></dt><dd>Path of the test file that will be run by this worker process.</dd></dl><dl><dt><code>$tork_line_numbers</code></dt><dd>Array of line numbers in the test file that were requested to be run.</dd></dl><dl><dt><code>$tork_log_file</code></dt><dd>Path of the log file that will hold the output of this worker process.</dd></dl><dl><dt><code>$tork_worker_number</code></dt><dd>Sequence number of this worker process.</dd></dl></blockquote>
34
+ <h2 id="ENVIRONMENT">ENVIRONMENT</h2><p>See <a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>.</p><h2 id="SEE-ALSO">SEE ALSO</h2><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>, <a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a></p></div></body>
35
+ </html>
@@ -1,4 +1,4 @@
1
- .TH TORK\-NOTIFY 1 2013\-05\-05 19.3.0
1
+ .TH TORK\-NOTIFY 1 2013\-06\-07 19.3.1
2
2
  .SH NAME
3
3
  .PP
4
4
  tork\-notify \- notifies you of test status changes
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="generator" content="md2man 2.0.0 https://github.com/sunaku/md2man" />
6
+ <title>tork-notify(1) &mdash; notifies you of test status changes</title>
7
+ <link rel="stylesheet" href="../style.css"/>
8
+ <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
9
+ </head>
10
+ <body><div class="navbar"><div class="navbar-inner"><span class="brand"><a href="../index.html#man1">man1</a>/tork-notify.1</span></div></div><div class="container-fluid"><h1 id="TORK-NOTIFY-1-2013-06-07-19-3-1">TORK-NOTIFY 1 2013-06-07 19.3.1</h1><h2 id="NAME">NAME</h2><p>tork-notify - notifies you of test status changes</p><h2 id="SYNOPSIS">SYNOPSIS</h2><p><code>tork-notify</code> [<em>OPTION</em>]...</p><h2 id="DESCRIPTION">DESCRIPTION</h2><p>This program serves as an example of how to receive and process messages sent
11
+ by the various programs in the <a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a> suite. It notifies you when previously
12
+ passing tests fail (or vice versa) through libnotify, xmessage, or growl. If
13
+ none are available on your system, then the notification is printed to stdout.</p><h2 id="OPTIONS">OPTIONS</h2><dl><dt><code>-h</code>, <code>--help</code></dt><dd>Show this help manual.</dd></dl><h2 id="EXIT-STATUS">EXIT STATUS</h2><p>See <a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a>.</p><h2 id="SEE-ALSO">SEE ALSO</h2><p><a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a>, <a class="md2man-xref" href="../man1/tork-engine.1.html">tork-engine(1)</a></p></div></body>
14
+ </html>
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="generator" content="md2man 2.0.0 https://github.com/sunaku/md2man" />
6
+ <title>tork-remote(1) &mdash; controls tork(1) programs</title>
7
+ <link rel="stylesheet" href="../style.css"/>
8
+ <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
9
+ </head>
10
+ <body><div class="navbar"><div class="navbar-inner"><span class="brand"><a href="../index.html#man1">man1</a>/tork-remote.1</span></div></div><div class="container-fluid"><h1 id="TORK-REMOTE-1-2012-09-26-18-2-3">TORK-REMOTE 1 2012-09-26 18.2.3</h1><h2 id="NAME">NAME</h2><p>tork-remote - controls <a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a> programs</p><h2 id="SYNOPSIS">SYNOPSIS</h2><p><code>tork-remote</code> [<em>OPTION</em>]... <em>PROGRAM</em></p><h2 id="DESCRIPTION">DESCRIPTION</h2><p>This program sends single-line JSON messages read from its stdin to the given
11
+ <em>PROGRAM</em> which is already running in the same working directory as this one.</p><p>If lines read from stdin are not single-line JSON messages, then they are
12
+ split into an array of words, using the same word-splitting algorithm as
13
+ <a class="md2man-xref">sh(1)</a>, before being sent to the <em>PROGRAM</em> as a single-line JSON message.</p><p>If the <em>PROGRAM</em> sends any messages in response, then they are printed to
14
+ stdout if they are valid single-line JSON messages or to stderr otherwise.</p><h2 id="OPTIONS">OPTIONS</h2><dl><dt><code>-h</code>, <code>--help</code></dt><dd>Show this help manual.</dd></dl><h2 id="EXIT-STATUS">EXIT STATUS</h2><dl><dt>1</dt><dd>Could not connect to the <em>PROGRAM</em>.</dd></dl><dl><dt>2</dt><dd>Lost connection to the <em>PROGRAM</em>.</dd></dl><h2 id="SEE-ALSO">SEE ALSO</h2><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>, <a class="md2man-xref" href="../man1/tork-driver.1.html">tork-driver(1)</a>, <a class="md2man-xref" href="../man1/tork-engine.1.html">tork-engine(1)</a>, <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a></p></div></body>
15
+ </html>
data/man/man1/tork.1 CHANGED
@@ -1,4 +1,4 @@
1
- .TH TORK 1 2013\-05\-05 19.3.0
1
+ .TH TORK 1 2013\-06\-07 19.3.1
2
2
  .SH NAME
3
3
  .PP
4
4
  tork \- Continuous testing tool for Ruby
@@ -0,0 +1,42 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="generator" content="md2man 2.0.0 https://github.com/sunaku/md2man" />
6
+ <title>tork(1) &mdash; Continuous testing tool for Ruby</title>
7
+ <link rel="stylesheet" href="../style.css"/>
8
+ <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
9
+ </head>
10
+ <body><div class="navbar"><div class="navbar-inner"><span class="brand"><a href="../index.html#man1">man1</a>/tork.1</span></div></div><div class="container-fluid"><h1 id="TORK-1-2013-06-07-19-3-1">TORK 1 2013-06-07 19.3.1</h1><h2 id="NAME">NAME</h2><p>tork - Continuous testing tool for Ruby</p><h2 id="SYNOPSIS">SYNOPSIS</h2><p><code>tork</code> [<em>OPTION</em>]... [<em>CONFIG</em>]...</p><h2 id="DESCRIPTION">DESCRIPTION</h2><p>This program is a simple command-line user interface for <a class="md2man-xref" href="../man1/tork-driver.1.html">tork-driver(1)</a>.</p><p>First, it applies the given <em>CONFIG</em> values, which are either (1) paths to
11
+ directories that contain configuration files or (2) names of configuration
12
+ helpers listed in the description of the <code>TORK_CONFIGS</code> environment variable.</p><p>Next, it waits for you to supply interactive commands either (1) directly on
13
+ its stdin or (2) remotely through <a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a>. From then onward, you may
14
+ press the ENTER key (supplying no command) to see a menu of accepted commands.</p><p>Some interactive commands accept additional arguments, described as follows.</p><dl><dt><code>t</code> <em>test_file</em> [<em>line_number</em>]...</dt><dd>Runs the given <em>test_file</em> while only running those tests that are defined
15
+ on the given list of <em>line_number</em>s. If no <em>line_number</em>s are given, then
16
+ only those tests that have changed since the last run of the <em>test_file</em>
17
+ will now be run.</dd></dl><dl><dt><code>s</code> [<em>signal</em>]</dt><dd>Stops test files that are currently running by sending the given <em>signal</em>
18
+ (optional; defaults to <code>SIGTERM</code>) to their respective worker processes.</dd></dl><p>This program can be controlled remotely by multiple <a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a> instances.</p><h2 id="OPTIONS">OPTIONS</h2><dl><dt><code>-h</code>, <code>--help</code></dt><dd>Show this help manual.</dd></dl><h2 id="FILES">FILES</h2><dl><dt><em>.tork/config.rb</em></dt><dd>Optional Ruby script that is loaded inside the driver process on startup.
19
+ It can read and change the <code>ENV[&#39;TORK_CONFIGS&#39;]</code> environment variable.</dd></dl><h2 id="ENVIRONMENT">ENVIRONMENT</h2><dl><dt><code>TORK_CONFIGS</code></dt><dd>Colon-separated (:) list of either paths to directories that contain
20
+ configuration files or names of the following configuration helpers.
21
+ If this variable is not set, then its value is assumed to be &quot;default&quot;.</dd></dl>
22
+ <blockquote>
23
+ <dl><dt><code>default</code></dt><dd>Loads the following configuration helpers (as appropriate) if your
24
+ current working directory appears to utilize what they configure.
25
+ See below for complete descriptions of these configuration helpers.</dd></dl>
26
+ <ul>
27
+ <li>rails</li>
28
+ <li>devise</li>
29
+ <li>test</li>
30
+ <li>spec</li>
31
+ <li>cucumber</li>
32
+ <li>factory_girl</li>
33
+ </ul>
34
+ <dl><dt><code>dotlog</code></dt><dd>Hides log files by prefixing their names with a period (dot).</dd></dl><dl><dt><code>logdir</code></dt><dd>Keeps log files away from your tests, in the <code>log/</code> directory.</dd></dl><dl><dt><code>coverage</code></dt><dd>Measures C0 code coverage under Ruby 1.9 and dumps a hash in YAML
35
+ format at the end of your log file containing every Ruby script that
36
+ was loaded from the current working directory or any of its descendant
37
+ directories (the key) mapped to the following information (the value):</dd></dl>
38
+ <blockquote>
39
+ <dl><dt><code>:grade</code></dt><dd>Percentage of source lines that were C0 covered.</dd></dl><dl><dt><code>:nsloc</code></dt><dd>Total number of source lines of code in the file.</dd></dl><dl><dt><code>:holes</code></dt><dd>Line numbers of source lines that were not covered.</dd></dl></blockquote>
40
+ <dl><dt><code>test</code></dt><dd>Supports the Test::Unit standard library.</dd></dl><dl><dt><code>spec</code></dt><dd>Supports the <a href="http://rspec.info">RSpec</a> testing framework.</dd></dl><dl><dt><code>cucumber</code></dt><dd>Supports the <a href="https://cukes.info">Cucumber</a> testing framework.</dd></dl><dl><dt><code>rails</code></dt><dd>Supports the <a href="http://rubyonrails.org">Ruby on Rails</a> web framework.</dd></dl><dl><dt><code>devise</code></dt><dd>Supports the <a href="https://github.com/plataformatec/devise">Devise</a> authentication framework.</dd></dl><dl><dt><code>factory_girl</code></dt><dd>Supports the <a href="https://github.com/thoughtbot/factory_girl">factory_girl</a> testing library.</dd></dl><dl><dt><code>parallel_tests</code></dt><dd>Supports the <a href="https://github.com/grosser/parallel_tests">parallel_tests</a> testing library.</dd></dl></blockquote>
41
+ <h2 id="SEE-ALSO">SEE ALSO</h2><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>, <a class="md2man-xref" href="../man1/tork-driver.1.html">tork-driver(1)</a>, <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a></p></div></body>
42
+ </html>
data/man/style.css ADDED
@@ -0,0 +1,57 @@
1
+ @import url('http://twitter.github.com/bootstrap/assets/css/bootstrap.css');
2
+
3
+ @media all {
4
+ h1,
5
+ h2,
6
+ h3,
7
+ h4,
8
+ h5,
9
+ h6 {
10
+ margin-top: 1em;
11
+ }
12
+
13
+ /* deactivate external manual page cross-references */
14
+ a.md2man-xref:not([href]) {
15
+ color: inherit;
16
+ text-decoration: none;
17
+ }
18
+ }
19
+
20
+ @media screen {
21
+ body {
22
+ font-family: monospace;
23
+ text-align: justify;
24
+ max-width: 83ex; /* allots 78ex width for manpage */
25
+ margin: auto;
26
+ }
27
+
28
+ h1:first-child {
29
+ margin-top: -5em;
30
+ font-weight: normal;
31
+ font-size: smaller;
32
+ text-align: right;
33
+ }
34
+ }
35
+
36
+ @media print {
37
+ .navbar:first-child {
38
+ display: none;
39
+ }
40
+
41
+ /* improve readability of revealed hyperlink URLs */
42
+ a:after {
43
+ font-family: monospace;
44
+ }
45
+
46
+ /* internal links and manual page cross-references */
47
+ a[href^='#'], a[href^='../man'] {
48
+ color: inherit;
49
+ font-weight: bolder;
50
+ text-decoration: none;
51
+ }
52
+
53
+ /* undo bootstrap's revealing of those hyperlinks */
54
+ a[href^='#']:after, a[href^='../man']:after {
55
+ content: none;
56
+ }
57
+ }
data/tork.gemspec CHANGED
@@ -13,15 +13,18 @@ Gem::Specification.new do |s|
13
13
  s.summary = 'test with fork'
14
14
  s.description = 'Runs your tests as they change, in parallel.'
15
15
 
16
- s.files = `git ls-files`.split("\n") + Dir['man/man?/*.?']
16
+ s.files = `git ls-files`.split("\n")
17
17
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
19
  s.require_paths = ['lib']
20
20
 
21
+ s.files += Dir['man/man?/*.?'] # UNIX man pages
22
+ s.files += Dir['man/**/*.{html,css,js}'] # HTML man pages
23
+ s.add_development_dependency 'md2man', '~> 2.0'
24
+
21
25
  s.add_runtime_dependency 'binman', '~> 3.0'
22
26
  s.add_runtime_dependency 'json', '~> 1.6'
23
27
  s.add_runtime_dependency 'listen', '~> 0.7'
24
28
  s.add_runtime_dependency 'diff-lcs', '~> 1.1'
25
- s.add_development_dependency 'md2man', '~> 1.4'
26
29
  s.add_development_dependency 'rake', '~> 0.9.2.2'
27
30
  end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tork
3
3
  version: !ruby/object:Gem::Version
4
- version: 19.3.0
5
- prerelease:
4
+ version: 19.3.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Suraj N. Kurapati
@@ -10,12 +9,25 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2013-05-06 00:00:00.000000000 Z
12
+ date: 2013-06-08 00:00:00.000000000 Z
14
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: md2man
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ~>
19
+ - !ruby/object:Gem::Version
20
+ version: '2.0'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ version: '2.0'
15
28
  - !ruby/object:Gem::Dependency
16
29
  name: binman
17
30
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
31
  requirements:
20
32
  - - ~>
21
33
  - !ruby/object:Gem::Version
@@ -23,7 +35,6 @@ dependencies:
23
35
  type: :runtime
24
36
  prerelease: false
25
37
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
38
  requirements:
28
39
  - - ~>
29
40
  - !ruby/object:Gem::Version
@@ -31,7 +42,6 @@ dependencies:
31
42
  - !ruby/object:Gem::Dependency
32
43
  name: json
33
44
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
45
  requirements:
36
46
  - - ~>
37
47
  - !ruby/object:Gem::Version
@@ -39,7 +49,6 @@ dependencies:
39
49
  type: :runtime
40
50
  prerelease: false
41
51
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
52
  requirements:
44
53
  - - ~>
45
54
  - !ruby/object:Gem::Version
@@ -47,7 +56,6 @@ dependencies:
47
56
  - !ruby/object:Gem::Dependency
48
57
  name: listen
49
58
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
59
  requirements:
52
60
  - - ~>
53
61
  - !ruby/object:Gem::Version
@@ -55,7 +63,6 @@ dependencies:
55
63
  type: :runtime
56
64
  prerelease: false
57
65
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
66
  requirements:
60
67
  - - ~>
61
68
  - !ruby/object:Gem::Version
@@ -63,7 +70,6 @@ dependencies:
63
70
  - !ruby/object:Gem::Dependency
64
71
  name: diff-lcs
65
72
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
73
  requirements:
68
74
  - - ~>
69
75
  - !ruby/object:Gem::Version
@@ -71,31 +77,13 @@ dependencies:
71
77
  type: :runtime
72
78
  prerelease: false
73
79
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
80
  requirements:
76
81
  - - ~>
77
82
  - !ruby/object:Gem::Version
78
83
  version: '1.1'
79
- - !ruby/object:Gem::Dependency
80
- name: md2man
81
- requirement: !ruby/object:Gem::Requirement
82
- none: false
83
- requirements:
84
- - - ~>
85
- - !ruby/object:Gem::Version
86
- version: '1.4'
87
- type: :development
88
- prerelease: false
89
- version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
- requirements:
92
- - - ~>
93
- - !ruby/object:Gem::Version
94
- version: '1.4'
95
84
  - !ruby/object:Gem::Dependency
96
85
  name: rake
97
86
  requirement: !ruby/object:Gem::Requirement
98
- none: false
99
87
  requirements:
100
88
  - - ~>
101
89
  - !ruby/object:Gem::Version
@@ -103,7 +91,6 @@ dependencies:
103
91
  type: :development
104
92
  prerelease: false
105
93
  version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
94
  requirements:
108
95
  - - ~>
109
96
  - !ruby/object:Gem::Version
@@ -174,34 +161,38 @@ files:
174
161
  - man/man1/tork-master.1
175
162
  - man/man1/tork-driver.1
176
163
  - man/man1/tork.1
164
+ - man/index.html
165
+ - man/man0/VERSION.html
166
+ - man/man0/README.html
167
+ - man/man1/tork-remote.1.html
168
+ - man/man1/tork-herald.1.html
169
+ - man/man1/tork-notify.1.html
170
+ - man/man1/tork.1.html
171
+ - man/man1/tork-driver.1.html
172
+ - man/man1/tork-engine.1.html
173
+ - man/man1/tork-master.1.html
174
+ - man/style.css
177
175
  homepage: http://github.com/sunaku/tork
178
176
  licenses: []
177
+ metadata: {}
179
178
  post_install_message:
180
179
  rdoc_options: []
181
180
  require_paths:
182
181
  - lib
183
182
  required_ruby_version: !ruby/object:Gem::Requirement
184
- none: false
185
183
  requirements:
186
- - - ! '>='
184
+ - - '>='
187
185
  - !ruby/object:Gem::Version
188
186
  version: '0'
189
- segments:
190
- - 0
191
- hash: -1274588236023689276
192
187
  required_rubygems_version: !ruby/object:Gem::Requirement
193
- none: false
194
188
  requirements:
195
- - - ! '>='
189
+ - - '>='
196
190
  - !ruby/object:Gem::Version
197
191
  version: '0'
198
- segments:
199
- - 0
200
- hash: -1274588236023689276
201
192
  requirements: []
202
193
  rubyforge_project:
203
- rubygems_version: 1.8.25
194
+ rubygems_version: 2.0.2
204
195
  signing_key:
205
- specification_version: 3
196
+ specification_version: 4
206
197
  summary: test with fork
207
198
  test_files: []