Как вы создаете нечувствительные к регистру маршруты в Синатре? - PullRequest
7 голосов
/ 23 декабря 2010

Я играю с Синатрой, и я хотел бы сделать один из моих маршрутов без учета регистра.Я попытался добавить маршрут следующим образом:

get "(?i)/tileflood/?" do
end

Но он не соответствует перестановке / tileflood, как ожидалось.Я протестировал следующее регулярное выражение на rubular.com, и оно отлично подходит.Я что-то упустил?

\/(?i)tileflood\/?

1 Ответ

8 голосов
/ 23 декабря 2010

Требуется реальное регулярное выражение для вашего маршрута:

require 'sinatra'
get %r{^/tileflood/?$}i do
  request.url + "\n"
end

Доказательство:

<code>smagic:~ phrogz$ curl http://localhost:4567/tileflood
http://localhost:4567/tileflood

smagic:~ phrogz$ curl http://localhost:4567/tIlEflOOd
http://localhost:4567/tIlEflOOd

smagic:~ phrogz$ curl http://localhost:4567/TILEFLOOD/
http://localhost:4567/TILEFLOOD/

smagic:~ phrogz$ curl http://localhost:4567/TILEFLOOD/z
<!DOCTYPE html>
<html>
<head>
  <style type="text/css">
  body { text-align:center;font-family:helvetica,arial;font-size:22px;
    color:#888;margin:20px}
  #c {margin:0 auto;width:500px;text-align:left}
  </style>
</head>
<body>
  <h2>Sinatra doesn't know this ditty.</h2>
  <img src='/__sinatra__/404.png'>
  <div id="c">
    Try this:
    <pre>get '/TILEFLOOD/z' do
  "Hello World"
end
smagic: ~ phrogz $ curl http://localhost:4567/tileflaad
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...