For fun, I ran "rake stats" on the edu 2.0 "Ruby on Rails" codebase to get some statistics.
Here's the outcome:
- 16,500 lines of code
- 309 classes (139 controllers, 142 models, 28 libraries)
- 1881 methods
- 6 methods per class on average
- 6 lines of code per method on average
One trend I noticed is towards making controllers responsible for a particular facet of a model. For example, we used to have a single controller that supported all the operations on a teacher's class, but now we have about 10 controllers, one which supports student attendance, another which supports the gradebook, and another which supports the teacher's view of the class forum, etc.
The codebase could be improved some more, but I think it's already pretty lean and mean. In another post, I'll contrast the edu 2.0 code base statistics against those from Moodle and Sakai.