spud 0.2.9 → 0.2.10
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0b081b3d20c3a0b253e2383b4a514aac28edcf8
|
4
|
+
data.tar.gz: da8443efc8c52b187e84158075cee7d5875de020
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3798ff8d115c5c1cdafcca5f134531f5df5932a7bbfafd1d33b07486dd132cf49674888fa45c1708d058a9f2b6653f2ce8e642c93112313cec684a31b6ebde7d
|
7
|
+
data.tar.gz: e0f7c61cfc28af1d0f4b821fb904731240e842f35846c6d3257153223d814adc6875cf49241d046cfa0dd1c24d33f39fc59abe009a99c6ad6acb22e9493e4e04
|
data/lib/spud/driver.rb
CHANGED
@@ -8,6 +8,7 @@ require 'spud/cli/parser'
|
|
8
8
|
require 'spud/cli/options'
|
9
9
|
require 'spud/task_runners/task'
|
10
10
|
require 'spud/task_runners/task_runners'
|
11
|
+
require 'spud/task_runners/spud_task_runner/task'
|
11
12
|
|
12
13
|
module Spud
|
13
14
|
class Driver
|
@@ -39,18 +40,12 @@ module Spud
|
|
39
40
|
return
|
40
41
|
end
|
41
42
|
|
42
|
-
task = T.must(args.task)
|
43
43
|
if options.inspect?
|
44
|
-
|
44
|
+
inspect!
|
45
45
|
return
|
46
46
|
end
|
47
47
|
|
48
|
-
|
49
|
-
watch!
|
50
|
-
return
|
51
|
-
end
|
52
|
-
|
53
|
-
invoke(task, args.ordered, args.named)
|
48
|
+
invoke!
|
54
49
|
rescue Error => error
|
55
50
|
puts error.message
|
56
51
|
raise error if debug?
|
@@ -61,9 +56,7 @@ module Spud
|
|
61
56
|
raise error if debug?
|
62
57
|
end
|
63
58
|
|
64
|
-
sig
|
65
|
-
params(name: String, ordered: T::Array[String], named: T::Hash[T.any(String, Symbol), String]).returns(T.untyped)
|
66
|
-
end
|
59
|
+
sig {params(name: String, ordered: T::Array[String], named: T::Hash[T.any(String, Symbol), String]).returns(T.untyped)}
|
67
60
|
def invoke(name, ordered, named)
|
68
61
|
get_task(name).invoke(ordered, stringify_keys(named))
|
69
62
|
end
|
@@ -81,14 +74,31 @@ module Spud
|
|
81
74
|
private
|
82
75
|
|
83
76
|
sig {void}
|
84
|
-
def
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
77
|
+
def invoke!
|
78
|
+
task_name = T.must(args.task)
|
79
|
+
task = get_task(task_name)
|
80
|
+
|
81
|
+
watches = options.watches
|
82
|
+
watches = task.watches if watches.empty?
|
83
|
+
|
84
|
+
if watches.empty?
|
85
|
+
invoke(task_name, args.ordered, args.named)
|
86
|
+
else
|
87
|
+
raise Error, "watches only supported for Spud tasks" unless task.is_a?(TaskRunners::SpudTaskRunner::Task)
|
88
|
+
|
89
|
+
Watch.run!(
|
90
|
+
driver: self,
|
91
|
+
task: task_name,
|
92
|
+
ordered: args.ordered,
|
93
|
+
named: args.named,
|
94
|
+
watches: watches,
|
95
|
+
)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
sig {void}
|
100
|
+
def inspect!
|
101
|
+
puts get_task(T.must(args.task)).details
|
92
102
|
end
|
93
103
|
|
94
104
|
sig {params(task_name: String).returns(TaskRunners::Task)}
|
@@ -33,16 +33,23 @@ module Spud
|
|
33
33
|
sig do
|
34
34
|
params(
|
35
35
|
name: T.any(String, Symbol),
|
36
|
-
|
36
|
+
opts: T::Hash[T.any(Symbol, String, T::Array[String]), T.any(String, T::Array[String])],
|
37
37
|
block: Proc,
|
38
38
|
).void
|
39
39
|
end
|
40
|
-
def task(name,
|
40
|
+
def task(name, opts = {}, &block)
|
41
|
+
watches = opts.delete(:watch)
|
42
|
+
dependencies = T.cast(
|
43
|
+
opts.reject { |key, _| key.is_a?(Symbol) },
|
44
|
+
T::Hash[T.any(String, T::Array[String]), T.any(String, T::Array[String])],
|
45
|
+
)
|
46
|
+
|
41
47
|
@__tasks << Task.new(
|
42
48
|
driver: @__driver,
|
43
49
|
name: Task.qualified_name(@__filename, name.to_s),
|
44
50
|
filename: @__filename,
|
45
51
|
dependencies: dependencies,
|
52
|
+
watches: [watches].flatten.compact,
|
46
53
|
file_dsl: self,
|
47
54
|
&block
|
48
55
|
)
|
@@ -26,6 +26,9 @@ module Spud
|
|
26
26
|
sig {returns(T::Array[Dependency])}
|
27
27
|
attr_reader :dependencies
|
28
28
|
|
29
|
+
sig {override.returns(T::Array[String])}
|
30
|
+
attr_reader :watches
|
31
|
+
|
29
32
|
sig {override.params(driver: Driver).returns(T::Array[TaskRunners::Task])}
|
30
33
|
def self.tasks(driver)
|
31
34
|
Dir['Spudfile', '*.spud'].flat_map { |filename| FileDSL.run(driver, filename) }
|
@@ -50,15 +53,16 @@ module Spud
|
|
50
53
|
name: String,
|
51
54
|
filename: String,
|
52
55
|
dependencies: T::Hash[T.any(String, T::Array[String]), T.any(String, T::Array[String])],
|
56
|
+
watches: T::Array[String],
|
53
57
|
file_dsl: FileDSL,
|
54
58
|
block: Proc,
|
55
|
-
)
|
56
|
-
.void
|
59
|
+
).void
|
57
60
|
end
|
58
|
-
def initialize(driver:, name:, filename:, dependencies:, file_dsl:, &block)
|
61
|
+
def initialize(driver:, name:, filename:, dependencies:, watches:, file_dsl:, &block)
|
59
62
|
@driver = driver
|
60
63
|
@name = name
|
61
64
|
@filename = filename
|
65
|
+
@watches = watches
|
62
66
|
@dependencies = dependencies.map { |to, from| Dependency.new(to, from) }
|
63
67
|
@file_dsl = file_dsl
|
64
68
|
@block = block
|
@@ -22,6 +22,11 @@ module Spud
|
|
22
22
|
sig {abstract.params(ordered: T::Array[String], named: T::Hash[String, String]).returns(T.untyped)}
|
23
23
|
def invoke(ordered, named); end
|
24
24
|
|
25
|
+
sig {overridable.returns(T::Array[String])}
|
26
|
+
def watches
|
27
|
+
[]
|
28
|
+
end
|
29
|
+
|
25
30
|
sig {overridable.returns(TaskArgs)}
|
26
31
|
def args
|
27
32
|
TaskArgs.new([])
|
data/lib/spud/version.rb
CHANGED
data/lib/spud/watch.rb
CHANGED