tork 15.1.0 → 16.0.0
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.
- data/Gemfile +0 -2
- data/HISTORY.markdown +21 -1
- data/README.markdown +29 -46
- data/bin/tork +4 -4
- data/bin/tork-driver +2 -2
- data/bin/tork-herald +2 -2
- data/bin/tork-master +4 -4
- data/lib/tork/config.rb +31 -22
- data/lib/tork/config/cucumber.rb +5 -5
- data/lib/tork/config/rails.rb +5 -5
- data/lib/tork/driver.rb +7 -15
- data/lib/tork/master.rb +3 -3
- data/lib/tork/version.rb +1 -1
- data/man/man1/tork-driver.1 +1 -1
- data/man/man1/tork-herald.1 +1 -1
- data/man/man1/tork-master.1 +3 -3
- data/man/man1/tork.1 +1 -1
- data/tork.gemspec +3 -2
- metadata +30 -16
data/Gemfile
CHANGED
data/HISTORY.markdown
CHANGED
@@ -1,10 +1,30 @@
|
|
1
|
+
------------------------------------------------------------------------------
|
2
|
+
Version 16.0.0 (2012-01-25)
|
3
|
+
------------------------------------------------------------------------------
|
4
|
+
|
5
|
+
Breaking changes:
|
6
|
+
|
7
|
+
* Drop the `Tork::Config.test_name_extractor` configuration option.
|
8
|
+
|
9
|
+
* Pass line numbers instead of test names to before/after fork hooks.
|
10
|
+
|
11
|
+
* Pass $~ (MatchData) to `Tork::Config::test_file_globbers` functions.
|
12
|
+
|
13
|
+
New features:
|
14
|
+
|
15
|
+
* tork/config/cucumber: only run changed scenarios in changed features.
|
16
|
+
|
17
|
+
Housekeeping:
|
18
|
+
|
19
|
+
* README: update instructions on running Tork directly from Git clone.
|
20
|
+
|
1
21
|
------------------------------------------------------------------------------
|
2
22
|
Version 15.1.0 (2012-01-25)
|
3
23
|
------------------------------------------------------------------------------
|
4
24
|
|
5
25
|
New features:
|
6
26
|
|
7
|
-
* GH-19: add
|
27
|
+
* GH-19: add `tork cucumber` for running cucumber features.
|
8
28
|
|
9
29
|
Bug fixes:
|
10
30
|
|
data/README.markdown
CHANGED
@@ -39,7 +39,7 @@ Features
|
|
39
39
|
|
40
40
|
* You can override the modular `tork*` programs with your own in $PATH.
|
41
41
|
|
42
|
-
*
|
42
|
+
* Its core is written in less than 360 lines (SLOC) of pure Ruby code! :-)
|
43
43
|
|
44
44
|
------------------------------------------------------------------------------
|
45
45
|
Architecture
|
@@ -64,9 +64,11 @@ diff and regexps) and then attempts to run just those. To make it run *all*
|
|
64
64
|
tests in your saved file, simply save the file *again* without changing it.
|
65
65
|
|
66
66
|
------------------------------------------------------------------------------
|
67
|
-
|
67
|
+
Starting off
|
68
68
|
------------------------------------------------------------------------------
|
69
69
|
|
70
|
+
### Prerequisites
|
71
|
+
|
70
72
|
* Ruby 1.8.7 or 1.9.2 or newer.
|
71
73
|
|
72
74
|
* Operating system that supports POSIX signals and the `fork()` system call.
|
@@ -78,43 +80,28 @@ Prerequisites
|
|
78
80
|
|
79
81
|
* To make the `tork-herald` program's filesystem monitoring more efficient:
|
80
82
|
|
81
|
-
gem install rb-inotify
|
82
|
-
gem install rb-fsevent
|
83
|
+
gem install rb-inotify # linux
|
84
|
+
gem install rb-fsevent # macosx
|
83
85
|
|
84
|
-
|
85
|
-
Installation
|
86
|
-
------------------------------------------------------------------------------
|
87
|
-
|
88
|
-
As a Ruby gem:
|
86
|
+
### Installation
|
89
87
|
|
90
88
|
gem install tork
|
91
89
|
|
92
|
-
|
93
|
-
|
94
|
-
git clone git://github.com/sunaku/tork
|
95
|
-
cd tork
|
96
|
-
bundle install
|
97
|
-
bundle exec rake install
|
98
|
-
|
99
|
-
------------------------------------------------------------------------------
|
100
|
-
Invocation
|
101
|
-
------------------------------------------------------------------------------
|
102
|
-
|
103
|
-
If installed as a Ruby gem:
|
90
|
+
### Invocation
|
104
91
|
|
105
92
|
tork --help
|
106
93
|
|
107
|
-
|
108
|
-
|
109
|
-
PATH=bin:$PATH bundle exec tork --help
|
110
|
-
|
111
|
-
You can monitor your test processes in another terminal:
|
94
|
+
### Monitoring
|
112
95
|
|
113
96
|
watch 'ps xuw | sed -n "1p; /tor[k]/p" | fgrep -v sed'
|
114
97
|
|
115
|
-
|
98
|
+
### Development
|
116
99
|
|
117
|
-
|
100
|
+
git clone git://github.com/sunaku/tork
|
101
|
+
cd tork
|
102
|
+
bundle install --binstubs=bundle_bin
|
103
|
+
bundle_bin/tork --help # run it directly
|
104
|
+
bundle exec rake -T # packaging tasks
|
118
105
|
|
119
106
|
------------------------------------------------------------------------------
|
120
107
|
Configuration
|
@@ -153,10 +140,12 @@ your Ruby application.
|
|
153
140
|
### Tork::Config.test_file_globbers
|
154
141
|
|
155
142
|
Hash that maps (1) a regular expression describing a set of file paths to (2)
|
156
|
-
a lambda function
|
157
|
-
|
158
|
-
|
159
|
-
|
143
|
+
a lambda function that accepts the path to a changed file and a `MatchData`
|
144
|
+
object containing the results of the regular expression matching, and yields a
|
145
|
+
file globbing pattern that describes a set of test files that need to be run.
|
146
|
+
|
147
|
+
In other words, whenever the source files (the regular expression) change,
|
148
|
+
their associated test files (result of calling the lambda function) are run.
|
160
149
|
|
161
150
|
For example, if test files had the same names as their source files followed
|
162
151
|
by an underscore and the file name in reverse like this:
|
@@ -166,7 +155,7 @@ by an underscore and the file name in reverse like this:
|
|
166
155
|
|
167
156
|
Then you would add the following to your configuration file:
|
168
157
|
|
169
|
-
Tork::Config.test_file_globbers[%r<^(lib|app)/.+\.rb$>] = lambda do |path|
|
158
|
+
Tork::Config.test_file_globbers[%r<^(lib|app)/.+\.rb$>] = lambda do |path, matches|
|
170
159
|
name = File.basename(path, '.rb')
|
171
160
|
"{test,spec}/**/#{name}_#{name.reverse}.rb"
|
172
161
|
end
|
@@ -175,18 +164,12 @@ In addition, these lambda functions can return `nil` if they do not wish for a
|
|
175
164
|
particular source file to be tested. For example, to ignore tests for all
|
176
165
|
source files except those within a `models/` directory, you would write:
|
177
166
|
|
178
|
-
Tork::Config.test_file_globbers[%r<^(lib|app)/.+\.rb$>] = lambda do |path|
|
167
|
+
Tork::Config.test_file_globbers[%r<^(lib|app)/.+\.rb$>] = lambda do |path, matches|
|
179
168
|
if path.include? '/models/'
|
180
169
|
"{test,spec}/**/#{File.basename(path)}"
|
181
170
|
end
|
182
171
|
end
|
183
172
|
|
184
|
-
### Tork::Config.test_name_extractor
|
185
|
-
|
186
|
-
Lambda function that is given a line of source code to determine whether it
|
187
|
-
can be considered as a test definition. In which case, the function must
|
188
|
-
extract and return the name of the test being defined.
|
189
|
-
|
190
173
|
### Tork::Config.before_fork_hooks
|
191
174
|
|
192
175
|
Array of lambda functions that are executed inside `tork-master` before a
|
@@ -203,12 +186,12 @@ worker process is forked to run a test file. These functions are given:
|
|
203
186
|
|
204
187
|
For example, to see some real values:
|
205
188
|
|
206
|
-
Tork::Config.before_fork_hooks << lambda do |worker_number, log_file, test_file,
|
189
|
+
Tork::Config.before_fork_hooks << lambda do |worker_number, log_file, test_file, line_numbers|
|
207
190
|
p :before_fork_hooks => {
|
208
191
|
:worker_number => worker_number,
|
209
192
|
:log_file => log_file,
|
210
193
|
:test_file => test_file,
|
211
|
-
:
|
194
|
+
:line_numbers => line_numbers,
|
212
195
|
}
|
213
196
|
end
|
214
197
|
|
@@ -228,19 +211,19 @@ by `tork-master`. These functions are given:
|
|
228
211
|
|
229
212
|
For example, to see some real values, including the worker process' PID:
|
230
213
|
|
231
|
-
Tork::Config.after_fork_hooks << lambda do |worker_number, log_file, test_file,
|
214
|
+
Tork::Config.after_fork_hooks << lambda do |worker_number, log_file, test_file, line_numbers|
|
232
215
|
p :after_fork_hooks => {
|
233
216
|
:worker_pid => $$,
|
234
217
|
:worker_number => worker_number,
|
235
218
|
:log_file => log_file,
|
236
219
|
:test_file => test_file,
|
237
|
-
:
|
220
|
+
:line_numbers => line_numbers,
|
238
221
|
}
|
239
222
|
end
|
240
223
|
|
241
224
|
The first function in this array instructs Test::Unit and RSpec to only run
|
242
|
-
those tests that
|
243
|
-
|
225
|
+
those tests that are defined on the given line numbers. This accelerates your
|
226
|
+
test-driven development cycle by only running tests you are currently editing.
|
244
227
|
|
245
228
|
------------------------------------------------------------------------------
|
246
229
|
Configuration helpers
|
data/bin/tork
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin
|
3
3
|
|
4
|
-
TORK 1 2012-01-25
|
4
|
+
TORK 1 2012-01-25 16.0.0
|
5
5
|
==============================================================================
|
6
6
|
|
7
7
|
NAME
|
@@ -36,7 +36,7 @@ tork(1), tork-driver(1), tork-master(1), tork-herald(1)
|
|
36
36
|
|
37
37
|
=end =========================================================================
|
38
38
|
|
39
|
-
$0 = File.basename(__FILE__) # for easier
|
39
|
+
$0 = File.basename(__FILE__) # for easier identification in ps(1) output
|
40
40
|
|
41
41
|
require 'binman'
|
42
42
|
BinMan.help
|
@@ -59,8 +59,8 @@ warn 'tork: Absorbing test execution overhead...'
|
|
59
59
|
when :load then warn 'tork: Overhead absorbed. Ready for testing!'
|
60
60
|
when :over then warn 'tork: Reabsorbing changed overhead files...'
|
61
61
|
else
|
62
|
-
test_file,
|
63
|
-
message = [evstr.upcase, test_file,
|
62
|
+
test_file, line_numbers, *details = details
|
63
|
+
message = [evstr.upcase, test_file, line_numbers.inspect, details].join(' ')
|
64
64
|
|
65
65
|
color = case event
|
66
66
|
when :pass then "\e[34m%s\e[0m" # blue
|
data/bin/tork-driver
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin
|
3
3
|
|
4
|
-
TORK-DRIVER 1 2012-01-25
|
4
|
+
TORK-DRIVER 1 2012-01-25 16.0.0
|
5
5
|
==============================================================================
|
6
6
|
|
7
7
|
NAME
|
@@ -75,7 +75,7 @@ tork(1), tork-driver(1), tork-master(1), tork-herald(1)
|
|
75
75
|
|
76
76
|
=end =========================================================================
|
77
77
|
|
78
|
-
$0 = File.basename(__FILE__) # for easier
|
78
|
+
$0 = File.basename(__FILE__) # for easier identification in ps(1) output
|
79
79
|
|
80
80
|
require 'binman'
|
81
81
|
BinMan.help
|
data/bin/tork-herald
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin
|
3
3
|
|
4
|
-
TORK-HERALD 1 2012-01-25
|
4
|
+
TORK-HERALD 1 2012-01-25 16.0.0
|
5
5
|
==============================================================================
|
6
6
|
|
7
7
|
NAME
|
@@ -33,7 +33,7 @@ tork(1), tork-driver(1), tork-master(1), tork-herald(1)
|
|
33
33
|
|
34
34
|
=end =========================================================================
|
35
35
|
|
36
|
-
$0 = File.basename(__FILE__) # for easier
|
36
|
+
$0 = File.basename(__FILE__) # for easier identification in ps(1) output
|
37
37
|
|
38
38
|
require 'binman'
|
39
39
|
BinMan.help
|
data/bin/tork-master
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin
|
3
3
|
|
4
|
-
TORK-MASTER 1 2012-01-25
|
4
|
+
TORK-MASTER 1 2012-01-25 16.0.0
|
5
5
|
==============================================================================
|
6
6
|
|
7
7
|
NAME
|
@@ -25,10 +25,10 @@ standard input stream and performs the respective actions as described below.
|
|
25
25
|
of *files* after removing their ".rb" file extension if present, and prints
|
26
26
|
the given command line to the standard output stream.
|
27
27
|
|
28
|
-
`["test",` *test_file*`,` *
|
28
|
+
`["test",` *test_file*`,` *line_numbers*`]`
|
29
29
|
Runs the given *test_file* in a forked child process while instructing your
|
30
30
|
chosen unit testing framework (loaded by your test execution overhead) to
|
31
|
-
only run those tests that are
|
31
|
+
only run those tests that are defined on the given array of *line_numbers*.
|
32
32
|
|
33
33
|
Prints the given command line to the standard output stream immediately
|
34
34
|
after forking the child process.
|
@@ -75,7 +75,7 @@ tork(1), tork-driver(1), tork-master(1), tork-herald(1)
|
|
75
75
|
|
76
76
|
=end =========================================================================
|
77
77
|
|
78
|
-
$0 = File.basename(__FILE__) # for easier
|
78
|
+
$0 = File.basename(__FILE__) # for easier identification in ps(1) output
|
79
79
|
|
80
80
|
require 'binman'
|
81
81
|
BinMan.help
|
data/lib/tork/config.rb
CHANGED
@@ -28,38 +28,47 @@ module Tork
|
|
28
28
|
|
29
29
|
Config.test_file_globbers = {
|
30
30
|
# source files that correspond to test files
|
31
|
-
%r<^lib/.+\.rb$> => lambda do |path|
|
31
|
+
%r<^lib/.+\.rb$> => lambda do |path, matches|
|
32
32
|
base = File.basename(path, '.rb')
|
33
33
|
"{test,spec}/**/#{base}_{test,spec}.rb"
|
34
34
|
end,
|
35
35
|
|
36
36
|
# the actual test files themselves
|
37
|
-
%r<^(test|spec)/.+_\1\.rb$> => lambda {|path| path }
|
37
|
+
%r<^(test|spec)/.+_\1\.rb$> => lambda {|path, matches| path }
|
38
38
|
}
|
39
39
|
|
40
|
-
Config.test_name_extractor = lambda do |line|
|
41
|
-
case line
|
42
|
-
when /^\s*def\s+test_(\w+)/ then $1
|
43
|
-
when /^\s*(test|context|should|describe|it)\b.+?(['"])(.*?)\2/ then $3
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
40
|
Config.before_fork_hooks = []
|
48
41
|
|
49
42
|
Config.after_fork_hooks = [
|
50
|
-
#
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
43
|
+
# instruct the testing framework to only run those
|
44
|
+
# tests that are defined on the given line numbers
|
45
|
+
lambda do |worker_number, log_file, test_file, line_numbers|
|
46
|
+
case File.basename(test_file)
|
47
|
+
when /(\b|_)spec(\b|_).*\.rb$/ # RSpec
|
48
|
+
line_numbers.each {|line| ARGV.push '--line_number', line.to_s }
|
49
|
+
|
50
|
+
when /(\b|_)test(\b|_).*\.rb$/ # Test::Unit
|
51
|
+
# find which tests have changed inside the test file
|
52
|
+
test_file_lines = File.readlines(test_file)
|
53
|
+
test_names = line_numbers.map do |line|
|
54
|
+
catch :found do
|
55
|
+
# search backwards from the line that changed up to
|
56
|
+
# the first line in the file for test definitions
|
57
|
+
line.downto(0) do |i|
|
58
|
+
test_name =
|
59
|
+
case test_file_lines[i]
|
60
|
+
when /^\s*def\s+test_(\w+)/ then $1
|
61
|
+
when /^\s*(test|context|should|describe|it)\b.+?(['"])(.*?)\2/
|
62
|
+
# elide string interpolation and invalid method name characters
|
63
|
+
$3.gsub(/\#\{.*?\}/, ' ').strip.gsub(/\W+/, '.*')
|
64
|
+
end \
|
65
|
+
and throw :found, test_name
|
66
|
+
end; nil # prevent unsuccessful search from returning an integer
|
67
|
+
end
|
68
|
+
end.compact.uniq
|
69
|
+
|
70
|
+
unless test_names.empty?
|
71
|
+
ARGV.push '--name', "/(?i:#{test_names.join('|')})/"
|
63
72
|
end
|
64
73
|
end
|
65
74
|
end
|
data/lib/tork/config/cucumber.rb
CHANGED
@@ -4,17 +4,17 @@ Tork::Config.all_test_file_globs << 'features/**/*.feature'
|
|
4
4
|
|
5
5
|
Tork::Config.test_file_globbers.update(
|
6
6
|
# source files that correspond to test files
|
7
|
-
%r<^features/(.+/)?step_definitions/.+\.rb$> => lambda do |path|
|
8
|
-
|
7
|
+
%r<^(features/(.+/)?)step_definitions/.+\.rb$> => lambda do |path, matches|
|
8
|
+
matches[1] + '*.feature'
|
9
9
|
end,
|
10
10
|
|
11
11
|
# the actual test files themselves
|
12
|
-
%r<^features/.+\.feature$> => lambda {|path| path }
|
12
|
+
%r<^features/.+\.feature$> => lambda {|path, matches| path }
|
13
13
|
)
|
14
14
|
|
15
|
-
Tork::Config.after_fork_hooks << lambda do |worker_number, log_file, test_file,
|
15
|
+
Tork::Config.after_fork_hooks << lambda do |worker_number, log_file, test_file, line_numbers|
|
16
16
|
# pass test_file in ARGV to cucumber(1) for running
|
17
|
-
ARGV << test_file.
|
17
|
+
ARGV << [test_file, *line_numbers].join(':')
|
18
18
|
require 'cucumber'
|
19
19
|
require 'rubygems'
|
20
20
|
cucumber_bin = Gem.bin_path('cucumber', 'cucumber')
|
data/lib/tork/config/rails.rb
CHANGED
@@ -7,19 +7,19 @@ Tork::Config.reabsorb_file_greps.push(
|
|
7
7
|
%r<^Gemfile\.lock$>
|
8
8
|
)
|
9
9
|
|
10
|
-
Tork::Config.test_file_globbers
|
11
|
-
lambda do |path|
|
10
|
+
Tork::Config.test_file_globbers.update(
|
11
|
+
%r<^(app|lib|test|spec)/.+\.rb$> => lambda do |path, matches|
|
12
12
|
base = File.basename(path, '.rb')
|
13
13
|
poly = ActiveSupport::Inflector.pluralize(base)
|
14
14
|
"{test,spec}/**/{#{base},#{poly}_*}_{test,spec}.rb"
|
15
|
-
end
|
15
|
+
end,
|
16
16
|
|
17
|
-
|
18
|
-
lambda do |path|
|
17
|
+
%r<^(test|spec)/factories/.+_factory\.rb$> => lambda do |path, matches|
|
19
18
|
base = File.basename(path, '_factory.rb')
|
20
19
|
poly = ActiveSupport::Inflector.pluralize(base)
|
21
20
|
"{test,spec}/**/{#{base},#{poly}_*}_{test,spec}.rb"
|
22
21
|
end
|
22
|
+
)
|
23
23
|
|
24
24
|
Tork::Config.after_fork_hooks << proc do
|
25
25
|
if defined? ActiveRecord::Base and
|
data/lib/tork/driver.rb
CHANGED
@@ -69,7 +69,7 @@ module Driver
|
|
69
69
|
|
70
70
|
# find and run the tests that correspond to the changed file
|
71
71
|
Config.test_file_globbers.each do |regexp, globber|
|
72
|
-
if regexp =~ changed_file and glob = globber.call(changed_file)
|
72
|
+
if regexp =~ changed_file and glob = globber.call(changed_file, $~)
|
73
73
|
run_test_files Dir[glob]
|
74
74
|
end
|
75
75
|
end
|
@@ -106,30 +106,22 @@ private
|
|
106
106
|
def run_test_file file
|
107
107
|
if File.exist? file and not @waiting_test_files.include? file
|
108
108
|
@waiting_test_files.push file
|
109
|
-
@master.send [:test, file,
|
109
|
+
@master.send [:test, file, find_changed_line_numbers(file)]
|
110
110
|
end
|
111
111
|
end
|
112
112
|
|
113
113
|
@lines_by_file = {}
|
114
114
|
|
115
|
-
def
|
115
|
+
def find_changed_line_numbers test_file
|
116
116
|
# cache the contents of the test file for diffing below
|
117
117
|
new_lines = File.readlines(test_file)
|
118
118
|
old_lines = @lines_by_file[test_file] || new_lines
|
119
119
|
@lines_by_file[test_file] = new_lines
|
120
120
|
|
121
|
-
# find which
|
122
|
-
Diff::LCS.diff(old_lines, new_lines).flatten.
|
123
|
-
|
124
|
-
|
125
|
-
# the first line in the file for test definitions
|
126
|
-
change.position.downto(0) do |i|
|
127
|
-
if test_name = Config.test_name_extractor.call(new_lines[i])
|
128
|
-
throw :found, test_name
|
129
|
-
end
|
130
|
-
end; nil # prevent unsuccessful search from returning an integer
|
131
|
-
end
|
132
|
-
end.compact.uniq
|
121
|
+
# find which line numbers have changed inside the test file
|
122
|
+
Diff::LCS.diff(old_lines, new_lines).flatten.
|
123
|
+
# +1 because line numbers start at 1, not 0
|
124
|
+
map {|change| change.position + 1 }.uniq
|
133
125
|
end
|
134
126
|
|
135
127
|
end
|
data/lib/tork/master.rb
CHANGED
@@ -20,7 +20,7 @@ module Master
|
|
20
20
|
@client.print @command_line
|
21
21
|
end
|
22
22
|
|
23
|
-
def test test_file,
|
23
|
+
def test test_file, line_numbers
|
24
24
|
# throttle forking rate to meet the maximum concurrent workers limit
|
25
25
|
sleep 1 until @command_by_worker_pid.size < Config.max_forked_workers
|
26
26
|
|
@@ -28,7 +28,7 @@ module Master
|
|
28
28
|
worker_number = @worker_number_pool.shift
|
29
29
|
|
30
30
|
Config.before_fork_hooks.each do |hook|
|
31
|
-
hook.call worker_number, log_file, test_file,
|
31
|
+
hook.call worker_number, log_file, test_file, line_numbers
|
32
32
|
end
|
33
33
|
|
34
34
|
worker_pid = fork do
|
@@ -46,7 +46,7 @@ module Master
|
|
46
46
|
STDERR.reopen(STDOUT.reopen(log_file, 'w')).sync = true
|
47
47
|
|
48
48
|
Config.after_fork_hooks.each do |hook|
|
49
|
-
hook.call worker_number, log_file, test_file,
|
49
|
+
hook.call worker_number, log_file, test_file, line_numbers
|
50
50
|
end
|
51
51
|
|
52
52
|
# after loading the user's test file, the at_exit() hook of the user's
|
data/lib/tork/version.rb
CHANGED
data/man/man1/tork-driver.1
CHANGED
data/man/man1/tork-herald.1
CHANGED
data/man/man1/tork-master.1
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
.TH TORK\-MASTER 1 2012\-01\-25
|
1
|
+
.TH TORK\-MASTER 1 2012\-01\-25 16.0.0
|
2
2
|
.SH NAME
|
3
3
|
.PP
|
4
4
|
tork\-master \- absorbs overhead and runs tests
|
@@ -15,10 +15,10 @@ Adds the given array of \fIpaths\fP to Ruby's $LOAD_PATH, loads the given array
|
|
15
15
|
of \fIfiles\fP after removing their ".rb" file extension if present, and prints
|
16
16
|
the given command line to the standard output stream.
|
17
17
|
.TP
|
18
|
-
\fB\fC["test",\fR \fItest_file\fP\fB\fC,\fR \
|
18
|
+
\fB\fC["test",\fR \fItest_file\fP\fB\fC,\fR \fIline_numbers\fP\fB\fC]\fR
|
19
19
|
Runs the given \fItest_file\fP in a forked child process while instructing your
|
20
20
|
chosen unit testing framework (loaded by your test execution overhead) to
|
21
|
-
only run those tests that are
|
21
|
+
only run those tests that are defined on the given array of \fIline_numbers\fP.
|
22
22
|
.IP
|
23
23
|
Prints the given command line to the standard output stream immediately
|
24
24
|
after forking the child process.
|
data/man/man1/tork.1
CHANGED
data/tork.gemspec
CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.authors,
|
9
9
|
s.email = File.read('LICENSE').scan(/Copyright \d+ (.+) <(.+?)>/).transpose
|
10
10
|
s.homepage = "http://github.com/sunaku/tork"
|
11
|
-
s.summary = "
|
12
|
-
s.description =
|
11
|
+
s.summary = "Test with fork."
|
12
|
+
s.description = "Continuous testing tool for Ruby."
|
13
13
|
|
14
14
|
s.files = `git ls-files`.split("\n") + Dir["man/**/*"]
|
15
15
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -21,4 +21,5 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.add_runtime_dependency 'guard', '>= 0.9.0', '< 1'
|
22
22
|
s.add_runtime_dependency 'diff-lcs', '>= 1.1.2', '< 2'
|
23
23
|
s.add_development_dependency 'md2man', '~> 1'
|
24
|
+
s.add_development_dependency 'rake', '>= 0.9.2.2', '< 1'
|
24
25
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tork
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 16.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-01-
|
13
|
+
date: 2012-01-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: binman
|
17
|
-
requirement: &
|
17
|
+
requirement: &15804480 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '3'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *15804480
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: json
|
28
|
-
requirement: &
|
28
|
+
requirement: &15803820 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -36,10 +36,10 @@ dependencies:
|
|
36
36
|
version: '2'
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
|
-
version_requirements: *
|
39
|
+
version_requirements: *15803820
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: guard
|
42
|
-
requirement: &
|
42
|
+
requirement: &15818660 !ruby/object:Gem::Requirement
|
43
43
|
none: false
|
44
44
|
requirements:
|
45
45
|
- - ! '>='
|
@@ -50,10 +50,10 @@ dependencies:
|
|
50
50
|
version: '1'
|
51
51
|
type: :runtime
|
52
52
|
prerelease: false
|
53
|
-
version_requirements: *
|
53
|
+
version_requirements: *15818660
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
55
|
name: diff-lcs
|
56
|
-
requirement: &
|
56
|
+
requirement: &15816880 !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
59
|
- - ! '>='
|
@@ -64,10 +64,10 @@ dependencies:
|
|
64
64
|
version: '2'
|
65
65
|
type: :runtime
|
66
66
|
prerelease: false
|
67
|
-
version_requirements: *
|
67
|
+
version_requirements: *15816880
|
68
68
|
- !ruby/object:Gem::Dependency
|
69
69
|
name: md2man
|
70
|
-
requirement: &
|
70
|
+
requirement: &15815560 !ruby/object:Gem::Requirement
|
71
71
|
none: false
|
72
72
|
requirements:
|
73
73
|
- - ~>
|
@@ -75,8 +75,22 @@ dependencies:
|
|
75
75
|
version: '1'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
|
-
version_requirements: *
|
79
|
-
|
78
|
+
version_requirements: *15815560
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: rake
|
81
|
+
requirement: &15814800 !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
83
|
+
requirements:
|
84
|
+
- - ! '>='
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: 0.9.2.2
|
87
|
+
- - <
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: *15814800
|
93
|
+
description: Continuous testing tool for Ruby.
|
80
94
|
email:
|
81
95
|
- sunaku@gmail.com
|
82
96
|
- burns180@gmail.com
|
@@ -126,7 +140,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
126
140
|
version: '0'
|
127
141
|
segments:
|
128
142
|
- 0
|
129
|
-
hash:
|
143
|
+
hash: 1234155726209121791
|
130
144
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
145
|
none: false
|
132
146
|
requirements:
|
@@ -135,11 +149,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
149
|
version: '0'
|
136
150
|
segments:
|
137
151
|
- 0
|
138
|
-
hash:
|
152
|
+
hash: 1234155726209121791
|
139
153
|
requirements: []
|
140
154
|
rubyforge_project:
|
141
155
|
rubygems_version: 1.8.11
|
142
156
|
signing_key:
|
143
157
|
specification_version: 3
|
144
|
-
summary:
|
158
|
+
summary: Test with fork.
|
145
159
|
test_files: []
|