rake 0.9.2.2 → 0.9.4
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/CHANGES +4 -0
- data/README.rdoc +10 -20
- data/Rakefile +6 -1
- data/TODO +1 -0
- data/bin/rake +4 -0
- data/doc/command_line_usage.rdoc +61 -12
- data/doc/release_notes/rake-0.9.2.2.rdoc +55 -0
- data/doc/release_notes/rake-0.9.3.rdoc +102 -0
- data/install.rb +1 -1
- data/lib/rake/application.rb +245 -140
- data/lib/rake/backtrace.rb +18 -0
- data/lib/rake/clean.rb +1 -1
- data/lib/rake/cloneable.rb +7 -16
- data/lib/rake/contrib/ftptools.rb +2 -1
- data/lib/rake/contrib/sys.rb +7 -6
- data/lib/rake/dsl_definition.rb +13 -7
- data/lib/rake/ext/module.rb +1 -1
- data/lib/rake/ext/string.rb +2 -1
- data/lib/rake/ext/time.rb +2 -1
- data/lib/rake/file_list.rb +9 -2
- data/lib/rake/file_utils_ext.rb +4 -3
- data/lib/rake/multi_task.rb +2 -5
- data/lib/rake/phony.rb +15 -0
- data/lib/rake/private_reader.rb +20 -0
- data/lib/rake/promise.rb +99 -0
- data/lib/rake/rake_module.rb +8 -0
- data/lib/rake/rdoctask.rb +1 -1
- data/lib/rake/runtest.rb +2 -1
- data/lib/rake/task.rb +29 -7
- data/lib/rake/task_arguments.rb +1 -1
- data/lib/rake/task_manager.rb +1 -1
- data/lib/rake/testtask.rb +8 -1
- data/lib/rake/thread_history_display.rb +48 -0
- data/lib/rake/thread_pool.rb +155 -0
- data/lib/rake/version.rb +6 -4
- data/lib/rake.rb +1 -0
- data/test/helper.rb +57 -0
- data/test/test_private_reader.rb +42 -0
- data/test/test_rake_application.rb +12 -1
- data/test/test_rake_application_options.rb +114 -4
- data/test/test_rake_backtrace.rb +81 -0
- data/test/test_rake_directory_task.rb +16 -5
- data/test/test_rake_file_task.rb +21 -1
- data/test/test_rake_functional.rb +40 -1
- data/test/test_rake_multi_task.rb +8 -0
- data/test/test_rake_reduce_compat.rb +65 -0
- data/test/test_rake_task.rb +50 -1
- data/test/test_rake_thread_pool.rb +123 -0
- data/test/test_thread_history_display.rb +91 -0
- metadata +50 -34
data/test/test_rake_task.rb
CHANGED
|
@@ -104,10 +104,12 @@ class TestRakeTask < Rake::TestCase
|
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
def test_clear
|
|
107
|
+
desc "a task"
|
|
107
108
|
t = task("t" => "a") { }
|
|
108
109
|
t.clear
|
|
109
110
|
assert t.prerequisites.empty?, "prerequisites should be empty"
|
|
110
111
|
assert t.actions.empty?, "actions should be empty"
|
|
112
|
+
assert_nil t.comment, "comments should be empty"
|
|
111
113
|
end
|
|
112
114
|
|
|
113
115
|
def test_clear_prerequisites
|
|
@@ -123,6 +125,22 @@ class TestRakeTask < Rake::TestCase
|
|
|
123
125
|
assert t.actions.empty?, "actions should be empty"
|
|
124
126
|
end
|
|
125
127
|
|
|
128
|
+
def test_clear_comments
|
|
129
|
+
desc "the original foo"
|
|
130
|
+
task :foo => [:x] do
|
|
131
|
+
# Dummy action
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
task(:foo).clear_comments
|
|
135
|
+
|
|
136
|
+
desc "a slightly different foo"
|
|
137
|
+
task :foo
|
|
138
|
+
|
|
139
|
+
assert_equal "a slightly different foo", task(:foo).comment
|
|
140
|
+
assert_equal ["x"], task(:foo).prerequisites
|
|
141
|
+
assert_equal 1, task(:foo).actions.size
|
|
142
|
+
end
|
|
143
|
+
|
|
126
144
|
def test_find
|
|
127
145
|
task :tfind
|
|
128
146
|
assert_equal "tfind", Task[:tfind].name
|
|
@@ -223,6 +241,38 @@ class TestRakeTask < Rake::TestCase
|
|
|
223
241
|
assert_in_delta now + 10, a.timestamp, 0.1, 'computer too slow?'
|
|
224
242
|
end
|
|
225
243
|
|
|
244
|
+
def test_always_multitask
|
|
245
|
+
mx = Mutex.new
|
|
246
|
+
result = []
|
|
247
|
+
|
|
248
|
+
t_a = task(:a) do |t|
|
|
249
|
+
sleep 0.02
|
|
250
|
+
mx.synchronize{ result << t.name }
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
t_b = task(:b) do |t|
|
|
254
|
+
mx.synchronize{ result << t.name }
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
t_c = task(:c => [:a,:b]) do |t|
|
|
258
|
+
mx.synchronize{ result << t.name }
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
t_c.invoke
|
|
262
|
+
|
|
263
|
+
# task should always run in order
|
|
264
|
+
assert_equal ['a', 'b', 'c'], result
|
|
265
|
+
|
|
266
|
+
[t_a, t_b, t_c].each { |t| t.reenable }
|
|
267
|
+
result.clear
|
|
268
|
+
|
|
269
|
+
Rake.application.options.always_multitask = true
|
|
270
|
+
t_c.invoke
|
|
271
|
+
|
|
272
|
+
# with multitask, task 'b' should grab the mutex first
|
|
273
|
+
assert_equal ['b', 'a', 'c'], result
|
|
274
|
+
end
|
|
275
|
+
|
|
226
276
|
def test_investigation_output
|
|
227
277
|
t1 = task(:t1 => [:t2, :t3]) { |t| runlist << t.name; 3321 }
|
|
228
278
|
task(:t2)
|
|
@@ -264,4 +314,3 @@ class TestRakeTask < Rake::TestCase
|
|
|
264
314
|
assert_equal "HI", t.comment
|
|
265
315
|
end
|
|
266
316
|
end
|
|
267
|
-
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
require File.expand_path('../helper', __FILE__)
|
|
2
|
+
require 'rake/thread_pool'
|
|
3
|
+
require 'test/unit/assertions'
|
|
4
|
+
|
|
5
|
+
class TestRakeTestThreadPool < Rake::TestCase
|
|
6
|
+
include Rake
|
|
7
|
+
|
|
8
|
+
def test_pool_executes_in_current_thread_for_zero_threads
|
|
9
|
+
pool = ThreadPool.new(0)
|
|
10
|
+
f = pool.future{Thread.current}
|
|
11
|
+
pool.join
|
|
12
|
+
assert_equal Thread.current, f.value
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def test_pool_executes_in_other_thread_for_pool_of_size_one
|
|
16
|
+
pool = ThreadPool.new(1)
|
|
17
|
+
f = pool.future{Thread.current}
|
|
18
|
+
pool.join
|
|
19
|
+
refute_equal Thread.current, f.value
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_pool_executes_in_two_other_threads_for_pool_of_size_two
|
|
23
|
+
pool = ThreadPool.new(2)
|
|
24
|
+
threads = 2.times.collect{ pool.future{ sleep 0.1; Thread.current } }.each{|f|f.value}
|
|
25
|
+
|
|
26
|
+
refute_equal threads[0], threads[1]
|
|
27
|
+
refute_equal Thread.current, threads[0]
|
|
28
|
+
refute_equal Thread.current, threads[1]
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def test_pool_creates_the_correct_number_of_threads
|
|
32
|
+
pool = ThreadPool.new(2)
|
|
33
|
+
threads = Set.new
|
|
34
|
+
t_mutex = Mutex.new
|
|
35
|
+
10.times.each do
|
|
36
|
+
pool.future do
|
|
37
|
+
sleep 0.02
|
|
38
|
+
t_mutex.synchronize{ threads << Thread.current }
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
pool.join
|
|
42
|
+
assert_equal 2, threads.count
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def test_pool_future_captures_arguments
|
|
46
|
+
pool = ThreadPool.new(2)
|
|
47
|
+
a = 'a'
|
|
48
|
+
b = 'b'
|
|
49
|
+
c = 5 # 5 throws an execption with 5.dup. It should be ignored
|
|
50
|
+
pool.future(a,c){ |a_var,ignore| a_var.capitalize!; b.capitalize! }
|
|
51
|
+
pool.join
|
|
52
|
+
assert_equal 'a', a
|
|
53
|
+
assert_equal 'b'.capitalize, b
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def test_pool_join_empties_queue
|
|
57
|
+
pool = ThreadPool.new(2)
|
|
58
|
+
repeat = 25
|
|
59
|
+
repeat.times {
|
|
60
|
+
pool.future do
|
|
61
|
+
repeat.times {
|
|
62
|
+
pool.future do
|
|
63
|
+
repeat.times {
|
|
64
|
+
pool.future do end
|
|
65
|
+
}
|
|
66
|
+
end
|
|
67
|
+
}
|
|
68
|
+
end
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
pool.join
|
|
72
|
+
assert_equal true, pool.__send__(:__queue__).empty?, "queue should be empty"
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# test that throwing an exception way down in the blocks propagates
|
|
76
|
+
# to the top
|
|
77
|
+
def test_exceptions
|
|
78
|
+
pool = ThreadPool.new(10)
|
|
79
|
+
|
|
80
|
+
deep_exception_block = lambda do |count|
|
|
81
|
+
next raise Exception.new if ( count < 1 )
|
|
82
|
+
pool.future(count-1, &deep_exception_block).value
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
assert_raises(Exception) do
|
|
86
|
+
pool.future(2, &deep_exception_block).value
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def test_pool_prevents_deadlock
|
|
92
|
+
pool = ThreadPool.new(5)
|
|
93
|
+
|
|
94
|
+
common_dependency_a = pool.future { sleep 0.2 }
|
|
95
|
+
futures_a = 10.times.collect { pool.future{ common_dependency_a.value; sleep(rand() * 0.01) } }
|
|
96
|
+
|
|
97
|
+
common_dependency_b = pool.future { futures_a.each { |f| f.value } }
|
|
98
|
+
futures_b = 10.times.collect { pool.future{ common_dependency_b.value; sleep(rand() * 0.01) } }
|
|
99
|
+
|
|
100
|
+
futures_b.each{|f|f.value}
|
|
101
|
+
pool.join
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def test_pool_reports_correct_results
|
|
105
|
+
pool = ThreadPool.new(7)
|
|
106
|
+
|
|
107
|
+
a = 18
|
|
108
|
+
b = 5
|
|
109
|
+
c = 3
|
|
110
|
+
|
|
111
|
+
result = a.times.collect do
|
|
112
|
+
pool.future do
|
|
113
|
+
b.times.collect do
|
|
114
|
+
pool.future { sleep rand * 0.001; c }
|
|
115
|
+
end.inject(0) { |m,f| m+f.value }
|
|
116
|
+
end
|
|
117
|
+
end.inject(0) { |m,f| m+f.value }
|
|
118
|
+
|
|
119
|
+
assert_equal( (a*b*c), result )
|
|
120
|
+
pool.join
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
end
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
require File.expand_path('../helper', __FILE__)
|
|
2
|
+
|
|
3
|
+
require 'rake/thread_history_display'
|
|
4
|
+
|
|
5
|
+
class TestThreadHistoryDisplay < Rake::TestCase
|
|
6
|
+
def setup
|
|
7
|
+
super
|
|
8
|
+
@time = 1000000
|
|
9
|
+
@stats = []
|
|
10
|
+
@display = Rake::ThreadHistoryDisplay.new(@stats)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def test_banner
|
|
14
|
+
out, _ = capture_io do
|
|
15
|
+
@display.show
|
|
16
|
+
end
|
|
17
|
+
assert_match(/Job History/i, out)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def test_item_queued
|
|
21
|
+
@stats << event(:item_queued, :item_id => 123)
|
|
22
|
+
out, _ = capture_io do
|
|
23
|
+
@display.show
|
|
24
|
+
end
|
|
25
|
+
assert_match(/^ *1000000 +A +item_queued +item_id:1$/, out)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_item_dequeued
|
|
29
|
+
@stats << event(:item_dequeued, :item_id => 123)
|
|
30
|
+
out, _ = capture_io do
|
|
31
|
+
@display.show
|
|
32
|
+
end
|
|
33
|
+
assert_match(/^ *1000000 +A +item_dequeued +item_id:1$/, out)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test_multiple_items
|
|
37
|
+
@stats << event(:item_queued, :item_id => 123)
|
|
38
|
+
@stats << event(:item_queued, :item_id => 124)
|
|
39
|
+
out, _ = capture_io do
|
|
40
|
+
@display.show
|
|
41
|
+
end
|
|
42
|
+
assert_match(/^ *1000000 +A +item_queued +item_id:1$/, out)
|
|
43
|
+
assert_match(/^ *1000001 +A +item_queued +item_id:2$/, out)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_waiting
|
|
47
|
+
@stats << event(:waiting, :item_id => 123)
|
|
48
|
+
out, _ = capture_io do
|
|
49
|
+
@display.show
|
|
50
|
+
end
|
|
51
|
+
assert_match(/^ *1000000 +A +waiting +item_id:1$/, out)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def test_continue
|
|
55
|
+
@stats << event(:continue, :item_id => 123)
|
|
56
|
+
out, _ = capture_io do
|
|
57
|
+
@display.show
|
|
58
|
+
end
|
|
59
|
+
assert_match(/^ *1000000 +A +continue +item_id:1$/, out)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def test_thread_deleted
|
|
63
|
+
@stats << event(:thread_deleted, :deleted_thread => 123456, :thread_count => 12)
|
|
64
|
+
out, _ = capture_io do
|
|
65
|
+
@display.show
|
|
66
|
+
end
|
|
67
|
+
assert_match(/^ *1000000 +A +thread_deleted( +deleted_thread:B| +thread_count:12){2}$/, out)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def test_thread_created
|
|
71
|
+
@stats << event(:thread_created, :new_thread => 123456, :thread_count => 13)
|
|
72
|
+
out, _ = capture_io do
|
|
73
|
+
@display.show
|
|
74
|
+
end
|
|
75
|
+
assert_match(/^ *1000000 +A +thread_created( +new_thread:B| +thread_count:13){2}$/, out)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
private
|
|
79
|
+
|
|
80
|
+
def event(type, data={})
|
|
81
|
+
result = {
|
|
82
|
+
:event => type,
|
|
83
|
+
:time => @time / 1_000_000.0,
|
|
84
|
+
:data => data,
|
|
85
|
+
:thread => Thread.current.object_id
|
|
86
|
+
}
|
|
87
|
+
@time += 1
|
|
88
|
+
result
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
end
|
metadata
CHANGED
|
@@ -1,35 +1,39 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rake
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.9.4
|
|
4
5
|
prerelease:
|
|
5
|
-
version: 0.9.2.2
|
|
6
6
|
platform: ruby
|
|
7
|
-
authors:
|
|
7
|
+
authors:
|
|
8
8
|
- Jim Weirich
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
- !ruby/object:Gem::Dependency
|
|
12
|
+
date: 2012-11-14 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
16
15
|
name: minitest
|
|
17
|
-
|
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
19
17
|
none: false
|
|
20
|
-
requirements:
|
|
18
|
+
requirements:
|
|
21
19
|
- - ~>
|
|
22
|
-
- !ruby/object:Gem::Version
|
|
23
|
-
version:
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '2.1'
|
|
24
22
|
type: :development
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
prerelease: false
|
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
+
none: false
|
|
26
|
+
requirements:
|
|
27
|
+
- - ~>
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: '2.1'
|
|
30
|
+
description: Rake is a Make-like program implemented in Ruby. Tasks and dependencies
|
|
31
|
+
arespecified in standard Ruby syntax.
|
|
27
32
|
email: jim@weirichhouse.org
|
|
28
|
-
executables:
|
|
33
|
+
executables:
|
|
29
34
|
- rake
|
|
30
35
|
extensions: []
|
|
31
|
-
|
|
32
|
-
extra_rdoc_files:
|
|
36
|
+
extra_rdoc_files:
|
|
33
37
|
- README.rdoc
|
|
34
38
|
- MIT-LICENSE
|
|
35
39
|
- TODO
|
|
@@ -58,18 +62,21 @@ extra_rdoc_files:
|
|
|
58
62
|
- doc/release_notes/rake-0.8.7.rdoc
|
|
59
63
|
- doc/release_notes/rake-0.9.0.rdoc
|
|
60
64
|
- doc/release_notes/rake-0.9.1.rdoc
|
|
65
|
+
- doc/release_notes/rake-0.9.2.2.rdoc
|
|
61
66
|
- doc/release_notes/rake-0.9.2.rdoc
|
|
62
|
-
|
|
67
|
+
- doc/release_notes/rake-0.9.3.rdoc
|
|
68
|
+
files:
|
|
63
69
|
- .gemtest
|
|
64
70
|
- install.rb
|
|
65
71
|
- CHANGES
|
|
66
72
|
- MIT-LICENSE
|
|
67
|
-
- Rakefile
|
|
68
73
|
- README.rdoc
|
|
74
|
+
- Rakefile
|
|
69
75
|
- TODO
|
|
70
76
|
- bin/rake
|
|
71
77
|
- lib/rake/alt_system.rb
|
|
72
78
|
- lib/rake/application.rb
|
|
79
|
+
- lib/rake/backtrace.rb
|
|
73
80
|
- lib/rake/classic_namespace.rb
|
|
74
81
|
- lib/rake/clean.rb
|
|
75
82
|
- lib/rake/cloneable.rb
|
|
@@ -99,6 +106,9 @@ files:
|
|
|
99
106
|
- lib/rake/name_space.rb
|
|
100
107
|
- lib/rake/packagetask.rb
|
|
101
108
|
- lib/rake/pathmap.rb
|
|
109
|
+
- lib/rake/phony.rb
|
|
110
|
+
- lib/rake/private_reader.rb
|
|
111
|
+
- lib/rake/promise.rb
|
|
102
112
|
- lib/rake/pseudo_status.rb
|
|
103
113
|
- lib/rake/rake_module.rb
|
|
104
114
|
- lib/rake/rake_test_loader.rb
|
|
@@ -112,14 +122,18 @@ files:
|
|
|
112
122
|
- lib/rake/task_manager.rb
|
|
113
123
|
- lib/rake/tasklib.rb
|
|
114
124
|
- lib/rake/testtask.rb
|
|
125
|
+
- lib/rake/thread_history_display.rb
|
|
126
|
+
- lib/rake/thread_pool.rb
|
|
115
127
|
- lib/rake/version.rb
|
|
116
128
|
- lib/rake/win32.rb
|
|
117
129
|
- lib/rake.rb
|
|
118
130
|
- test/file_creation.rb
|
|
119
131
|
- test/helper.rb
|
|
132
|
+
- test/test_private_reader.rb
|
|
120
133
|
- test/test_rake.rb
|
|
121
134
|
- test/test_rake_application.rb
|
|
122
135
|
- test/test_rake_application_options.rb
|
|
136
|
+
- test/test_rake_backtrace.rb
|
|
123
137
|
- test/test_rake_clean.rb
|
|
124
138
|
- test/test_rake_definitions.rb
|
|
125
139
|
- test/test_rake_directory_task.rb
|
|
@@ -144,6 +158,7 @@ files:
|
|
|
144
158
|
- test/test_rake_pseudo_status.rb
|
|
145
159
|
- test/test_rake_rake_test_loader.rb
|
|
146
160
|
- test/test_rake_rdoc_task.rb
|
|
161
|
+
- test/test_rake_reduce_compat.rb
|
|
147
162
|
- test/test_rake_require.rb
|
|
148
163
|
- test/test_rake_rules.rb
|
|
149
164
|
- test/test_rake_task.rb
|
|
@@ -154,9 +169,11 @@ files:
|
|
|
154
169
|
- test/test_rake_task_manager_argument_resolution.rb
|
|
155
170
|
- test/test_rake_task_with_arguments.rb
|
|
156
171
|
- test/test_rake_test_task.rb
|
|
172
|
+
- test/test_rake_thread_pool.rb
|
|
157
173
|
- test/test_rake_top_level_functions.rb
|
|
158
174
|
- test/test_rake_win32.rb
|
|
159
175
|
- test/test_sys.rb
|
|
176
|
+
- test/test_thread_history_display.rb
|
|
160
177
|
- doc/command_line_usage.rdoc
|
|
161
178
|
- doc/example/a.c
|
|
162
179
|
- doc/example/b.c
|
|
@@ -188,38 +205,37 @@ files:
|
|
|
188
205
|
- doc/release_notes/rake-0.8.7.rdoc
|
|
189
206
|
- doc/release_notes/rake-0.9.0.rdoc
|
|
190
207
|
- doc/release_notes/rake-0.9.1.rdoc
|
|
208
|
+
- doc/release_notes/rake-0.9.2.2.rdoc
|
|
191
209
|
- doc/release_notes/rake-0.9.2.rdoc
|
|
210
|
+
- doc/release_notes/rake-0.9.3.rdoc
|
|
192
211
|
homepage: http://rake.rubyforge.org
|
|
193
212
|
licenses: []
|
|
194
|
-
|
|
195
213
|
post_install_message:
|
|
196
|
-
rdoc_options:
|
|
214
|
+
rdoc_options:
|
|
197
215
|
- --line-numbers
|
|
198
216
|
- --show-hash
|
|
199
217
|
- --main
|
|
200
218
|
- README.rdoc
|
|
201
219
|
- --title
|
|
202
220
|
- Rake -- Ruby Make
|
|
203
|
-
require_paths:
|
|
221
|
+
require_paths:
|
|
204
222
|
- lib
|
|
205
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
223
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
206
224
|
none: false
|
|
207
|
-
requirements:
|
|
208
|
-
- -
|
|
209
|
-
- !ruby/object:Gem::Version
|
|
225
|
+
requirements:
|
|
226
|
+
- - ! '>='
|
|
227
|
+
- !ruby/object:Gem::Version
|
|
210
228
|
version: 1.8.6
|
|
211
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
229
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
212
230
|
none: false
|
|
213
|
-
requirements:
|
|
214
|
-
- -
|
|
215
|
-
- !ruby/object:Gem::Version
|
|
231
|
+
requirements:
|
|
232
|
+
- - ! '>='
|
|
233
|
+
- !ruby/object:Gem::Version
|
|
216
234
|
version: 1.3.2
|
|
217
235
|
requirements: []
|
|
218
|
-
|
|
219
236
|
rubyforge_project: rake
|
|
220
|
-
rubygems_version: 1.8.
|
|
237
|
+
rubygems_version: 1.8.24
|
|
221
238
|
signing_key:
|
|
222
239
|
specification_version: 3
|
|
223
240
|
summary: Ruby based make-like utility.
|
|
224
241
|
test_files: []
|
|
225
|
-
|