Fwiw, most ruby code seems to follow that pattern. I know most of the gems I work on do. While an `include` can mixin methods it can, and often does, modify the module in many ways. I prefer to put such large reaching changes at the top of the file.

My rough layout in a class or module is:

1. extend
1. include
1. constants
1. public class methods
1. protected class methods
1. private class methods
1. initializer
1. public instance methods
1. protected instance methods
1. private class methods
1. private classes

I'm sure I've forgotten something, but this is the gist of what I do.