tork 15.1.0 → 16.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -2,5 +2,3 @@ source "http://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in tork.gemspec
4
4
  gemspec
5
-
6
- gem 'rake', '>= 0.9.2.2', '< 1'
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 support for running cucumber features.
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
- * Implemented in less than 400 lines (SLOC) of pure Ruby code! :-)
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
- Prerequisites
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 # linux
82
- gem install rb-fsevent # macosx
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
- As a Git clone:
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
- If installed as a Git clone:
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
- You can forcefully terminate Tork from another terminal:
98
+ ### Development
116
99
 
117
- pkill -f tork
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 yielding a file globbing pattern describing a set of
157
- test files that need to be run. In other words, whenever the source files
158
- (the hash key; left-hand side of the mapping) change, their associated test
159
- files (the hash value; right-hand side of the mapping) are run.
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, test_names|
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
- :test_names => test_names,
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, test_names|
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
- :test_names => test_names,
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 correspond to the given `test_names` values. This
243
- accelerates your test-driven development cycle and improves productivity!
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 15.1.0
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 indentification in ps(1) output
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, test_names, *details = details
63
- message = [evstr.upcase, test_file, test_names.inspect, details].join(' ')
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 15.1.0
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 indentification in ps(1) output
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 15.1.0
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 indentification in ps(1) output
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 15.1.0
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*`,` *test_names*`]`
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 named in the given array of *test_names*.
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 indentification in ps(1) output
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
- # tell testing framework to only run the named tests inside the test file
51
- lambda do |worker_number, log_file, test_file, test_names|
52
- unless test_names.empty?
53
- case File.basename(test_file)
54
- when /(\b|_)test(\b|_)/ # Test::Unit
55
- ARGV.push '--name', "/(?i:#{
56
- test_names.map do |name|
57
- # elide string interpolation and invalid method name characters
58
- name.gsub(/\#\{.*?\}/, ' ').strip.gsub(/\W+/, '.*')
59
- end.join('|')
60
- })/"
61
- when /(\b|_)spec(\b|_)/ # RSpec
62
- test_names.each {|name| ARGV.push '--example', name }
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
@@ -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
- path.sub %r<step_definitions/.+$>, '*.feature'
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, test_names|
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.dup
17
+ ARGV << [test_file, *line_numbers].join(':')
18
18
  require 'cucumber'
19
19
  require 'rubygems'
20
20
  cucumber_bin = Gem.bin_path('cucumber', 'cucumber')
@@ -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[%r<^(app|lib|test|spec)/.+\.rb$>] =
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
- Tork::Config.test_file_globbers[%r<^(test|spec)/factories/.+_factory\.rb$>] =
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, find_changed_test_names(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 find_changed_test_names test_file
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 tests have changed inside the given test file
122
- Diff::LCS.diff(old_lines, new_lines).flatten.map do |change|
123
- catch :found do
124
- # search backwards from the line that changed up to
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, test_names
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, test_names
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, test_names
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
@@ -1,3 +1,3 @@
1
1
  module Tork
2
- VERSION = "15.1.0"
2
+ VERSION = "16.0.0"
3
3
  end
@@ -1,4 +1,4 @@
1
- .TH TORK\-DRIVER 1 2012\-01\-25 15.1.0
1
+ .TH TORK\-DRIVER 1 2012\-01\-25 16.0.0
2
2
  .SH NAME
3
3
  .PP
4
4
  tork\-driver \- drives
@@ -1,4 +1,4 @@
1
- .TH TORK\-HERALD 1 2012\-01\-25 15.1.0
1
+ .TH TORK\-HERALD 1 2012\-01\-25 16.0.0
2
2
  .SH NAME
3
3
  .PP
4
4
  tork\-herald \- reports modified files
@@ -1,4 +1,4 @@
1
- .TH TORK\-MASTER 1 2012\-01\-25 15.1.0
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 \fItest_names\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 named in the given array of \fItest_names\fP.
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
@@ -1,4 +1,4 @@
1
- .TH TORK 1 2012\-01\-25 15.1.0
1
+ .TH TORK 1 2012\-01\-25 16.0.0
2
2
  .SH NAME
3
3
  .PP
4
4
  tork \- Continuous testing tool for Ruby
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 = "Continuous testing tool for Ruby"
12
- s.description = nil
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: 15.1.0
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-25 00:00:00.000000000 Z
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: &10963180 !ruby/object:Gem::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: *10963180
25
+ version_requirements: *15804480
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: json
28
- requirement: &10960800 !ruby/object:Gem::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: *10960800
39
+ version_requirements: *15803820
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: guard
42
- requirement: &10974580 !ruby/object:Gem::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: *10974580
53
+ version_requirements: *15818660
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: diff-lcs
56
- requirement: &10971640 !ruby/object:Gem::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: *10971640
67
+ version_requirements: *15816880
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: md2man
70
- requirement: &10969380 !ruby/object:Gem::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: *10969380
79
- description: ''
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: 2349533422050569344
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: 2349533422050569344
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: Continuous testing tool for Ruby
158
+ summary: Test with fork.
145
159
  test_files: []