spud 0.2.9 → 0.2.10
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
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