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