[ruby-list:50376] Re: [質問] module内のclass内private関数をオーバーライド
From:
<yamataka@...08.itscom.net>
Date:
2016-08-15 10:42:30 UTC
List:
ruby-list #50376
> H.Hiroです。
H.Hiroさん
山口です。
アドバイスありがとうございました。
> オーバーライドは単に、子クラスでprivateを付けたメソッドを書くだけでで
きます。
>
> # 親クラス
> class Sample
> def output
> puts foo
> end
>
> private
> def foo
> 100
> end
> end
>
> Sample.new.output # => 100
> # puts Sample.new.foo # 例外
>
> # 子クラス
> class MySample < Sample
> private
> def foo
> 200
> end
> end
その後、Webで色々調べた結果
== 自分のProgram
require 'easy_upnp'
module EasyUpnp # moduleと同じ名前で、定義を再開
class MySsdpSearcher # module内のclass名と同じ名前で、クラス定義を変更
def build_socket
puts "Hello my build_socket"
end
end
end
== (自分のプログラム)
のような記述で、希望の動作になりました。