class Spud::TaskRunners::SpudTaskRunner::FileDSL
Public Class Methods
new(driver, filename)
click to toggle source
# 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
run(driver, filename)
click to toggle source
# 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
Public Instance Methods
method_missing(name, *args, &block)
click to toggle source
# File lib/spud/task_runners/spud_task_runner/file_dsl.rb, line 58 def method_missing(name, *args, &block) T.unsafe(self).task(name, *args, &block) end
require_relative(name)
click to toggle source
# File lib/spud/task_runners/spud_task_runner/file_dsl.rb, line 29 def require_relative(name) require("./#{name}") end
task(name, opts = {}, &block)
click to toggle source
# File lib/spud/task_runners/spud_task_runner/file_dsl.rb, line 40 def task(name, opts = {}, &block) watches = opts.delete(:watch) dependencies = T.cast( opts.reject { |key, _| key.is_a?(Symbol) }, T::Hash[T.any(String, T::Array[String]), T.any(String, T::Array[String])], ) @__tasks << Task.new( driver: @__driver, name: Task.qualified_name(@__filename, name.to_s), filename: @__filename, dependencies: dependencies, watches: [watches].flatten.compact, file_dsl: self, &block ) end