I have been doing some experiments with rails Concerns . While they have been widely publicited for Rails 4, you can use them in Rails 3 as well.
They are like the ruby standard include / extend pattern, but taking care of dependencies. In any case it would be easy to go back to the 'raw' include / exclude game.
This is an example of how to use them.
#it seems that things declared here are shared between all inclusions (saving memeory)
SEXY_REGEXP = /SEXY_REGEXP/i
MEM_HOGGING = Array.new(1024 * 1024)
MEMBERSHIP_STATUSES = %w(accepted invited requested rejected_by_group rejected_group)
#The included block will be triggered at inclusion time
class << self
#Methods in ClassMethods will get added class methods
puts "\nCLASS dummy? called\n"
#these methods are added as instance methods
puts "\nINSTANCE dummy? called\n"
puts "\ncreation called\n"
Just create a file under model/concerns/dummy.rb and include it
User.send :include, Concerns::Dummy
Note that I repeat the namespace Concerns, but in other examples found in internet people dont. Rails 4 has included models/concerns and controllers/concerns in the autoload paths and in Rails 4 it would work without the namespace. In Rails 3, you need to add the namespace OR using some trick.
I find easier to understand if I include the 'Concern', tough.