Question about length of ActionDispatch::Routing::Mapper class file

Hello Rails team,

I’m not sure whether to post this question here or in the Rails core
list.
Please redirect me to the right forum if applicable.

Our team lead and I recently discussed the pros and cons of breaking up
a
long source file into multiple source files. I tend to prefer one class
per
file, because I find the individual files easier to read and easier to
find
(with ctrl-p in Sublime). On the other hand, our team lead doesn’t have
issues with long source files. He argues that they are quite common in
open-source projects. As an example, he pointed to the
ActionDispatch::Routing::Mapper
https://github.com/rails/rails/blob/e47e8e915e733177fe1dee2c67bef1724bbba553/actionpack/lib/action_dispatch/routing/mapper.rb
class in Rails as a case of a long file with multiple inline classes.

I’m curious to learn the intent behind keeping all the contents of
Mapper
class within a single file. What were the advantages of taking this
approach?

Thanks,

George M.
Philippines

On Tue, Sep 8, 2015 at 7:38 AM, George M. [email protected]
wrote:

Our team lead and I recently discussed the pros and cons of breaking up a
long source file into multiple source files. I tend to prefer one class per
file, because I find the individual files easier to read and easier to find
(with ctrl-p in Sublime).

on my case, my reason is simple. i edit a single responsibility. easy
for my brain and easy for my tests.

On the other hand, our team lead doesn’t have
issues with long source files. He argues that they are quite common in
open-source projects. As an example, he pointed to the
ActionDispatch::Routing::Mapper class in Rails as a case of a long file with
multiple inline classes.

i dont buy that argument (it has no argument really); the rails source
is not a god : )

choose what you think is easy for you, why you think it’s easy, then
justify, demonstrate it to the group.

kind regards
–botp

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs