LoginSignup
3
2

More than 5 years have passed since last update.

Module#include は ruby 2.0 までは private

Posted at

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

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2