Module: RakeFlowVisualizer
- Defined in:
- lib/rake_flow_visualizer.rb,
lib/rake_flow_visualizer/task.rb
Defined Under Namespace
Classes: Task
Class Method Summary collapse
Class Method Details
.parse(text) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/rake_flow_visualizer.rb', line 8 def self.parse(text) lines = text.split("\n").map(&:strip) parent = nil lines.each do |line| if line[0..4] == 'rake ' parent_name = line[5..-1] parent = Task.find_or_create(parent_name) next end raise unless parent dependency_name = line dependency = Task.find_or_create(dependency_name) parent.dependencies << dependency end Task.all.each do |task| print_task(0, task, []) puts end end |
.print_task(depth, task, ignore) ⇒ Object
28 29 30 31 32 33 34 |
# File 'lib/rake_flow_visualizer.rb', line 28 def self.print_task(depth, task, ignore) return if ignore.include?(task) ignore << task print "|" * depth puts task task.dependencies.each { |dependency| print_task(depth + 1, dependency, ignore) } end |
.run ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/rake_flow_visualizer.rb', line 36 def self.run _stdout, status = Open3.capture2('rake --help') raise 'can not find rake, is it installed?' unless status.success? stdout, status = Open3.capture2('rake -P') unless status.success? puts stdout raise "executing 'rake -P' resulted in an exception" end puts "--- Rake Flow Visualizer ---" puts "The following shows a list for every task that can be run." puts "Each list will have the requisites for the task and the order that they will be executed." puts puts parse(stdout) end |