Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby | Module | >=

概要

Module#>= other -> bool | nil

詳細

比較演算子。self が other の先祖であるか同一クラスである場合、 true を返却
self が other の子孫のクラス/モジュールの場合、 false を返却
継承関係にないクラス同士の比較では 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    # => false
ParentModule >= ParentModule       # => true
ParentModule >= ImplModuleClass    # => true
ExtendedClass >= ImplModuleClass   # => false
ExtendedClass >= ExtendedClass     # => true
ImplModuleClass >= ExtendedClass   # => true
ExtendedClass >= ParentModule      # => false
ParentModule >= ExtendedClass      # => true
ParentModule >= ParentModule       # => true
ParentModule >= ParentModule       # => true
ParentModule >= LonelinessClass    # => nil
LonelinessClass >= LonelinessClass # => true
LonelinessClass >= ParentModule    # => nil