class Cxxproject::Utils::GraphStreamSupport
Public Class Methods
new(gs)
click to toggle source
# File lib/cxxproject/utils/graphstream.rb, line 63 def initialize(gs) @gs = gs @interesting_tasks = Rake::Task.tasks.select { |i| interesting?(i.name) } create_vertices create_edges @vertices.each do |name, task| set_attributes(name, task) end end
Public Instance Methods
after_execute(name)
click to toggle source
# File lib/cxxproject/utils/graphstream.rb, line 126 def after_execute(name) update(name, 'after_execute') end
after_prerequisites(name)
click to toggle source
# File lib/cxxproject/utils/graphstream.rb, line 118 def after_prerequisites(name) update(name, 'after_prerequisites') end
before_execute(name)
click to toggle source
# File lib/cxxproject/utils/graphstream.rb, line 122 def before_execute(name) update(name, 'before_execute') end
before_prerequisites(name)
click to toggle source
# File lib/cxxproject/utils/graphstream.rb, line 114 def before_prerequisites(name) update(name, 'before_prerequisites') end
create_edges()
click to toggle source
# File lib/cxxproject/utils/graphstream.rb, line 84 def create_edges @interesting_tasks.each do |task| from = task.name task.prerequisites.each do |to| @gs.add_edge(from, to) end end end
create_vertices()
click to toggle source
# File lib/cxxproject/utils/graphstream.rb, line 76 def create_vertices @vertices = {} @interesting_tasks.each do |task| @vertices[task.name] = task @gs.add_vertex(task.name) end end
exe?(name)
click to toggle source
# File lib/cxxproject/utils/graphstream.rb, line 50 def exe?(name) name.match(/.*\.exe\Z/) != nil end
interesting?(name)
click to toggle source
# File lib/cxxproject/utils/graphstream.rb, line 59 def interesting?(name) exe?(name) || object?(name) || library?(name) || multitask?(name) end
library?(name)
click to toggle source
# File lib/cxxproject/utils/graphstream.rb, line 53 def library?(name) name.match(/.*\.a\Z/) != nil end
multitask?(name)
click to toggle source
# File lib/cxxproject/utils/graphstream.rb, line 56 def multitask?(name) name.index("Objects of") == 0 end
object?(name)
click to toggle source
# File lib/cxxproject/utils/graphstream.rb, line 46 def object?(name) name.match(/.*\.o\Z/) != nil end
set_attributes(name, task)
click to toggle source
# File lib/cxxproject/utils/graphstream.rb, line 93 def set_attributes(name, task) @gs.set_class(name, state2color(task)) end
state2color(t)
click to toggle source
# File lib/cxxproject/utils/graphstream.rb, line 97 def state2color(t) begin if t.dirty? return 'dirty' else return 'ready' end rescue StandardError => bang puts bang return '#ff00ff' end end
update(name, color)
click to toggle source
# File lib/cxxproject/utils/graphstream.rb, line 110 def update(name, color) @gs.set_class(name, color) end