require 'rubygems'
require 'mechanize'
class MyMech < Mechanize
DIR = File.dirname(__FILE__)
end
#=> NoMethodError: undefined method `dirname' for Mechanize::File:Class
Mechanize::File.dirname() ではなく
こちら
http://www.ruby-lang.org/ja/man/html/File.html
のクラスの File.dirname() を使うにはどうすれば良いのでしょうか?
トップレベルの定数を参照するには :: を前につけてください。
class MyMech < Mechanize
DIR = ::File.dirname(__FILE__)
end
です。
あるいは、Mechanize の中を触る必要がなければ、
単にMyMechのインスタンス変数としてWWW::Mechanizeを持ったり委譲したりでもいいかと思います。
http://www.ruby-lang.org/ja/man/html/File.html
>p File.dirname("dir/file.ext") # => "dir"
>p File.dirname("file.ext") # => "."
super は希望通りに動かない
mechanize でオーバーライドする前に alias しておくという手は試してない
warnig: toplevel constant File referenced by IP:File は出るけど一応使えそう
p IO::File.dirname("dir/file.ext")
p IO::File.dirname("file.ext")
ご回答ありがとうございます!!
::File
だったようです。
最速のご回答ありがとうございます m(_ _)m
トップレベルの定数を参照するには :: を前につけてください。
class MyMech < Mechanize
DIR = ::File.dirname(__FILE__)
end
です。
あるいは、Mechanize の中を触る必要がなければ、
単にMyMechのインスタンス変数としてWWW::Mechanizeを持ったり委譲したりでもいいかと思います。
ご回答ありがとうございます!!
どんぴしゃ解決でございます m(_ _)m
優れたアドバイスもありがとうございます!!
Mechanize の中を触る必要はないのですが、
カンタンに委譲する方法を知らないので継承しようとしてます(--;;
class MyMech < Mechanize
def get(o, p, nanika)
@mech.get(o, p, nanika)
end
def post(...
ご回答ありがとうございます!!
どんぴしゃ解決でございます m(_ _)m
優れたアドバイスもありがとうございます!!
Mechanize の中を触る必要はないのですが、
カンタンに委譲する方法を知らないので継承しようとしてます(--;;
class MyMech < Mechanize
def get(o, p, nanika)
@mech.get(o, p, nanika)
end
def post(...