Веб-разработка с рубином без рельсов?

По причинам, не зависящим от меня, мне поручено работать с веб-разработкой Ruby, которая НЕ использует Rails или действительно какую-либо другую тяжеловесную структуру, такую ​​как Merb. Мне интересно, если кто-то еще столкнулся с этим и может рекомендовать лучшие практики или ресурсы, которые описывают лучшие практики для такой проблемы. Я бы хотел избежать страшного

 out.print('<td class="foo">'+some_data+'</td>')

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

Ответ 1

Посмотрите Sinatra. Это каркас, но не такой тяжелый.

Ответ 2

Посмотрите Rack и Sinatra или Waves. Стойка не доказана на рынке. В наши дни Rails построен поверх стойки! Он также не является каркасом, он позволяет фреймворкам сосредоточиться на своем дифференциаторе, а не на низкоуровневой работе.

Вы также можете использовать jruby и java-сервлет api напрямую. Кстати, все фреймворки на стойке можно легко запустить на jruby.

Ответ 3

Стойка не является платформой приложений, а не интерфейсом сервера. Вероятно, вы захотите использовать его для этого проекта, но он не решит вашу проблему отсутствия рамки без использования фреймворка. Во всяком случае, если вы хотите "избежать страшного out.print('<td class="foo">'+some_data+'</td>')", вам придется использовать систему шаблонов, по крайней мере. Есть много доступных, таких как ERb (которые Rails использует по умолчанию) и Haml.

Ответ 4

Иди с Рамазе. Я использую его в производстве, работая на JRuby и Glassfish.

Простота развития, солидная поддержка сообщества. Нет крути. Как и Ruby, он убирается с вашего пути.

Ответ 5

Я могу присоединиться к всем, кто рекомендует Sinatra. Он компактен, с радостью компилируется и развертывается на Rack, что означает, что вы действительно запускаете его в любом стеке, которое вам больше всего нравится (Mongrel, FCGI, Thin, Passenger и т.д.)

Я попробовал Sinatra, когда мне нужно было быстро создать проект, и он масштабировался и работал так хорошо, что я все еще использую его сегодня для обработки более 80 000 тяжелых запросов в день.

Ответ 6

Как всегда хороший ol < cgi.rb.

Ответ 7

Вы посмотрели Sinatra? Это структура, но не такая тяжелая, как Rails. Я сам не тестировал его, но с ним очень легко работать.

Кроме того, Ramaze кажется приятным и модульным, не уверен, что это то, что вы ищете.

Я не знаю, как легко использовать Ruby непосредственно как cgi, но вполне возможно также отделить макет от кода с этим. Существует немало драгоценных камней, которые могут сделать это без использования фреймворка.

Ответ 8

Мой личный выбор и рекомендации Ramaze - это как можно проще, но не проще. Чистый и лаконичный, не жертвуя силой. Танцы хорошо с вашим выбором JS lib (jQuery, Prototype, Mootools) или ORM (Sequel, Datamapper, M4DBI) или шаблоном. Кроме того, не забывайте о статических генераторах, таких как nanoc.

Ответ 9

Это очень возможно, весь мой сайт работает на чистом рубине.

Я не сталкивался с какой-либо проблемой. Я начинаю свое приложение с

require "mysql"                               # module | mysql
require "cgi"                                 # module | cgi
require "date"