概要
Module#<=> other -> bool | nil
詳細
self と other の敬称関係を比較する
self が other の先祖のクラス/モジュールの場合、 1 を返却
self が other と同一のクラス/モジュールの場合、 0 を返却
self が other の子孫のクラス/モジュールの場合、 -1 を返却
継承関係にないクラス同士の比較では nil を返却
サンプルコード
require 'tbpgr_utils' module ParentModule end class ImplModuleClass include ParentModule end class ExtendedClass < ImplModuleClass;end class LonelinessClass;end bulk_puts_eval binding, <<-EOS ImplModuleClass <=> ParentModule ParentModule <=> ParentModule ParentModule <=> ImplModuleClass ExtendedClass <=> ImplModuleClass ExtendedClass <=> ExtendedClass ImplModuleClass <=> ExtendedClass ExtendedClass <=> ParentModule ParentModule <=> ExtendedClass ParentModule <=> ParentModule ParentModule <=> ParentModule ParentModule <=> LonelinessClass LonelinessClass <=> LonelinessClass LonelinessClass <=> ParentModule EOS __END__ 下記はTbpgrUtils gemの機能 bulk_puts_eval https://rubygems.org/gems/tbpgr_utils https://github.com/tbpgr/tbpgr_utils
出力
出力
ImplModuleClass <=> ParentModule # => -1 ParentModule <=> ParentModule # => 0 ParentModule <=> ImplModuleClass # => 1 ExtendedClass <=> ImplModuleClass # => -1 ExtendedClass <=> ExtendedClass # => 0 ImplModuleClass <=> ExtendedClass # => 1 ExtendedClass <=> ParentModule # => -1 ParentModule <=> ExtendedClass # => 1 ParentModule <=> ParentModule # => 0 ParentModule <=> ParentModule # => 0 ParentModule <=> LonelinessClass # => nil LonelinessClass <=> LonelinessClass # => 0 LonelinessClass <=> ParentModule # => nil