Как Синатра определяет и вызывает метод get?

Мне очень любопытно, как это работает.

после require 'sinatra'

я могу вызвать get () в области верхнего уровня.

покопавшись в исходном коде, я обнаружил, что эта структура get ()

module Sinatra
 class << self
   def get
    ...
    end
  end
end

знает, что class << self открывает определение класса singleton объекта self и добавляет внутрь get (), поэтому начинает обретать смысл.

Но единственное, что я не могу понять, это внутри модуля Sinstra, как можно вызвать get () без использования операции Sinatra :: resolution или чего-то подобного?

7
задан jergason 8 December 2011 в 03:33
поделиться