Комментарии 17
«позволяюзий» поправьте пожалуйста.
Очень быстрое вступление и короткое :) А за развернутую статью огромное спасибо — она как раз вовремя!
Какого рода задачи решаются и какие приложения можно делать с помощью Rack? Несколько раз встречал описание rack, но так и не пришло в голову где можно это применить.
Ну вот лично я использовал однажды, когда необходимо было, чтобы к категории в магазине можно было перейти как по ссылке /category/23 так и по любой другой хранящейся в базе ссылке (чтобы администратор сам мог их менять), например /sale.
HTTP-запрос перехватывался с помощью middleware, посылался запрос в БД и если там был нужный request.uri, то он подменялся и рельсы рендерили нужную страничку.
HTTP-запрос перехватывался с помощью middleware, посылался запрос в БД и если там был нужный request.uri, то он подменялся и рельсы рендерили нужную страничку.
Сами рельсы реализованы поверх rack (не изначально). Также куча плагинов работают как rack middleware, например omniauth.
my_rack_proc = lambda { | ENV | [200, {}, [«Hello. The time is #{Time.now}»]] }
SyntaxError: (irb):6: formal argument cannot be a constant
my_rack_proc = lambda {|ENV| [200, {}, [«Hello. The time…
переведите ENV в нижний регистр
>> Rack:: Handler.constants
=> [: CGI,: FastCGI,: Mongrel,: EventedMongrel,: SwiftipliedMongrel,: WEBrick,: LSWS,: SCGI,: Тонкие]
А в вакансиях пишут «Нужное знание технологий: Java, Hibernate, Весна» :)
Исправте на:
[:CGI, :FastCGI, :Mongrel, :EventedMongrel, :SwiftipliedMongrel, :WEBrick, :LSWS, :SCGI, :Thin]
И уберите пробел между Handler
Если мне память не изменяет, то lambda и proc немного разные вещи.
Я слышал, что в Руби анонимные функции должны занимать не более одной строки. Правда ли это?
Статья полна довольно странными утверждениями и приёмами.
HTTP — это простой протокол.
Очень спорно.
метод lambda класса ObjectВ Object он приватен. А определён он в Kernel.
require './my_app'
А в целом да, полезно знать.
HTTP — это простой протокол.
Очень спорно.
# irb --simple-prompt
>> require 'rack'
=> true
gem list rack
метод lambda класса ObjectВ Object он приватен. А определён он в Kernel.
require './my_app'
А в целом да, полезно знать.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Быстрое вступление в rack