Static Typing for Ruby on Rails

View/ Open
Date
2010-01-27Author
An, Jong-hoon (David)
Chaudhuri, Avik
Foster, Jeffrey S.
Metadata
Show full item recordAbstract
Ruby on Rails (or just "Rails") is a popular web application framework
built on top of Ruby, an object-oriented scripting language.
While Ruby’s powerful features help make Rails development extremely
lightweight, this comes at a cost: Ruby is dynamically
typed, and so type errors in a Rails application can remain latent
until run time, making debugging and maintenance harder. In this
paper, we describe DRails, a novel tool that brings static typing to
Rails applications to detect a range of run time errors. DRails works
by translating Rails programs into pure Ruby code in which Rails’s
numerous implicit conventions are made explicit. We then discover
type errors by applying DRuby, a previously developed static type
inference system, to the translated program. We ran DRails on a
suite of applications and found that it was able to detect several
previously unknown errors.