rake-commander 0.4.0 → 0.4.2
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +21 -1
- data/examples/01_basic_example.rb +3 -1
- data/examples/03_a_chainer_plus_example.rb +3 -2
- data/lib/rake-commander/base/class_auto_loader.rb +10 -1
- data/lib/rake-commander/base/class_inheritable.rb +9 -2
- data/lib/rake-commander/base/custom_error.rb +3 -3
- data/lib/rake-commander/base/object_helpers.rb +6 -1
- data/lib/rake-commander/base.rb +2 -1
- data/lib/rake-commander/option.rb +81 -36
- data/lib/rake-commander/options/arguments.rb +55 -29
- data/lib/rake-commander/options/description.rb +28 -1
- data/lib/rake-commander/options/error/base.rb +6 -2
- data/lib/rake-commander/options/error/handling.rb +12 -3
- data/lib/rake-commander/options/error/invalid_argument.rb +3 -2
- data/lib/rake-commander/options/error/invalid_option.rb +1 -1
- data/lib/rake-commander/options/error/missing_argument.rb +1 -1
- data/lib/rake-commander/options/error.rb +19 -7
- data/lib/rake-commander/options/name.rb +41 -18
- data/lib/rake-commander/options/result.rb +15 -4
- data/lib/rake-commander/options/set.rb +2 -0
- data/lib/rake-commander/options/type.rb +28 -0
- data/lib/rake-commander/options.rb +31 -12
- data/lib/rake-commander/patcher/application/top_level_resume.rb +2 -0
- data/lib/rake-commander/patcher/debug.rb +5 -0
- data/lib/rake-commander/rake_task.rb +13 -4
- data/lib/rake-commander/version.rb +1 -1
- metadata +4 -3
@@ -5,14 +5,17 @@ class RakeCommander
|
|
5
5
|
# Helper for debugging
|
6
6
|
def rake_comm_debug(msg, prefix = '', num: nil, pid: false)
|
7
7
|
return unless RakeCommander::Patcher.debug?
|
8
|
+
|
8
9
|
rake_comm_debug_random_object_id
|
9
10
|
num = num ? "#{num}. " : nil
|
11
|
+
|
10
12
|
if pid
|
11
13
|
meta = "(PID: #{Process.pid} ++ Thread: #{Thread.current.object_id} ++ Ruby 'main': #{rake_comm_debug_main_object_id})"
|
12
14
|
msg = "#{prefix}( #{num}#{Rake.application.object_id}) #{msg} #{meta}"
|
13
15
|
elsif num
|
14
16
|
msg = "#{prefix}( #{num}) #{msg} "
|
15
17
|
end
|
18
|
+
|
16
19
|
puts msg
|
17
20
|
end
|
18
21
|
|
@@ -22,9 +25,11 @@ class RakeCommander
|
|
22
25
|
|
23
26
|
def rake_comm_debug_random_object_id
|
24
27
|
return false if @rake_comm_debug_random_object_id
|
28
|
+
|
25
29
|
@rake_comm_debug_random_object_id = Array(1..20).sample.times.map do |i|
|
26
30
|
i.to_s.tap(&:object_id)
|
27
31
|
end
|
32
|
+
|
28
33
|
true
|
29
34
|
end
|
30
35
|
end
|
@@ -2,12 +2,13 @@ require_relative 'rake_context/wrapper'
|
|
2
2
|
|
3
3
|
class RakeCommander
|
4
4
|
module RakeTask
|
5
|
-
NAMESPACE_DELIMITER =
|
5
|
+
NAMESPACE_DELIMITER = /:/
|
6
6
|
INHERITABLE_ATTRS = [:namespace].freeze
|
7
7
|
|
8
8
|
class << self
|
9
9
|
def included(base)
|
10
|
-
super
|
10
|
+
super
|
11
|
+
|
11
12
|
base.extend RakeCommander::Base::ClassHelpers
|
12
13
|
base.extend RakeCommander::Base::ClassInheritable
|
13
14
|
base.extend ClassMethods
|
@@ -25,6 +26,7 @@ class RakeCommander
|
|
25
26
|
# @return [String] the description of the task
|
26
27
|
def desc(str = :not_used)
|
27
28
|
return @desc if str == :not_used
|
29
|
+
|
28
30
|
@desc = str.to_s
|
29
31
|
end
|
30
32
|
|
@@ -32,6 +34,7 @@ class RakeCommander
|
|
32
34
|
# @return [Symbol] the task name
|
33
35
|
def task(name = :not_used)
|
34
36
|
return @task if name == :not_used
|
37
|
+
|
35
38
|
@task = name.to_sym
|
36
39
|
end
|
37
40
|
|
@@ -39,6 +42,7 @@ class RakeCommander
|
|
39
42
|
# @return [String] the namespace defined for this `RakeCommander` class.
|
40
43
|
def namespace(name = :not_used)
|
41
44
|
return @namespace if name == :not_used
|
45
|
+
|
42
46
|
@namespace = namespace_str(name)
|
43
47
|
end
|
44
48
|
|
@@ -65,6 +69,7 @@ class RakeCommander
|
|
65
69
|
block = spaces.reverse.reduce(block) do |blk, nm|
|
66
70
|
namespace_block(nm, &blk)
|
67
71
|
end
|
72
|
+
|
68
73
|
rake.namespace top, &block
|
69
74
|
end
|
70
75
|
|
@@ -97,7 +102,10 @@ class RakeCommander
|
|
97
102
|
def namespace_str(name)
|
98
103
|
name = name.to_s if name.is_a?(Symbol)
|
99
104
|
name = name.to_str if name.respond_to?(:to_str)
|
100
|
-
|
105
|
+
|
106
|
+
msg = "Expected a String or Symbol for a namespace name. Given: #{name.class}"
|
107
|
+
raise ArgumentError, msg unless name.is_a?(String)
|
108
|
+
|
101
109
|
name
|
102
110
|
end
|
103
111
|
|
@@ -144,7 +152,8 @@ class RakeCommander
|
|
144
152
|
protected
|
145
153
|
|
146
154
|
def install_task
|
147
|
-
return unless task_block = task_method
|
155
|
+
return unless (task_block = task_method)
|
156
|
+
|
148
157
|
self.class.install_task(&task_block)
|
149
158
|
end
|
150
159
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rake-commander
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oscar Segura Samper
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-02-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dotenv
|
@@ -174,6 +174,7 @@ files:
|
|
174
174
|
- lib/rake-commander/options/name.rb
|
175
175
|
- lib/rake-commander/options/result.rb
|
176
176
|
- lib/rake-commander/options/set.rb
|
177
|
+
- lib/rake-commander/options/type.rb
|
177
178
|
- lib/rake-commander/patcher.rb
|
178
179
|
- lib/rake-commander/patcher/README.md
|
179
180
|
- lib/rake-commander/patcher/application.rb
|
@@ -205,7 +206,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
205
206
|
- !ruby/object:Gem::Version
|
206
207
|
version: '0'
|
207
208
|
requirements: []
|
208
|
-
rubygems_version: 3.5.
|
209
|
+
rubygems_version: 3.5.23
|
209
210
|
signing_key:
|
210
211
|
specification_version: 4
|
211
212
|
summary: Classing rake tasks with options. Creating re-usable tasks, options and samples
|