Rack specifiesDlaczego Railsy generują plik config.ru, który uruchamia klasę, a nie obiekt?
Aplikacja Rack jest obiektem Ruby (nie klasa), który odpowiada na połączenie.
konsekwencji prosty config.ru
wygląda następująco:
class MyApp
def call(env)
[200, {"Content-Type" => "text/plain"}, ["Hello from Rack!\n"]]
end
end
run MyApp.new
podczas Rails generuje to:
# This file is used by Rack-based servers to start the application.
require ::File.expand_path('../config/environment', __FILE__)
run RailsApp::Application
Więc zastanawiam się: dlaczego nie run RailsApp::Application.new
gdy Rack określa ją jako obiekt, a nie klasa? Czy jest coś szczególnego w tym, czego mi brakuje Rails::Application
?