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