Ruby 特異メソッドとダックタイピング
特異メソッドはこういった変数に入ったStringオブジェクトにも追加可能 ・オープンクラス ・Refinements これらを作成するほどでもない特定箇所でのメソッド利用の場合は、お手軽にこういうものが使える。 厳密なクラス定義に拠らないところが特徴。 ダックタイピング(walk とquackを振る舞う動物ならそれはもうDuckだろう)という考え方
str = "FUGA" def str.isUpcase? self.upcase == self end p str.isUpcase? #=> true p str.methods.grep(/^is/) #=> [:isUpcase?, :is_a?]