Gantty: Ruby and Gantt Charts

Gantty Logo

Well, not just any old Gantt charts. Specifically, Gantt charts created with GanttProject, a multi-platform, open source Project Management application. Charts saved in this format are easily parsed into nice neat lil Ruby objects.

You’ll need GitHub as a gem source if you don’t already have it (gem sources -a http://gems.github.com):

$ sudo gem install ardekantur-gantty

And get ready! It’s like this:

  @gantt = Gantty::Open '~/CorporateProject.gan'
 
  @gantt.tasks.first.name         # => "Research and Development"
  @gantt.tasks.first.start.to_s   # => "2008-01-01"
  @gantt.tasks.first.end.to_s     # => "2008-01-15"
  @gantt.tasks.first.duration     # => 15

You can see what tasks are active for a certain day — the entire reason I wrote this:

  @gantt.tasks.size                               # => 30
 
  # See tasks that are active today
  @gantt.current_tasks.size                       # => 5
 
  # Specify which date to see tasks from
  @gantt.current_tasks(Date.new(2008,1,6)).size   # => 8

Finally, mix it up for some intense data **aggregation!**

  @gantt.current_tasks.select { |t| t.coordinators.size > 0 }.collect \
    { |task| task.coordinators.collect \
    { |dude| "- #{dude.name} should be working on #{task.name}." }}.flatten.sort
 
  # => [
  #      "- Adam Alpha should be working on Requirements Document.", 
  #      "- Bob Beta should be working on Requirements Document.",
  #      "- Bob Beta should be working on Website.",
  #      "- Ed Epsilon should be working on Website."
  #    ]

Hideous and beautiful, all at once.

Fork it at its GitHub repository! I hope to add some more features over the weekend, like seeing task dependencies, percentage of completion, and resource focus percent on tasks.

2 Comments

  1. Berteh posted November 27, 2008, 5:45 pm

    Hello. Looks promising. Do you plan on including a graphical rendering of the whole chart as well… eventually along with clickable hotspots or tooltips?

    thanks. B,

  2. Ardekantur posted November 30, 2008, 4:21 pm

    Berteh:

    If I really get into the project, perhaps. Right now Gantty is just for the manipulation of GanttProject charts, which already have such an interface with GanttProject itself.

    Thanks for visiting!

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*