Ищете структуру стойки и спецификации config.ru? - PullRequest
12 голосов
/ 29 ноября 2011

Это, вероятно, заставит меня выглядеть глупым, но все же - я не могу найти никакого формального описания ни для типичной структуры стоечного приложения (папки / файлы, такие как public, config.ru), ни для содержимого файла config.ru.

В мире Java существует четкое определение веб-приложения и частей, из которых оно состоит (WEB-INF, META-INF web.xml).

Существует ли спецификация стойкивеб-приложение вообще?Или это что-то расплывчатое, как сам Руби.

Я ожидал найти эту информацию где-то на сайте http://rack.rubyforge.org/, но не смог.Пожалуйста, направьте меня в правильном направлении.


Хотя я пометил этот вопрос как ответ, стоит упомянуть, что сам вопрос не очень законный.Структура приложения определяется фактической комбинацией веб-сервера / плагина, такой как Apache / Passenger, а не Rack.

Ответы [ 2 ]

2 голосов
/ 29 ноября 2011

Веб-приложение Rack так же просто, как:

class HelloWorld
  def call(env)
    [200, {"Content-Type" => "text/plain"}, ["Hello world!"]]
  end
end

и такое же сложное, как приложения, построенные на таких платформах, как Rails, Sinatra и т. Д., Построенные на Rack.

Относится кструктура, вы можете создать свой.С Rack вы генерируете контент так, как вы хотите, чтобы он был структурирован.С помощью Rack вы в основном выводите необработанный HTTP-контент.

" Представление Rack ", " 32 Ресурсы Rack для начала работы " и " Введение вПромежуточное программное обеспечение Rack"- это ресурсы для лучшего понимания Rack.

Что касается структуры, у вас есть свобода в организации файлов для веб-приложения.У вас могут быть другие приложения Rack в разных файлах;Все, что вам нужно, это правильно требовать эти файлы.

Приложение Rack может быть любым классом Ruby, который отвечает на сообщение :call с помощью env, так же, как приложение HelloWorld выше.

1 голос
/ 29 ноября 2011

Вы проверили Rack Wiki ? Он содержит множество различных ссылок на учебники, презентации и т. Д. (Но я не уверен насчет спецификаций.)

...