defunkt/gistを読んでいたら,gist.rbに以下の記述を見つけた.
gist.rb
module Gist
extend self
# ...
def write(files, private_gist = false, description = nil)
# ...
end
extend self
でのレシーバーはGist
なので,Gist
モジュールの特異クラス(Gist
クラス)に,self
で定義されているメソッド(つまりextend self
以降で定義しているGist
モジュールのメソッド.上記のwrite
など)を定義するということみたい.
結果Gist.write
のように呼び出すことが出来るようになる.