run_tasks 3.2.9 → 3.3.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/CHEATSHEET.md +20 -0
- data/src/run/helper/question_helper.rb +7 -1
- data/src/run/helper/yesno_helper.rb +43 -0
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: db5998bcac4e11397fd0abb44484d48dc78ce538cd31a5768ddadf4f23a3a6ae
|
|
4
|
+
data.tar.gz: 8fc911ccdf1f057f3fb8c310185fdd3021eb293710b05b5cc0ce4bf16bd98c6c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5387ed714265c8705665e5012d1186fc148c87e85d5a6441e66edabc02515eb58c62c03ba71d4451b647d2a5c02f0fbc7ac46a1d8c414734eb2803eb39222559
|
|
7
|
+
data.tar.gz: 42ace3eb70928ae2d509cbfa8b26f3696ba55f6cf2a797280957c98e0b7704cafefce72d2e375cc570360b896cc9d1905947d0bd8e8ec8892f7f5297e4067d66
|
data/CHEATSHEET.md
CHANGED
|
@@ -163,6 +163,26 @@ task :age do
|
|
|
163
163
|
end
|
|
164
164
|
```
|
|
165
165
|
|
|
166
|
+
```rb
|
|
167
|
+
task :age do
|
|
168
|
+
age = question "What is your age?", /^\d+$/, default: "30"
|
|
169
|
+
end
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## yesno
|
|
173
|
+
|
|
174
|
+
```rb
|
|
175
|
+
task :deploy do
|
|
176
|
+
run :migrate if yesno "Run migrations?"
|
|
177
|
+
end
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
```rb
|
|
181
|
+
task :deploy do
|
|
182
|
+
run :migrate if yesno "Run migrations?", default: true
|
|
183
|
+
end
|
|
184
|
+
```
|
|
185
|
+
|
|
166
186
|
## wait_for_interruption
|
|
167
187
|
|
|
168
188
|
```rb
|
|
@@ -7,17 +7,23 @@ module Run
|
|
|
7
7
|
class QuestionHelper
|
|
8
8
|
# @param question [String]
|
|
9
9
|
# @param regex [Regexp, Nil]
|
|
10
|
-
|
|
10
|
+
# @param default [String, Nil]
|
|
11
|
+
def initialize(question, regex = nil, default: nil)
|
|
11
12
|
raise ArgumentError.new("'question' must be a String") if !question.is_a?(String)
|
|
13
|
+
raise ArgumentError.new("'default' must be a String") if !default.nil? && !default.is_a?(String)
|
|
12
14
|
|
|
13
15
|
@question = question
|
|
14
16
|
@regex = regex
|
|
17
|
+
@default = default
|
|
15
18
|
end
|
|
16
19
|
|
|
17
20
|
# @return [any]
|
|
18
21
|
def run
|
|
19
22
|
TTY::Prompt.new.ask(@question) do |config|
|
|
20
23
|
config.required true
|
|
24
|
+
if @default
|
|
25
|
+
config.default @default
|
|
26
|
+
end
|
|
21
27
|
if @regex
|
|
22
28
|
config.validate @regex
|
|
23
29
|
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "tty-prompt"
|
|
4
|
+
|
|
5
|
+
module Run
|
|
6
|
+
module Helper
|
|
7
|
+
class YesnoHelper
|
|
8
|
+
VALIDATION = /\A(y(es)?|no?)?\z/i
|
|
9
|
+
|
|
10
|
+
# @param question [String]
|
|
11
|
+
# @param default [Boolean, Nil]
|
|
12
|
+
def initialize(question, default: nil)
|
|
13
|
+
raise ArgumentError.new("'question' must be a String") if !question.is_a?(String)
|
|
14
|
+
raise ArgumentError.new("'default' must be a Boolean") if ![nil, true, false].include?(default)
|
|
15
|
+
|
|
16
|
+
@question = question
|
|
17
|
+
@default = default
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# @return [Boolean]
|
|
21
|
+
def run
|
|
22
|
+
answer = TTY::Prompt.new.ask("#{@question} #{suffix}") do |config|
|
|
23
|
+
config.required @default.nil?
|
|
24
|
+
config.validate VALIDATION, "Please answer 'y' or 'n'."
|
|
25
|
+
end
|
|
26
|
+
return @default if answer.nil?
|
|
27
|
+
|
|
28
|
+
answer.downcase.start_with?("y")
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
private
|
|
32
|
+
|
|
33
|
+
# @return [String]
|
|
34
|
+
def suffix
|
|
35
|
+
case @default
|
|
36
|
+
when true then "[Yn]"
|
|
37
|
+
when false then "[yN]"
|
|
38
|
+
else "[yn]"
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: run_tasks
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Aurélien Delogu
|
|
@@ -93,6 +93,7 @@ files:
|
|
|
93
93
|
- src/run/helper/pause_helper.rb
|
|
94
94
|
- src/run/helper/question_helper.rb
|
|
95
95
|
- src/run/helper/wait_for_interruption_helper.rb
|
|
96
|
+
- src/run/helper/yesno_helper.rb
|
|
96
97
|
- src/run/task/block_task.rb
|
|
97
98
|
- src/run/task/system_task.rb
|
|
98
99
|
homepage: https://github.com/pyrsmk/run
|