Class: Spud::TaskRunners::Make::Task
- Extended by:
- T::Sig
- Defined in:
- lib/spud/task_runners/make/task.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Class Method Summary collapse
Instance Method Summary collapse
- #details ⇒ Object
-
#initialize(driver, name, make_source) ⇒ Task
constructor
A new instance of Task.
- #invoke(ordered, named) ⇒ Object
- #source ⇒ Object
Methods inherited from Task
Constructor Details
#initialize(driver, name, make_source) ⇒ Task
Returns a new instance of Task.
33 34 35 36 37 |
# 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 |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
15 16 17 |
# File 'lib/spud/task_runners/make/task.rb', line 15 def name @name end |
Class Method Details
.tasks(driver) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 |
# 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 |
Instance Method Details
#details ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# 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) ⇒ Object
40 41 42 |
# File 'lib/spud/task_runners/make/task.rb', line 40 def invoke(ordered, named) system("make #{name}") end |
#source ⇒ Object
45 46 47 |
# File 'lib/spud/task_runners/make/task.rb', line 45 def source 'Makefile' end |