

rubyのFileクラスを拡張したいのですがうまくいきません。

rubyのバージョンは2.0.0p648を使用しております。  
<http://qiita.com/umanoda/items/33613b94ccabf7b1f851>  
こちらの記事を参考に試しました。  
'extend'が表示されるようにしたいのですが、openメソッドは通常の動作を返してしまいます。

どなたかご教授頂けませんでしょうか。

[code]

    class File
      alias_method :__open__, :open
    
      def open()
        'extend'
      end
    end
    
    p File.open('test.txt')
    #<File:test.txt>
    
[/code]

宜しくお願い致します。


CC BY-SA 3.0
2017-07-29T05:11:35.137
36759
2017-07-29T06:04:28.310
2017-07-29T05:24:36.943
24636
24636
question
ruby
rubyのFileクラス拡張について


クラスメソッドを上書きするので、インスタンスメソッドではなくクラスメソッドを定義することになるかと思います。

[code]

    class File
      class << self
        alias_method :__open__, :open
      end
    
      def self.open(*args)
        'extend'
      end
    end
    
    p File.open('test.txt')
    
[/code]


CC BY-SA 3.0
2017-07-29T06:04:28.310
36763
2017-07-29T06:04:28.310
4010
36759
answer