
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
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,
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!