oops_a_rake 0.1.0 → 0.2.0
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/.github/workflows/main.yml +17 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +11 -0
- data/Gemfile.lock +2 -2
- data/README.md +19 -1
- data/lib/oops_a_rake/registry.rb +1 -3
- data/lib/oops_a_rake/task.rb +22 -1
- data/lib/oops_a_rake/version.rb +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0f45164adb42dbe7b6b5c24b4d1f4a2442c57ee984afe1ee930ef1d9d85d0729
|
4
|
+
data.tar.gz: 19702491324b809b66bd04b54df91b7f2809d7156a788768b6d4a1b490adeba4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 201e37e643607efb1436fd965505fd154ff1695b65d69752fee8220e8b85b9f875f7f5c7778ffb13d70198eede2e47f9d00b639b7dd99fee34a196c4da449ae6
|
7
|
+
data.tar.gz: cec98c2d2d9eb9e07673b3c83bfb40b2af97431aa22ea8a3985b8549df9ed8e1f9d6e08e6ab73f546443a4b33c62465b119483c884b2aa0f33fec07e21efd6a1
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.7.2
|
data/CHANGELOG.md
ADDED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
oops_a_rake (0.
|
4
|
+
oops_a_rake (0.2.0)
|
5
5
|
activesupport (>= 5.2)
|
6
6
|
rake (>= 12.0)
|
7
7
|
|
@@ -39,7 +39,7 @@ GEM
|
|
39
39
|
rspec-support (~> 3.10.0)
|
40
40
|
rspec-support (3.10.0)
|
41
41
|
thread_safe (0.3.6)
|
42
|
-
tzinfo (1.2.
|
42
|
+
tzinfo (1.2.8)
|
43
43
|
thread_safe (~> 0.1)
|
44
44
|
zeitwerk (2.4.1)
|
45
45
|
|
data/README.md
CHANGED
@@ -110,6 +110,24 @@ Invocation:
|
|
110
110
|
bundle exec rake admin:special
|
111
111
|
```
|
112
112
|
|
113
|
+
### Task with a custom name
|
114
|
+
|
115
|
+
```ruby
|
116
|
+
class ObscureClassNameTask do
|
117
|
+
include OopsARake::Task.with_options(name: "custom_name")
|
118
|
+
|
119
|
+
def call
|
120
|
+
puts "Hello"
|
121
|
+
end
|
122
|
+
end
|
123
|
+
```
|
124
|
+
|
125
|
+
Invocation:
|
126
|
+
|
127
|
+
```sh
|
128
|
+
bundle exec rake custom_name
|
129
|
+
```
|
130
|
+
|
113
131
|
## Motivation
|
114
132
|
|
115
133
|
Rake is an omnipresent tool in the Ruby world. It has some drawbacks – the main
|
@@ -124,7 +142,7 @@ call a plain Ruby object, which is tested in isolation:
|
|
124
142
|
|
125
143
|
```ruby
|
126
144
|
task :greeting do |_, args|
|
127
|
-
|
145
|
+
SomeObject.new(*args).call
|
128
146
|
end
|
129
147
|
```
|
130
148
|
|
data/lib/oops_a_rake/registry.rb
CHANGED
@@ -6,9 +6,7 @@ module OopsARake
|
|
6
6
|
@tasks = {}
|
7
7
|
|
8
8
|
def self.register(task_class)
|
9
|
-
|
10
|
-
|
11
|
-
task = Rake::Task.define_task(task_name) do |_, args|
|
9
|
+
task = Rake::Task.define_task(task_class.task_name) do |_, args|
|
12
10
|
task_class.new.call(*args)
|
13
11
|
end
|
14
12
|
|
data/lib/oops_a_rake/task.rb
CHANGED
@@ -3,11 +3,32 @@ require_relative "registry"
|
|
3
3
|
module OopsARake
|
4
4
|
module Task
|
5
5
|
def self.included(klass)
|
6
|
-
Registry::register(klass)
|
7
6
|
klass.extend(ClassMethods)
|
7
|
+
Registry::register(klass)
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.with_options(name:)
|
11
|
+
module_name = "#{name.gsub(":", "_").classify}ClassMethods"
|
12
|
+
mod = const_set(module_name, Module.new)
|
13
|
+
|
14
|
+
mod.define_singleton_method(:included) do |klass|
|
15
|
+
klass.define_singleton_method(:task_name) { name }
|
16
|
+
klass.extend(ClassMethods)
|
17
|
+
Registry::register(klass)
|
18
|
+
end
|
19
|
+
|
20
|
+
mod
|
8
21
|
end
|
9
22
|
|
10
23
|
module ClassMethods
|
24
|
+
def task_name
|
25
|
+
if defined?(super)
|
26
|
+
super
|
27
|
+
else
|
28
|
+
name.underscore.gsub("/", ":").delete_suffix("_task")
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
11
32
|
def description(description)
|
12
33
|
task.comment = description
|
13
34
|
end
|
data/lib/oops_a_rake/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oops_a_rake
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oliver Peate
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-11-
|
11
|
+
date: 2020-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -72,8 +72,11 @@ executables: []
|
|
72
72
|
extensions: []
|
73
73
|
extra_rdoc_files: []
|
74
74
|
files:
|
75
|
+
- ".github/workflows/main.yml"
|
75
76
|
- ".gitignore"
|
76
77
|
- ".rspec"
|
78
|
+
- ".ruby-version"
|
79
|
+
- CHANGELOG.md
|
77
80
|
- Gemfile
|
78
81
|
- Gemfile.lock
|
79
82
|
- LICENSE.txt
|
@@ -105,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
108
|
- !ruby/object:Gem::Version
|
106
109
|
version: '0'
|
107
110
|
requirements: []
|
108
|
-
rubygems_version: 3.
|
111
|
+
rubygems_version: 3.1.4
|
109
112
|
signing_key:
|
110
113
|
specification_version: 4
|
111
114
|
summary: Write Rake tasks with plain Ruby objects
|