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
- #filename ⇒ Object
-
#initialize(driver, name) ⇒ Task
constructor
A new instance of Task.
- #invoke(ordered, named) ⇒ Object
Methods inherited from Task
Constructor Details
#initialize(driver, name) ⇒ Task
Returns a new instance of Task.
32 33 34 35 |
# File 'lib/spud/task_runners/make/task.rb', line 32 def initialize(driver, name) @driver = driver @name = name end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
14 15 16 |
# File 'lib/spud/task_runners/make/task.rb', line 14 def name @name end |
Class Method Details
.tasks(driver) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/spud/task_runners/make/task.rb', line 17 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) end end |
Instance Method Details
#details ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/spud/task_runners/make/task.rb', line 48 def details source = File.read('Makefile') lines = source.split("\n") cursor = 0 cursor += 1 until lines[cursor]&.start_with?(name) builder = StringIO.new until lines[cursor]&.empty? builder.puts lines[cursor] cursor += 1 end builder.string end |
#filename ⇒ Object
43 44 45 |
# File 'lib/spud/task_runners/make/task.rb', line 43 def filename 'Makefile' end |
#invoke(ordered, named) ⇒ Object
38 39 40 |
# File 'lib/spud/task_runners/make/task.rb', line 38 def invoke(ordered, named) system('make', name) end |