4

「get」メソッドはどこで定義されていますか? そして、それはどのようにオブジェクトなしで呼び出されますか?

require 'sinatra'

get '/hi' do
  "Hello World!"
end

http://www.sinatrarb.com/ホームページの例。

4

1 に答える 1

4

「オブジェクトなし」では何も呼び出していませんが、これを呼び出すrequire 'sinatra'Object、ライブラリが読み込まれる場合はライブラリが読み込まれget、とりわけ method が提供されます。

get が定義されている場所は、Sinatra gem の lib フォルダーの base.rb というファイルにあり、このコードはおそらくコンピューター上にあります。

# Defining a `GET` handler also automatically defines
# a `HEAD` handler.
def get(path, opts = {}, &block)
  conditions = @conditions.dup
  route('GET', path, opts, &block)

  @conditions = conditions
  route('HEAD', path, opts, &block)
end

ここで何が起こっているのかを理解するには、Ruby がどのように機能するかを根本的に理解する必要があります。これは、ここでの回答で回答できる、または回答する必要があるものよりも少し多くなります。

于 2013-10-05T06:57:17.150 に答える