podoy 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.txt +21 -0
- data/README.md +35 -0
- data/Rakefile +4 -0
- data/lib/podoy/version.rb +5 -0
- data/lib/podoy.rb +8 -0
- data/sig/podoy.rbs +4 -0
- data/vendor/bundle/ruby/3.3.0+0/bin/rake +29 -0
- data/vendor/bundle/ruby/3.3.0+0/cache/rake-13.1.0.gem +0 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/History.rdoc +2403 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/README.rdoc +155 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/doc/command_line_usage.rdoc +158 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/doc/example/Rakefile1 +38 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/doc/example/Rakefile2 +35 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/doc/example/a.c +6 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/doc/example/b.c +6 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/doc/example/main.c +11 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/doc/glossary.rdoc +42 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/doc/jamis.rb +592 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/doc/proto_rake.rdoc +127 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/doc/rake.1 +156 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/doc/rakefile.rdoc +622 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/doc/rational.rdoc +151 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/exe/rake +27 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/application.rb +855 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/backtrace.rb +24 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/clean.rb +78 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/cloneable.rb +17 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/cpu_counter.rb +107 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/default_loader.rb +15 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/dsl_definition.rb +195 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/early_time.rb +22 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/ext/core.rb +26 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/ext/string.rb +176 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/file_creation_task.rb +25 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/file_list.rb +435 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/file_task.rb +58 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/file_utils.rb +132 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/file_utils_ext.rb +134 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/invocation_chain.rb +57 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/invocation_exception_mixin.rb +17 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/late_time.rb +18 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/linked_list.rb +112 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/loaders/makefile.rb +54 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/multi_task.rb +14 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/name_space.rb +38 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/packagetask.rb +222 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/phony.rb +16 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/private_reader.rb +21 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/promise.rb +100 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/pseudo_status.rb +30 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/rake_module.rb +67 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/rake_test_loader.rb +27 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/rule_recursion_overflow_error.rb +20 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/scope.rb +43 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/task.rb +434 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/task_argument_error.rb +8 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/task_arguments.rb +109 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/task_manager.rb +331 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/tasklib.rb +12 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/testtask.rb +189 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/thread_history_display.rb +49 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/thread_pool.rb +163 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/trace_output.rb +23 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/version.rb +10 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake/win32.rb +51 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/lib/rake.rb +71 -0
- data/vendor/bundle/ruby/3.3.0+0/gems/rake-13.1.0/rake.gemspec +101 -0
- data/vendor/bundle/ruby/3.3.0+0/specifications/rake-13.1.0.gemspec +26 -0
- metadata +117 -0
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Rake
|
3
|
+
|
4
|
+
# Include PrivateReader to use +private_reader+.
|
5
|
+
module PrivateReader # :nodoc: all
|
6
|
+
|
7
|
+
def self.included(base)
|
8
|
+
base.extend(ClassMethods)
|
9
|
+
end
|
10
|
+
|
11
|
+
module ClassMethods
|
12
|
+
|
13
|
+
# Declare a list of private accessors
|
14
|
+
def private_reader(*names)
|
15
|
+
attr_reader(*names)
|
16
|
+
private(*names)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Rake
|
3
|
+
|
4
|
+
# A Promise object represents a promise to do work (a chore) in the
|
5
|
+
# future. The promise is created with a block and a list of
|
6
|
+
# arguments for the block. Calling value will return the value of
|
7
|
+
# the promised chore.
|
8
|
+
#
|
9
|
+
# Used by ThreadPool.
|
10
|
+
#
|
11
|
+
class Promise # :nodoc: all
|
12
|
+
NOT_SET = Object.new.freeze # :nodoc:
|
13
|
+
|
14
|
+
attr_accessor :recorder
|
15
|
+
|
16
|
+
# Create a promise to do the chore specified by the block.
|
17
|
+
def initialize(args, &block)
|
18
|
+
@mutex = Mutex.new
|
19
|
+
@result = NOT_SET
|
20
|
+
@error = NOT_SET
|
21
|
+
@args = args
|
22
|
+
@block = block
|
23
|
+
end
|
24
|
+
|
25
|
+
# Return the value of this promise.
|
26
|
+
#
|
27
|
+
# If the promised chore is not yet complete, then do the work
|
28
|
+
# synchronously. We will wait.
|
29
|
+
def value
|
30
|
+
unless complete?
|
31
|
+
stat :sleeping_on, item_id: object_id
|
32
|
+
@mutex.synchronize do
|
33
|
+
stat :has_lock_on, item_id: object_id
|
34
|
+
chore
|
35
|
+
stat :releasing_lock_on, item_id: object_id
|
36
|
+
end
|
37
|
+
end
|
38
|
+
error? ? raise(@error) : @result
|
39
|
+
end
|
40
|
+
|
41
|
+
# If no one else is working this promise, go ahead and do the chore.
|
42
|
+
def work
|
43
|
+
stat :attempting_lock_on, item_id: object_id
|
44
|
+
if @mutex.try_lock
|
45
|
+
stat :has_lock_on, item_id: object_id
|
46
|
+
chore
|
47
|
+
stat :releasing_lock_on, item_id: object_id
|
48
|
+
@mutex.unlock
|
49
|
+
else
|
50
|
+
stat :bailed_on, item_id: object_id
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
private
|
55
|
+
|
56
|
+
# Perform the chore promised
|
57
|
+
def chore
|
58
|
+
if complete?
|
59
|
+
stat :found_completed, item_id: object_id
|
60
|
+
return
|
61
|
+
end
|
62
|
+
stat :will_execute, item_id: object_id
|
63
|
+
begin
|
64
|
+
@result = @block.call(*@args)
|
65
|
+
rescue Exception => e
|
66
|
+
@error = e
|
67
|
+
end
|
68
|
+
stat :did_execute, item_id: object_id
|
69
|
+
discard
|
70
|
+
end
|
71
|
+
|
72
|
+
# Do we have a result for the promise
|
73
|
+
def result?
|
74
|
+
!@result.equal?(NOT_SET)
|
75
|
+
end
|
76
|
+
|
77
|
+
# Did the promise throw an error
|
78
|
+
def error?
|
79
|
+
!@error.equal?(NOT_SET)
|
80
|
+
end
|
81
|
+
|
82
|
+
# Are we done with the promise
|
83
|
+
def complete?
|
84
|
+
result? || error?
|
85
|
+
end
|
86
|
+
|
87
|
+
# free up these items for the GC
|
88
|
+
def discard
|
89
|
+
@args = nil
|
90
|
+
@block = nil
|
91
|
+
end
|
92
|
+
|
93
|
+
# Record execution statistics if there is a recorder
|
94
|
+
def stat(*args)
|
95
|
+
@recorder.call(*args) if @recorder
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Rake
|
3
|
+
|
4
|
+
##
|
5
|
+
# Exit status class for times the system just gives us a nil.
|
6
|
+
class PseudoStatus # :nodoc: all
|
7
|
+
attr_reader :exitstatus
|
8
|
+
|
9
|
+
def initialize(code=0)
|
10
|
+
@exitstatus = code
|
11
|
+
end
|
12
|
+
|
13
|
+
def to_i
|
14
|
+
@exitstatus << 8
|
15
|
+
end
|
16
|
+
|
17
|
+
def >>(n)
|
18
|
+
to_i >> n
|
19
|
+
end
|
20
|
+
|
21
|
+
def stopped?
|
22
|
+
false
|
23
|
+
end
|
24
|
+
|
25
|
+
def exited?
|
26
|
+
true
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "rake/application"
|
3
|
+
|
4
|
+
module Rake
|
5
|
+
|
6
|
+
class << self
|
7
|
+
# Current Rake Application
|
8
|
+
def application
|
9
|
+
@application ||= Rake::Application.new
|
10
|
+
end
|
11
|
+
|
12
|
+
# Set the current Rake application object.
|
13
|
+
def application=(app)
|
14
|
+
@application = app
|
15
|
+
end
|
16
|
+
|
17
|
+
def suggested_thread_count # :nodoc:
|
18
|
+
@cpu_count ||= Rake::CpuCounter.count
|
19
|
+
@cpu_count + 4
|
20
|
+
end
|
21
|
+
|
22
|
+
# Return the original directory where the Rake application was started.
|
23
|
+
def original_dir
|
24
|
+
application.original_dir
|
25
|
+
end
|
26
|
+
|
27
|
+
# Load a rakefile.
|
28
|
+
def load_rakefile(path)
|
29
|
+
load(path)
|
30
|
+
end
|
31
|
+
|
32
|
+
# Add files to the rakelib list
|
33
|
+
def add_rakelib(*files)
|
34
|
+
application.options.rakelib ||= []
|
35
|
+
application.options.rakelib.concat(files)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Make +block_application+ the default rake application inside a block so
|
39
|
+
# you can load rakefiles into a different application.
|
40
|
+
#
|
41
|
+
# This is useful when you want to run rake tasks inside a library without
|
42
|
+
# running rake in a sub-shell.
|
43
|
+
#
|
44
|
+
# Example:
|
45
|
+
#
|
46
|
+
# Dir.chdir 'other/directory'
|
47
|
+
#
|
48
|
+
# other_rake = Rake.with_application do |rake|
|
49
|
+
# rake.load_rakefile
|
50
|
+
# end
|
51
|
+
#
|
52
|
+
# puts other_rake.tasks
|
53
|
+
|
54
|
+
def with_application(block_application = Rake::Application.new)
|
55
|
+
orig_application = Rake.application
|
56
|
+
|
57
|
+
Rake.application = block_application
|
58
|
+
|
59
|
+
yield block_application
|
60
|
+
|
61
|
+
block_application
|
62
|
+
ensure
|
63
|
+
Rake.application = orig_application
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rake/file_list"
|
4
|
+
|
5
|
+
# Load the test files from the command line.
|
6
|
+
argv = ARGV.select do |argument|
|
7
|
+
case argument
|
8
|
+
when /^-/ then
|
9
|
+
argument
|
10
|
+
when /\*/ then
|
11
|
+
Rake::FileList[argument].to_a.each do |file|
|
12
|
+
require File.expand_path file
|
13
|
+
end
|
14
|
+
|
15
|
+
false
|
16
|
+
else
|
17
|
+
path = File.expand_path argument
|
18
|
+
|
19
|
+
abort "\nFile does not exist: #{path}\n\n" unless File.exist?(path)
|
20
|
+
|
21
|
+
require path
|
22
|
+
|
23
|
+
false
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
ARGV.replace argv
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Rake
|
3
|
+
|
4
|
+
# Error indicating a recursion overflow error in task selection.
|
5
|
+
class RuleRecursionOverflowError < StandardError
|
6
|
+
def initialize(*args)
|
7
|
+
super
|
8
|
+
@targets = []
|
9
|
+
end
|
10
|
+
|
11
|
+
def add_target(target)
|
12
|
+
@targets << target
|
13
|
+
end
|
14
|
+
|
15
|
+
def message
|
16
|
+
super + ": [" + @targets.reverse.join(" => ") + "]"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Rake
|
3
|
+
class Scope < LinkedList # :nodoc: all
|
4
|
+
|
5
|
+
# Path for the scope.
|
6
|
+
def path
|
7
|
+
map(&:to_s).reverse.join(":")
|
8
|
+
end
|
9
|
+
|
10
|
+
# Path for the scope + the named path.
|
11
|
+
def path_with_task_name(task_name)
|
12
|
+
"#{path}:#{task_name}"
|
13
|
+
end
|
14
|
+
|
15
|
+
# Trim +n+ innermost scope levels from the scope. In no case will
|
16
|
+
# this trim beyond the toplevel scope.
|
17
|
+
def trim(n)
|
18
|
+
result = self
|
19
|
+
while n > 0 && !result.empty?
|
20
|
+
result = result.tail
|
21
|
+
n -= 1
|
22
|
+
end
|
23
|
+
result
|
24
|
+
end
|
25
|
+
|
26
|
+
# Scope lists always end with an EmptyScope object. See Null
|
27
|
+
# Object Pattern)
|
28
|
+
class EmptyScope < EmptyLinkedList
|
29
|
+
@parent = Scope
|
30
|
+
|
31
|
+
def path
|
32
|
+
""
|
33
|
+
end
|
34
|
+
|
35
|
+
def path_with_task_name(task_name)
|
36
|
+
task_name
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# Singleton null object for an empty scope.
|
41
|
+
EMPTY = EmptyScope.new
|
42
|
+
end
|
43
|
+
end
|