既存クラスのメソッドを書き換えたファイルを何度も読み込む時の扱い方
ruby - 既存クラスのメソッドに追加のオプションをつける方法 にて既存クラスのメソッドの書き換えについてお聞きしたのですが、問題が書き換えの方法ではなくファイルの読み込み方にあったために別の質問として立てさせていただきました。
以下のようにselenium-webdriver
の拡張をしたのですが、pry上で作業している時にSelenium::Webdriver::Element
に他のメソッドを追加した時など何度もload 'selenium_webdriver_ext.rb'
で呼び出すと2回目以降から stack level too deep
のエラーが発生してしまいます。
selenium_webdriver_ext.rb
class Selenium::WebDriver::Element
alias_method :send_keys_orig, :send_keys
def send_keys(*args, clear: false)
__send__(:clear) if clear
send_keys_orig(*args)
end
end
メソッドの書き換えを行ったファイルをpry
から何度も読みだす時に何か良い方法はないでしょうか?