2.0 までは private
irb(main):001:0> RUBY_VERSION
=> "2.0.0"
irb(main):002:0> Module.public_instance_methods.grep(/^include$/)
=> []
irb(main):003:0> Module.private_instance_methods.grep(/^include$/)
=> [:include]
2.1 から public になってた
irb(main):001:0> RUBY_VERSION
=> "2.1.5"
irb(main):002:0> Module.public_instance_methods.grep(/^include$/)
=> [:include]
irb(main):003:0> Module.private_instance_methods.grep(/^include$/)
=> []
irb(main):001:0> RUBY_VERSION
=> "2.2.3"
irb(main):002:0> Module.public_instance_methods.grep(/^include$/)
=> [:include]
irb(main):003:0> Module.private_instance_methods.grep(/^include$/)
=> []
MyClass.include MyMod
みたいに使える。(というかそう使ってたら 2.0 環境でエラーになって気づいた)
地味すぎて気付かなかった... 2.1 リリース当時も特にこれに触れた記事を見なかった気がするけど、リリースノートちゃんと読んだら書いてあった。
https://github.com/ruby/ruby/blob/v2_1_0/NEWS#L96