File tree 3 files changed +14
-10
lines changed
3 files changed +14
-10
lines changed Original file line number Diff line number Diff line change @@ -114,7 +114,7 @@ bundle exec rake admin:special
114
114
115
115
``` ruby
116
116
class ObscureClassNameTask do
117
- include OopsARake ::Task .with_name( " custom_name" )
117
+ include OopsARake ::Task .with_options( name: " custom_name" )
118
118
119
119
def call
120
120
puts " Hello"
Original file line number Diff line number Diff line change @@ -7,13 +7,13 @@ def self.included(klass)
7
7
Registry ::register ( klass )
8
8
end
9
9
10
- def self . with_name ( custom_task_name )
11
- module_name = "#{ custom_task_name . gsub ( ":" , "_" ) . classify } ClassMethods"
10
+ def self . with_options ( name : )
11
+ module_name = "#{ name . gsub ( ":" , "_" ) . classify } ClassMethods"
12
12
mod = const_set ( module_name , Module . new )
13
13
14
14
mod . define_singleton_method ( :included ) do |klass |
15
- klass . extend ( OopsARake :: Task :: ClassMethods )
16
- klass . define_singleton_method ( :task_name ) { custom_task_name }
15
+ klass . define_singleton_method ( :task_name ) { name }
16
+ klass . extend ( ClassMethods )
17
17
Registry ::register ( klass )
18
18
end
19
19
@@ -22,7 +22,11 @@ def self.with_name(custom_task_name)
22
22
23
23
module ClassMethods
24
24
def task_name
25
- name . underscore . gsub ( "/" , ":" ) . delete_suffix ( "_task" )
25
+ if defined? ( super )
26
+ super
27
+ else
28
+ name . underscore . gsub ( "/" , ":" ) . delete_suffix ( "_task" )
29
+ end
26
30
end
27
31
28
32
def description ( description )
Original file line number Diff line number Diff line change @@ -92,10 +92,10 @@ def call
92
92
expect ( Rake ::Task [ "well_documented" ] . comment ) . to eq ( "Informative" )
93
93
end
94
94
95
- describe "custom task name " do
95
+ describe "::with_options " do
96
96
it "allows tasks to specify a custom name" do
97
97
define_class ( "ObscureClassNameTask" ) do
98
- include OopsARake ::Task . with_name ( "clear_name" )
98
+ include OopsARake ::Task . with_options ( name : "clear_name" )
99
99
100
100
def call
101
101
puts "Hello"
@@ -108,7 +108,7 @@ def call
108
108
109
109
it "provides access to the task name from the class" do
110
110
define_class ( "ObscureClassNameTask" ) do
111
- include OopsARake ::Task . with_name ( "custom_name" )
111
+ include OopsARake ::Task . with_options ( name : "custom_name" )
112
112
113
113
def call
114
114
end
@@ -119,7 +119,7 @@ def call
119
119
120
120
it "names the module" do
121
121
define_class ( "ObscureClassNameTask" ) do
122
- include OopsARake ::Task . with_name ( "foo:bar_baz" )
122
+ include OopsARake ::Task . with_options ( name : "foo:bar_baz" )
123
123
124
124
def call
125
125
end
You can’t perform that action at this time.
0 commit comments