tork 19.3.0 → 19.3.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []