rake 0.9.2.2 → 13.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/History.rdoc +2403 -0
- data/MIT-LICENSE +1 -1
- data/README.rdoc +64 -106
- data/doc/command_line_usage.rdoc +65 -21
- data/doc/glossary.rdoc +40 -49
- data/doc/jamis.rb +1 -0
- data/doc/rake.1 +156 -0
- data/doc/rakefile.rdoc +127 -62
- data/{bin → exe}/rake +1 -7
- data/lib/rake/application.rb +507 -271
- data/lib/rake/backtrace.rb +24 -0
- data/lib/rake/clean.rb +54 -8
- data/lib/rake/cloneable.rb +11 -19
- data/lib/rake/cpu_counter.rb +107 -0
- data/lib/rake/default_loader.rb +5 -0
- data/lib/rake/dsl_definition.rb +67 -48
- data/lib/rake/early_time.rb +5 -1
- data/lib/rake/ext/core.rb +5 -6
- data/lib/rake/ext/string.rb +61 -52
- data/lib/rake/file_creation_task.rb +4 -3
- data/lib/rake/file_list.rb +81 -49
- data/lib/rake/file_task.rb +15 -8
- data/lib/rake/file_utils.rb +63 -43
- data/lib/rake/file_utils_ext.rb +14 -25
- data/lib/rake/invocation_chain.rb +25 -19
- data/lib/rake/invocation_exception_mixin.rb +1 -0
- data/lib/rake/late_time.rb +18 -0
- data/lib/rake/linked_list.rb +112 -0
- data/lib/rake/loaders/makefile.rb +23 -9
- data/lib/rake/multi_task.rb +4 -6
- data/lib/rake/name_space.rb +36 -23
- data/lib/rake/packagetask.rb +71 -34
- data/lib/rake/phony.rb +16 -0
- data/lib/rake/private_reader.rb +21 -0
- data/lib/rake/promise.rb +100 -0
- data/lib/rake/pseudo_status.rb +8 -2
- data/lib/rake/rake_module.rb +41 -3
- data/lib/rake/rake_test_loader.rb +9 -4
- data/lib/rake/rule_recursion_overflow_error.rb +2 -2
- data/lib/rake/scope.rb +43 -0
- data/lib/rake/task.rb +186 -79
- data/lib/rake/task_argument_error.rb +1 -0
- data/lib/rake/task_arguments.rb +46 -15
- data/lib/rake/task_manager.rb +91 -67
- data/lib/rake/tasklib.rb +2 -12
- data/lib/rake/testtask.rb +61 -63
- data/lib/rake/thread_history_display.rb +49 -0
- data/lib/rake/thread_pool.rb +163 -0
- data/lib/rake/trace_output.rb +23 -0
- data/lib/rake/version.rb +5 -3
- data/lib/rake/win32.rb +14 -18
- data/lib/rake.rb +35 -33
- data/rake.gemspec +100 -0
- metadata +74 -176
- data/.gemtest +0 -0
- data/CHANGES +0 -522
- data/Rakefile +0 -369
- data/TODO +0 -20
- data/doc/rake.1.gz +0 -0
- data/doc/release_notes/rake-0.4.14.rdoc +0 -23
- data/doc/release_notes/rake-0.4.15.rdoc +0 -35
- data/doc/release_notes/rake-0.5.0.rdoc +0 -53
- data/doc/release_notes/rake-0.5.3.rdoc +0 -78
- data/doc/release_notes/rake-0.5.4.rdoc +0 -46
- data/doc/release_notes/rake-0.6.0.rdoc +0 -141
- data/doc/release_notes/rake-0.7.0.rdoc +0 -119
- data/doc/release_notes/rake-0.7.1.rdoc +0 -59
- data/doc/release_notes/rake-0.7.2.rdoc +0 -121
- data/doc/release_notes/rake-0.7.3.rdoc +0 -47
- data/doc/release_notes/rake-0.8.0.rdoc +0 -114
- data/doc/release_notes/rake-0.8.2.rdoc +0 -165
- data/doc/release_notes/rake-0.8.3.rdoc +0 -112
- data/doc/release_notes/rake-0.8.4.rdoc +0 -147
- data/doc/release_notes/rake-0.8.5.rdoc +0 -53
- data/doc/release_notes/rake-0.8.6.rdoc +0 -55
- data/doc/release_notes/rake-0.8.7.rdoc +0 -55
- data/doc/release_notes/rake-0.9.0.rdoc +0 -112
- data/doc/release_notes/rake-0.9.1.rdoc +0 -52
- data/doc/release_notes/rake-0.9.2.rdoc +0 -49
- data/install.rb +0 -90
- data/lib/rake/alt_system.rb +0 -109
- data/lib/rake/classic_namespace.rb +0 -11
- data/lib/rake/contrib/compositepublisher.rb +0 -21
- data/lib/rake/contrib/ftptools.rb +0 -150
- data/lib/rake/contrib/publisher.rb +0 -73
- data/lib/rake/contrib/rubyforgepublisher.rb +0 -16
- data/lib/rake/contrib/sshpublisher.rb +0 -50
- data/lib/rake/contrib/sys.rb +0 -191
- data/lib/rake/ext/module.rb +0 -39
- data/lib/rake/ext/time.rb +0 -14
- data/lib/rake/gempackagetask.rb +0 -15
- data/lib/rake/pathmap.rb +0 -1
- data/lib/rake/rdoctask.rb +0 -234
- data/lib/rake/ruby182_test_unit_fix.rb +0 -25
- data/lib/rake/runtest.rb +0 -21
- data/test/file_creation.rb +0 -34
- data/test/helper.rb +0 -492
- data/test/test_rake.rb +0 -40
- data/test/test_rake_application.rb +0 -489
- data/test/test_rake_application_options.rb +0 -335
- data/test/test_rake_clean.rb +0 -14
- data/test/test_rake_definitions.rb +0 -80
- data/test/test_rake_directory_task.rb +0 -46
- data/test/test_rake_dsl.rb +0 -77
- data/test/test_rake_early_time.rb +0 -31
- data/test/test_rake_extension.rb +0 -59
- data/test/test_rake_file_creation_task.rb +0 -56
- data/test/test_rake_file_list.rb +0 -628
- data/test/test_rake_file_list_path_map.rb +0 -8
- data/test/test_rake_file_task.rb +0 -102
- data/test/test_rake_file_utils.rb +0 -305
- data/test/test_rake_ftp_file.rb +0 -59
- data/test/test_rake_functional.rb +0 -450
- data/test/test_rake_invocation_chain.rb +0 -52
- data/test/test_rake_makefile_loader.rb +0 -44
- data/test/test_rake_multi_task.rb +0 -51
- data/test/test_rake_name_space.rb +0 -43
- data/test/test_rake_package_task.rb +0 -79
- data/test/test_rake_path_map.rb +0 -157
- data/test/test_rake_path_map_explode.rb +0 -34
- data/test/test_rake_path_map_partial.rb +0 -18
- data/test/test_rake_pseudo_status.rb +0 -21
- data/test/test_rake_rake_test_loader.rb +0 -21
- data/test/test_rake_rdoc_task.rb +0 -83
- data/test/test_rake_require.rb +0 -40
- data/test/test_rake_rules.rb +0 -327
- data/test/test_rake_task.rb +0 -267
- data/test/test_rake_task_argument_parsing.rb +0 -103
- data/test/test_rake_task_arguments.rb +0 -88
- data/test/test_rake_task_lib.rb +0 -9
- data/test/test_rake_task_manager.rb +0 -157
- data/test/test_rake_task_manager_argument_resolution.rb +0 -36
- data/test/test_rake_task_with_arguments.rb +0 -173
- data/test/test_rake_test_task.rb +0 -120
- data/test/test_rake_top_level_functions.rb +0 -111
- data/test/test_rake_win32.rb +0 -72
- data/test/test_sys.rb +0 -20
@@ -0,0 +1,163 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rake/promise"
|
4
|
+
|
5
|
+
module Rake
|
6
|
+
|
7
|
+
class ThreadPool # :nodoc: all
|
8
|
+
|
9
|
+
# Creates a ThreadPool object. The +thread_count+ parameter is the size
|
10
|
+
# of the pool.
|
11
|
+
def initialize(thread_count)
|
12
|
+
require "set"
|
13
|
+
@max_active_threads = [thread_count, 0].max
|
14
|
+
@threads = Set.new
|
15
|
+
@threads_mon = Monitor.new
|
16
|
+
@queue = Queue.new
|
17
|
+
@join_cond = @threads_mon.new_cond
|
18
|
+
|
19
|
+
@history_start_time = nil
|
20
|
+
@history = []
|
21
|
+
@history_mon = Monitor.new
|
22
|
+
@total_threads_in_play = 0
|
23
|
+
end
|
24
|
+
|
25
|
+
# Creates a future executed by the +ThreadPool+.
|
26
|
+
#
|
27
|
+
# The args are passed to the block when executing (similarly to
|
28
|
+
# Thread#new) The return value is an object representing
|
29
|
+
# a future which has been created and added to the queue in the
|
30
|
+
# pool. Sending #value to the object will sleep the
|
31
|
+
# current thread until the future is finished and will return the
|
32
|
+
# result (or raise an exception thrown from the future)
|
33
|
+
def future(*args, &block)
|
34
|
+
promise = Promise.new(args, &block)
|
35
|
+
promise.recorder = lambda { |*stats| stat(*stats) }
|
36
|
+
|
37
|
+
@queue.enq promise
|
38
|
+
stat :queued, item_id: promise.object_id
|
39
|
+
start_thread
|
40
|
+
promise
|
41
|
+
end
|
42
|
+
|
43
|
+
# Waits until the queue of futures is empty and all threads have exited.
|
44
|
+
def join
|
45
|
+
@threads_mon.synchronize do
|
46
|
+
begin
|
47
|
+
stat :joining
|
48
|
+
@join_cond.wait unless @threads.empty?
|
49
|
+
stat :joined
|
50
|
+
rescue Exception => e
|
51
|
+
stat :joined
|
52
|
+
$stderr.puts e
|
53
|
+
$stderr.print "Queue contains #{@queue.size} items. " +
|
54
|
+
"Thread pool contains #{@threads.count} threads\n"
|
55
|
+
$stderr.print "Current Thread #{Thread.current} status = " +
|
56
|
+
"#{Thread.current.status}\n"
|
57
|
+
$stderr.puts e.backtrace.join("\n")
|
58
|
+
@threads.each do |t|
|
59
|
+
$stderr.print "Thread #{t} status = #{t.status}\n"
|
60
|
+
$stderr.puts t.backtrace.join("\n")
|
61
|
+
end
|
62
|
+
raise e
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
# Enable the gathering of history events.
|
68
|
+
def gather_history #:nodoc:
|
69
|
+
@history_start_time = Time.now if @history_start_time.nil?
|
70
|
+
end
|
71
|
+
|
72
|
+
# Return a array of history events for the thread pool.
|
73
|
+
#
|
74
|
+
# History gathering must be enabled to be able to see the events
|
75
|
+
# (see #gather_history). Best to call this when the job is
|
76
|
+
# complete (i.e. after ThreadPool#join is called).
|
77
|
+
def history # :nodoc:
|
78
|
+
@history_mon.synchronize { @history.dup }.
|
79
|
+
sort_by { |i| i[:time] }.
|
80
|
+
each { |i| i[:time] -= @history_start_time }
|
81
|
+
end
|
82
|
+
|
83
|
+
# Return a hash of always collected statistics for the thread pool.
|
84
|
+
def statistics # :nodoc:
|
85
|
+
{
|
86
|
+
total_threads_in_play: @total_threads_in_play,
|
87
|
+
max_active_threads: @max_active_threads,
|
88
|
+
}
|
89
|
+
end
|
90
|
+
|
91
|
+
private
|
92
|
+
|
93
|
+
# processes one item on the queue. Returns true if there was an
|
94
|
+
# item to process, false if there was no item
|
95
|
+
def process_queue_item #:nodoc:
|
96
|
+
return false if @queue.empty?
|
97
|
+
|
98
|
+
# Even though we just asked if the queue was empty, it
|
99
|
+
# still could have had an item which by this statement
|
100
|
+
# is now gone. For this reason we pass true to Queue#deq
|
101
|
+
# because we will sleep indefinitely if it is empty.
|
102
|
+
promise = @queue.deq(true)
|
103
|
+
stat :dequeued, item_id: promise.object_id
|
104
|
+
promise.work
|
105
|
+
return true
|
106
|
+
|
107
|
+
rescue ThreadError # this means the queue is empty
|
108
|
+
false
|
109
|
+
end
|
110
|
+
|
111
|
+
def safe_thread_count
|
112
|
+
@threads_mon.synchronize do
|
113
|
+
@threads.count
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
def start_thread # :nodoc:
|
118
|
+
@threads_mon.synchronize do
|
119
|
+
next unless @threads.count < @max_active_threads
|
120
|
+
|
121
|
+
t = Thread.new do
|
122
|
+
begin
|
123
|
+
while safe_thread_count <= @max_active_threads
|
124
|
+
break unless process_queue_item
|
125
|
+
end
|
126
|
+
ensure
|
127
|
+
@threads_mon.synchronize do
|
128
|
+
@threads.delete Thread.current
|
129
|
+
stat :ended, thread_count: @threads.count
|
130
|
+
@join_cond.broadcast if @threads.empty?
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
@threads << t
|
136
|
+
stat(
|
137
|
+
:spawned,
|
138
|
+
new_thread: t.object_id,
|
139
|
+
thread_count: @threads.count)
|
140
|
+
@total_threads_in_play = @threads.count if
|
141
|
+
@threads.count > @total_threads_in_play
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
def stat(event, data=nil) # :nodoc:
|
146
|
+
return if @history_start_time.nil?
|
147
|
+
info = {
|
148
|
+
event: event,
|
149
|
+
data: data,
|
150
|
+
time: Time.now,
|
151
|
+
thread: Thread.current.object_id,
|
152
|
+
}
|
153
|
+
@history_mon.synchronize { @history << info }
|
154
|
+
end
|
155
|
+
|
156
|
+
# for testing only
|
157
|
+
|
158
|
+
def __queue__ # :nodoc:
|
159
|
+
@queue
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Rake
|
3
|
+
module TraceOutput # :nodoc: all
|
4
|
+
|
5
|
+
# Write trace output to output stream +out+.
|
6
|
+
#
|
7
|
+
# The write is done as a single IO call (to print) to lessen the
|
8
|
+
# chance that the trace output is interrupted by other tasks also
|
9
|
+
# producing output.
|
10
|
+
def trace_on(out, *strings)
|
11
|
+
sep = $\ || "\n"
|
12
|
+
if strings.empty?
|
13
|
+
output = sep
|
14
|
+
else
|
15
|
+
output = strings.map { |s|
|
16
|
+
next if s.nil?
|
17
|
+
s.end_with?(sep) ? s : s + sep
|
18
|
+
}.join
|
19
|
+
end
|
20
|
+
out.print(output)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/rake/version.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module Rake
|
2
|
-
VERSION =
|
3
|
+
VERSION = "13.0.6"
|
3
4
|
|
4
5
|
module Version # :nodoc: all
|
5
|
-
MAJOR, MINOR, BUILD,
|
6
|
-
|
6
|
+
MAJOR, MINOR, BUILD, *OTHER = Rake::VERSION.split "."
|
7
|
+
|
8
|
+
NUMBERS = [MAJOR, MINOR, BUILD, *OTHER]
|
7
9
|
end
|
8
10
|
end
|
data/lib/rake/win32.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "rbconfig"
|
1
3
|
|
2
4
|
module Rake
|
3
|
-
require 'rake/alt_system'
|
4
|
-
|
5
5
|
# Win 32 interface methods for Rake. Windows specific functionality
|
6
6
|
# will be placed here to collect that knowledge in one spot.
|
7
|
-
module Win32
|
7
|
+
module Win32 # :nodoc: all
|
8
8
|
|
9
9
|
# Error indicating a problem in locating the home directory on a
|
10
10
|
# Win32 system.
|
@@ -14,12 +14,7 @@ module Rake
|
|
14
14
|
class << self
|
15
15
|
# True if running on a windows system.
|
16
16
|
def windows?
|
17
|
-
|
18
|
-
end
|
19
|
-
|
20
|
-
# Run a command line on windows.
|
21
|
-
def rake_system(*cmd)
|
22
|
-
AltSystem.system(*cmd)
|
17
|
+
RbConfig::CONFIG["host_os"] =~ %r!(msdos|mswin|djgpp|mingw|[Ww]indows)!
|
23
18
|
end
|
24
19
|
|
25
20
|
# The standard directory containing system wide rake files on
|
@@ -33,21 +28,22 @@ module Rake
|
|
33
28
|
#
|
34
29
|
# If the above are not defined, the return nil.
|
35
30
|
def win32_system_dir #:nodoc:
|
36
|
-
win32_shared_path = ENV[
|
37
|
-
if win32_shared_path.nil? && ENV[
|
38
|
-
win32_shared_path = ENV[
|
31
|
+
win32_shared_path = ENV["HOME"]
|
32
|
+
if win32_shared_path.nil? && ENV["HOMEDRIVE"] && ENV["HOMEPATH"]
|
33
|
+
win32_shared_path = ENV["HOMEDRIVE"] + ENV["HOMEPATH"]
|
39
34
|
end
|
40
35
|
|
41
|
-
win32_shared_path ||= ENV[
|
42
|
-
win32_shared_path ||= ENV[
|
43
|
-
raise Win32HomeError,
|
44
|
-
|
45
|
-
|
36
|
+
win32_shared_path ||= ENV["APPDATA"]
|
37
|
+
win32_shared_path ||= ENV["USERPROFILE"]
|
38
|
+
raise Win32HomeError,
|
39
|
+
"Unable to determine home path environment variable." if
|
40
|
+
win32_shared_path.nil? or win32_shared_path.empty?
|
41
|
+
normalize(File.join(win32_shared_path, "Rake"))
|
46
42
|
end
|
47
43
|
|
48
44
|
# Normalize a win32 path so that the slashes are all forward slashes.
|
49
45
|
def normalize(path)
|
50
|
-
path.gsub(/\\/,
|
46
|
+
path.gsub(/\\/, "/")
|
51
47
|
end
|
52
48
|
|
53
49
|
end
|
data/lib/rake.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#--
|
2
|
-
|
3
3
|
# Copyright 2003-2010 by Jim Weirich (jim.weirich@gmail.com)
|
4
4
|
#
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
@@ -21,43 +21,45 @@
|
|
21
21
|
# IN THE SOFTWARE.
|
22
22
|
#++
|
23
23
|
|
24
|
-
|
24
|
+
module Rake; end
|
25
25
|
|
26
|
-
|
27
|
-
RAKEVERSION = Rake::VERSION
|
28
|
-
# :startdoc:
|
26
|
+
require "rake/version"
|
29
27
|
|
30
|
-
require
|
31
|
-
require
|
32
|
-
require
|
33
|
-
require
|
34
|
-
require
|
35
|
-
require
|
28
|
+
require "rbconfig"
|
29
|
+
require "fileutils"
|
30
|
+
require "singleton"
|
31
|
+
require "monitor"
|
32
|
+
require "optparse"
|
33
|
+
require "ostruct"
|
36
34
|
|
37
|
-
require
|
38
|
-
require 'rake/ext/string'
|
39
|
-
require 'rake/ext/time'
|
35
|
+
require "rake/ext/string"
|
40
36
|
|
41
|
-
require
|
37
|
+
require "rake/win32"
|
42
38
|
|
43
|
-
require
|
44
|
-
require
|
45
|
-
require
|
46
|
-
require
|
47
|
-
require
|
48
|
-
require
|
49
|
-
require
|
50
|
-
require
|
51
|
-
require
|
52
|
-
require
|
53
|
-
require
|
54
|
-
require
|
55
|
-
require
|
56
|
-
require
|
57
|
-
require
|
58
|
-
require
|
59
|
-
require
|
60
|
-
require
|
39
|
+
require "rake/linked_list"
|
40
|
+
require "rake/cpu_counter"
|
41
|
+
require "rake/scope"
|
42
|
+
require "rake/task_argument_error"
|
43
|
+
require "rake/rule_recursion_overflow_error"
|
44
|
+
require "rake/rake_module"
|
45
|
+
require "rake/trace_output"
|
46
|
+
require "rake/pseudo_status"
|
47
|
+
require "rake/task_arguments"
|
48
|
+
require "rake/invocation_chain"
|
49
|
+
require "rake/task"
|
50
|
+
require "rake/file_task"
|
51
|
+
require "rake/file_creation_task"
|
52
|
+
require "rake/multi_task"
|
53
|
+
require "rake/dsl_definition"
|
54
|
+
require "rake/file_utils_ext"
|
55
|
+
require "rake/file_list"
|
56
|
+
require "rake/default_loader"
|
57
|
+
require "rake/early_time"
|
58
|
+
require "rake/late_time"
|
59
|
+
require "rake/name_space"
|
60
|
+
require "rake/task_manager"
|
61
|
+
require "rake/application"
|
62
|
+
require "rake/backtrace"
|
61
63
|
|
62
64
|
$trace = false
|
63
65
|
|
data/rake.gemspec
ADDED
@@ -0,0 +1,100 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative 'lib/rake/version'
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = "rake".freeze
|
6
|
+
s.version = Rake::VERSION
|
7
|
+
s.authors = ["Hiroshi SHIBATA".freeze, "Eric Hodel".freeze, "Jim Weirich".freeze]
|
8
|
+
s.email = ["hsbt@ruby-lang.org".freeze, "drbrain@segment7.net".freeze, "".freeze]
|
9
|
+
|
10
|
+
s.summary = "Rake is a Make-like program implemented in Ruby".freeze
|
11
|
+
s.description = <<-DESCRIPTION
|
12
|
+
Rake is a Make-like program implemented in Ruby. Tasks and dependencies are
|
13
|
+
specified in standard Ruby syntax.
|
14
|
+
Rake has the following features:
|
15
|
+
* Rakefiles (rake's version of Makefiles) are completely defined in standard Ruby syntax.
|
16
|
+
No XML files to edit. No quirky Makefile syntax to worry about (is that a tab or a space?)
|
17
|
+
* Users can specify tasks with prerequisites.
|
18
|
+
* Rake supports rule patterns to synthesize implicit tasks.
|
19
|
+
* Flexible FileLists that act like arrays but know about manipulating file names and paths.
|
20
|
+
* Supports parallel execution of tasks.
|
21
|
+
DESCRIPTION
|
22
|
+
s.homepage = "https://github.com/ruby/rake".freeze
|
23
|
+
s.licenses = ["MIT".freeze]
|
24
|
+
|
25
|
+
s.metadata = {
|
26
|
+
"bug_tracker_uri" => "https://github.com/ruby/rake/issues",
|
27
|
+
"changelog_uri" => "https://github.com/ruby/rake/blob/v#{s.version}/History.rdoc",
|
28
|
+
"documentation_uri" => "https://ruby.github.io/rake",
|
29
|
+
"source_code_uri" => "https://github.com/ruby/rake/tree/v#{s.version}",
|
30
|
+
}
|
31
|
+
|
32
|
+
s.files = [
|
33
|
+
"History.rdoc",
|
34
|
+
"MIT-LICENSE",
|
35
|
+
"README.rdoc",
|
36
|
+
"doc/command_line_usage.rdoc",
|
37
|
+
"doc/example/Rakefile1",
|
38
|
+
"doc/example/Rakefile2",
|
39
|
+
"doc/example/a.c",
|
40
|
+
"doc/example/b.c",
|
41
|
+
"doc/example/main.c",
|
42
|
+
"doc/glossary.rdoc",
|
43
|
+
"doc/jamis.rb",
|
44
|
+
"doc/proto_rake.rdoc",
|
45
|
+
"doc/rake.1",
|
46
|
+
"doc/rakefile.rdoc",
|
47
|
+
"doc/rational.rdoc",
|
48
|
+
"exe/rake",
|
49
|
+
"lib/rake.rb",
|
50
|
+
"lib/rake/application.rb",
|
51
|
+
"lib/rake/backtrace.rb",
|
52
|
+
"lib/rake/clean.rb",
|
53
|
+
"lib/rake/cloneable.rb",
|
54
|
+
"lib/rake/cpu_counter.rb",
|
55
|
+
"lib/rake/default_loader.rb",
|
56
|
+
"lib/rake/dsl_definition.rb",
|
57
|
+
"lib/rake/early_time.rb",
|
58
|
+
"lib/rake/ext/core.rb",
|
59
|
+
"lib/rake/ext/string.rb",
|
60
|
+
"lib/rake/file_creation_task.rb",
|
61
|
+
"lib/rake/file_list.rb",
|
62
|
+
"lib/rake/file_task.rb",
|
63
|
+
"lib/rake/file_utils.rb",
|
64
|
+
"lib/rake/file_utils_ext.rb",
|
65
|
+
"lib/rake/invocation_chain.rb",
|
66
|
+
"lib/rake/invocation_exception_mixin.rb",
|
67
|
+
"lib/rake/late_time.rb",
|
68
|
+
"lib/rake/linked_list.rb",
|
69
|
+
"lib/rake/loaders/makefile.rb",
|
70
|
+
"lib/rake/multi_task.rb",
|
71
|
+
"lib/rake/name_space.rb",
|
72
|
+
"lib/rake/packagetask.rb",
|
73
|
+
"lib/rake/phony.rb",
|
74
|
+
"lib/rake/private_reader.rb",
|
75
|
+
"lib/rake/promise.rb",
|
76
|
+
"lib/rake/pseudo_status.rb",
|
77
|
+
"lib/rake/rake_module.rb",
|
78
|
+
"lib/rake/rake_test_loader.rb",
|
79
|
+
"lib/rake/rule_recursion_overflow_error.rb",
|
80
|
+
"lib/rake/scope.rb",
|
81
|
+
"lib/rake/task.rb",
|
82
|
+
"lib/rake/task_argument_error.rb",
|
83
|
+
"lib/rake/task_arguments.rb",
|
84
|
+
"lib/rake/task_manager.rb",
|
85
|
+
"lib/rake/tasklib.rb",
|
86
|
+
"lib/rake/testtask.rb",
|
87
|
+
"lib/rake/thread_history_display.rb",
|
88
|
+
"lib/rake/thread_pool.rb",
|
89
|
+
"lib/rake/trace_output.rb",
|
90
|
+
"lib/rake/version.rb",
|
91
|
+
"lib/rake/win32.rb",
|
92
|
+
"rake.gemspec"
|
93
|
+
]
|
94
|
+
s.bindir = "exe"
|
95
|
+
s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
96
|
+
s.require_paths = ["lib".freeze]
|
97
|
+
|
98
|
+
s.required_ruby_version = Gem::Requirement.new(">= 2.2".freeze)
|
99
|
+
s.rdoc_options = ["--main".freeze, "README.rdoc".freeze]
|
100
|
+
end
|