Class: Spud::TaskRunners::SpudTaskRunner::FileDSL
- Inherits:
-
Object
- Object
- Spud::TaskRunners::SpudTaskRunner::FileDSL
show all
- Extended by:
- T::Sig
- Defined in:
- lib/spud/task_runners/spud_task_runner/file_dsl.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(driver, filename) ⇒ FileDSL
Returns a new instance of FileDSL.
21
22
23
24
25
26
|
# File 'lib/spud/task_runners/spud_task_runner/file_dsl.rb', line 21
def initialize(driver, filename)
@__driver = driver
@__filename = filename
@__tasks = T.let([], T::Array[Task])
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
50
51
52
|
# File 'lib/spud/task_runners/spud_task_runner/file_dsl.rb', line 50
def method_missing(name, *args, &block)
T.unsafe(self).task(name, *args, &block)
end
|
Class Method Details
.run(driver, filename) ⇒ Object
13
14
15
16
17
18
|
# File 'lib/spud/task_runners/spud_task_runner/file_dsl.rb', line 13
def self.run(driver, filename)
dsl = new(driver, filename)
dsl.instance_eval(::File.read(filename), filename)
dsl.instance_variable_get(:@__tasks)
end
|
Instance Method Details
#require_relative(name) ⇒ Object
29
30
31
|
# File 'lib/spud/task_runners/spud_task_runner/file_dsl.rb', line 29
def require_relative(name)
require("./#{name}")
end
|
#task(name, dependencies = {}, &block) ⇒ Object
40
41
42
43
44
45
46
47
48
|
# File 'lib/spud/task_runners/spud_task_runner/file_dsl.rb', line 40
def task(name, dependencies = {}, &block)
@__tasks << Task.new(
driver: @__driver,
name: Task.qualified_name(@__filename, name.to_s),
filename: @__filename,
dependencies: dependencies,
&block
)
end
|