クラスでメソッドを使用することは可能open
ですか? メソッドが?Parser
と競合しているようです。IO::open
class Parser
require 'nokogiri'
def parse
doc = open "someFile.html"
# Get to parsin' ...
end
def open str
Nokogiri::HTML(open(str))
end
end
parser = Parser.new
parser.parse
スクリプトを実行すると、次のエラーが表示されます。
$ ruby parser.rb
parser.rb:10: stack level too deep (SystemStackError)
私はさまざまなことを試しましたが、うまくいくように見える唯一のことは、名前Parser::open
を 以外のものに変更することopen
ですdocopen
ルビーの仕組みを理解しようとしているので、答え以外の説明があれば大歓迎です!