以下のコードは、RubyTapas スクリーンキャストから取得したもので、Cowsays メッセージを端末に出力します。このクラスには 2 つのメソッドがsay
あり、URL をパラメーターとして受け入れる backtick メソッドもあります。バックティックメソッドなしでは機能しませんが、バックティックメソッドが呼び出されることはないため、カウセイメッセージを出力するためにバックティックメソッドがいつ/どのように使用されるかわかりません。say
so のようにメソッドを呼び出すだけでよいように (私には) 見えますCowsays.new.say "Hello, StackOverflow"
。このコードで backtick メソッドがどのように呼び出されるか説明できますか?
______________________
< Hello, StackOverflow >
----------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
コード
require 'net/http'
require 'cgi'
class Cowsays
def `(url)
URI.parse(url)
end
def say(message)
message = CGI.escape(message)
Net::HTTP.get_print(`http://www.cowsays.com/cowsay?message=#{message}`)
end
end
Cowsays.new.say "Hello, StackOverflow"