class Spud::TaskRunners::Make::Task
Attributes
name[R]
Public Class Methods
new(driver, name, make_source)
click to toggle source
# File lib/spud/task_runners/make/task.rb, line 33 def initialize(driver, name, make_source) @driver = driver @name = name @make_source = make_source end
tasks(driver)
click to toggle source
# File lib/spud/task_runners/make/task.rb, line 18 def self.tasks(driver) return [] unless File.exist?('Makefile') if `command -v make`.empty? puts 'Makefile detected, but no installation of `make` exists. Skipping make...' return [] end source = File.read('Makefile') T.unsafe(source.scan(/^(\S+):.*/)).map(&:first).map do |name| new(driver, name, source) end end
Public Instance Methods
details()
click to toggle source
# File lib/spud/task_runners/make/task.rb, line 50 def details lines = @make_source.split("\n") cursor = 0 cursor += 1 until lines[cursor]&.start_with?(name) builder = StringIO.new while lines[cursor] && !lines[cursor]&.empty? builder.puts lines[cursor] cursor += 1 end builder.string end
invoke(ordered, named)
click to toggle source
# File lib/spud/task_runners/make/task.rb, line 40 def invoke(ordered, named) system("make #{name}") end
source()
click to toggle source
# File lib/spud/task_runners/make/task.rb, line 45 def source 'Makefile' end