sinatra 2.0.8 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sinatra might be problematic. Click here for more details.

data/README.pt-br.md CHANGED
@@ -263,7 +263,7 @@ get '/posts' do
263
263
  # corresponde a "GET /posts?titulo=foo&autor=bar"
264
264
  titulo = params['titulo']
265
265
  autor = params['autor']
266
- # utiliza as variaveis titulo e autor; a query é opicional para a rota /posts
266
+ # utiliza as variáveis titulo e autor; a query é opcional para a rota /posts
267
267
  end
268
268
  ```
269
269
 
@@ -362,10 +362,10 @@ Você pode retornar uma resposta válida ou um objeto para o Rack, sendo
362
362
  eles de qualquer tipo de objeto que queira. Além disso, é possível
363
363
  retornar um código de status HTTP.
364
364
 
365
- * Um array com três elementros: `[status (Integer), cabecalho (Hash),
365
+ * Um array com três elementos: `[status (Integer), cabeçalho (Hash),
366
366
  corpo da resposta (responde à #each)]`
367
367
 
368
- * Um array com dois elementros: `[status (Integer), corpo da resposta
368
+ * Um array com dois elementos: `[status (Integer), corpo da resposta
369
369
  (responde à #each)]`
370
370
 
371
371
  * Um objeto que responda à `#each` sem passar nada, mas, sim, `strings`
@@ -444,10 +444,10 @@ Arquivos estáticos são disponibilizados a partir do diretório
444
444
  `:public_folder`
445
445
 
446
446
  ```ruby
447
- set :public_folder, File.dirname(__FILE__) + '/estatico'
447
+ set :public_folder, __dir__ + '/estatico'
448
448
  ```
449
449
 
450
- Note que o nome do diretório público não é incluido na URL. Um arquivo
450
+ Note que o nome do diretório público não é incluído na URL. Um arquivo
451
451
  `./public/css/style.css` é disponibilizado como
452
452
  `http://exemplo.com/css/style.css`.
453
453
 
@@ -541,7 +541,7 @@ Opções disponíveis:
541
541
 
542
542
  <dt>content_type</dt>
543
543
  <dd>
544
- O *Content-Type* que o template produz. O padrão depente
544
+ O *Content-Type* que o template produz. O padrão depende
545
545
  da linguagem de template utilizada.
546
546
  </dd>
547
547
 
@@ -604,9 +604,9 @@ end
604
604
 
605
605
  ### Linguagens de template disponíveis
606
606
 
607
- Algumas linguagens possuem multiplas implementações. Para especificar qual
607
+ Algumas linguagens possuem múltiplas implementações. Para especificar qual
608
608
  implementação deverá ser utilizada (e para ser *thread-safe*), você deve
609
- requere-la primeiro:
609
+ requerê-la primeiro:
610
610
 
611
611
  ```ruby
612
612
  require 'rdiscount' # ou require 'bluecloth'
@@ -654,7 +654,7 @@ get('/') { markdown :index }
654
654
 
655
655
  <table>
656
656
  <tr>
657
- <td>Dependêcia</td>
657
+ <td>Dependência</td>
658
658
  <td>
659
659
  <a href="https://github.com/jimweirich/builder" title="builder">
660
660
  builder
@@ -806,7 +806,7 @@ mesmo. Portanto normalmente é utilizado junto a outra engine de renderização:
806
806
  erb :overview, :locals => { :text => markdown(:introducao) }
807
807
  ```
808
808
 
809
- Note que vcoê também pode chamar o método `markdown` dentro de outros templates:
809
+ Note que você também pode chamar o método `markdown` dentro de outros templates:
810
810
 
811
811
  ```ruby
812
812
  %h1 Olá do Haml!
@@ -840,7 +840,7 @@ mesmo. Portanto normalmente é utilizado junto a outra engine de renderização:
840
840
  erb :overview, :locals => { :text => textile(:introducao) }
841
841
  ```
842
842
 
843
- Note que vcoê também pode chamar o método `textile` dentro de outros templates:
843
+ Note que você também pode chamar o método `textile` dentro de outros templates:
844
844
 
845
845
  ```ruby
846
846
  %h1 Olá do Haml!
@@ -876,7 +876,7 @@ mesmo. Portanto normalmente é utilizado junto a outra engine de renderização:
876
876
  erb :overview, :locals => { :text => rdoc(:introducao) }
877
877
  ```
878
878
 
879
- Note que vcoê também pode chamar o método `rdoc` dentro de outros templates:
879
+ Note que você também pode chamar o método `rdoc` dentro de outros templates:
880
880
 
881
881
  ```ruby
882
882
  %h1 Olá do Haml!
@@ -1108,7 +1108,7 @@ deve-se passar a `:layout_engine` como opção.
1108
1108
  </tr>
1109
1109
  </table>
1110
1110
 
1111
- Antes que vcoê possa utilizar o template Stylus primeiro você deve carregar
1111
+ Antes que você possa utilizar o template Stylus primeiro você deve carregar
1112
1112
  `stylus` e `stylus/tilt`:
1113
1113
 
1114
1114
  ```ruby
@@ -1381,7 +1381,7 @@ after do
1381
1381
  end
1382
1382
  ```
1383
1383
 
1384
- Nota: A não ser que você use o metódo `body` ao invés de apenas retornar uma
1384
+ Nota: A não ser que você use o método `body` ao invés de apenas retornar uma
1385
1385
  String das rotas, o corpo ainda não estará disponível no filtro after, uma vez
1386
1386
  que é gerado depois.
1387
1387
 
@@ -1466,7 +1466,7 @@ Para melhorar a segurança, os dados da sessão no cookie são assinado com uma
1466
1466
  segredo de sessão usando `HMAC-SHA1`. Esse segredo de sessão deve ser, de
1467
1467
  preferência, um valor criptograficamente randômico, seguro, de um comprimento
1468
1468
  apropriado no qual `HMAC-SHA1` é maior ou igual a 64 bytes (512 bits, 128
1469
- carecteres hexadecimais). Você será avisado para não usar uma chave secreta
1469
+ caracteres hexadecimais). Você será avisado para não usar uma chave secreta
1470
1470
  menor que 32 bytes de randomicidade (256 bits, 64 caracteres hexadecimais).
1471
1471
  Portanto, é **muito importante** que você não invente o segredo, mas use um
1472
1472
  gerador de números aleatórios seguro para cria-lo. Humanos são extremamente
@@ -1676,8 +1676,8 @@ Veja a especificação do Rack se você quer aprender mais sobre o `call`.
1676
1676
  É possível e recomendado definir o código de status e o corpo da resposta com o
1677
1677
  valor retornado do bloco da rota. Entretanto, em alguns cenários você pode
1678
1678
  querer definir o corpo em um ponto arbitrário do fluxo de execução. Você pode
1679
- fazer isso com o metódo auxiliar `body`. Se você fizer isso, poderá usar esse
1680
- metódo de agora em diante para acessar o body:
1679
+ fazer isso com o método auxiliar `body`. Se você fizer isso, poderá usar esse
1680
+ método de agora em diante para acessar o body:
1681
1681
 
1682
1682
  ```ruby
1683
1683
  get '/foo' do
@@ -1689,7 +1689,7 @@ after do
1689
1689
  end
1690
1690
  ```
1691
1691
 
1692
- Também é possivel passar um bloco para `body`, que será executado pelo
1692
+ Também é possível passar um bloco para `body`, que será executado pelo
1693
1693
  manipulador Rack (isso pode ser usado para implementar transmissão,
1694
1694
  [veja "Retorno de Valores"](#retorno-de-valores)).
1695
1695
 
@@ -1761,21 +1761,21 @@ get '/assinar' do
1761
1761
  end
1762
1762
  end
1763
1763
 
1764
- post '/:messagem' do
1764
+ post '/:mensagem' do
1765
1765
  conexoes.each do |saida|
1766
1766
  # notifica o cliente que uma nova mensagem chegou
1767
- saida << params['messagem'] << "\n"
1767
+ saida << params['mensagem'] << "\n"
1768
1768
 
1769
1769
  # indica ao cliente para se conectar novamente
1770
1770
  saida.close
1771
1771
  end
1772
1772
 
1773
1773
  # confirma
1774
- "messagem recebida"
1774
+ "mensagem recebida"
1775
1775
  end
1776
1776
  ```
1777
1777
 
1778
- Também é possivel para o cliente fechar a conexão quando está tentando escrever
1778
+ Também é possível para o cliente fechar a conexão quando está tentando escrever
1779
1779
  para o socket. Devido a isso, é recomendado checar `out.closed?` antes de
1780
1780
  tentar escrever.
1781
1781
 
@@ -1792,7 +1792,7 @@ end
1792
1792
  ```
1793
1793
 
1794
1794
  Esse logger irá automaticamente botar as configurações de log do manipulador
1795
- Rack na sua conta. Se a produção de logs estiver desabilitads, esse método
1795
+ Rack na sua conta. Se a produção de logs estiver desabilitada, esse método
1796
1796
  retornará um objeto dummy, então você não terá que se preocupar com suas rotas
1797
1797
  e filtros.
1798
1798
 
@@ -1837,7 +1837,7 @@ end
1837
1837
 
1838
1838
  ### Gerando URLs
1839
1839
 
1840
- Para gerar URLs você deve usar o metódo auxiliar `url` no Haml:
1840
+ Para gerar URLs você deve usar o método auxiliar `url` no Haml:
1841
1841
 
1842
1842
  ```ruby
1843
1843
  %a{:href => url('/foo')} foo
@@ -1850,7 +1850,7 @@ Esse método é também apelidado para `to` (veja
1850
1850
 
1851
1851
  ### Redirecionamento do Browser
1852
1852
 
1853
- Você pode lançar um redirecionamento no browser com o metódo auxiliar
1853
+ Você pode lançar um redirecionamento no browser com o método auxiliar
1854
1854
  `redirect`:
1855
1855
 
1856
1856
  ```ruby
@@ -1859,7 +1859,7 @@ get '/foo' do
1859
1859
  end
1860
1860
  ```
1861
1861
 
1862
- Quaisquer paramêtros adicionais são interpretados como argumentos passados
1862
+ Quaisquer parâmetros adicionais são interpretados como argumentos passados
1863
1863
  ao `halt`:
1864
1864
 
1865
1865
  ```ruby
@@ -2000,7 +2000,7 @@ etag '', :new_resource => true, :kind => :weak
2000
2000
  ### Enviando Arquivos
2001
2001
 
2002
2002
  Para retornar os conteúdos de um arquivo como as resposta, você pode usar o
2003
- metódo auxiliar `send_file`:
2003
+ método auxiliar `send_file`:
2004
2004
 
2005
2005
  ```ruby
2006
2006
  get '/' do
@@ -2043,14 +2043,14 @@ As opções são:
2043
2043
  Código de status a ser enviado. Útil quando está se enviando um arquivo
2044
2044
  estático como uma página de erro. Se suportado pelo handler do Rack,
2045
2045
  outros meios além de transmissão do processo do Ruby serão usados.
2046
- So você usar esse metódo auxiliar, o Sinatra irá automaticamente lidar com
2046
+ So você usar esse método auxiliar, o Sinatra irá automaticamente lidar com
2047
2047
  requisições de alcance.
2048
2048
  </dd>
2049
2049
  </dl>
2050
2050
 
2051
- ### Acessando o Objeto da Requisção
2051
+ ### Acessando o Objeto da Requisição
2052
2052
 
2053
- O objeto vindo da requisição pode ser acessado do nível de requsição (filtros,
2053
+ O objeto vindo da requisição pode ser acessado do nível de requisição (filtros,
2054
2054
  rotas, manipuladores de erro) através do método `request`:
2055
2055
 
2056
2056
  ```ruby
@@ -2070,9 +2070,9 @@ get '/foo' do
2070
2070
  request.content_length # tamanho do request.body
2071
2071
  request.media_type # tipo de mídia of request.body
2072
2072
  request.host # "exemplo.com"
2073
- request.get? # true (metodo similar para outros tipos de requisição)
2073
+ request.get? # true (método similar para outros tipos de requisição)
2074
2074
  request.form_data? # false
2075
- request["algum_ param"] # valor do paramêtro 'algum_param'. [] é um atalho para o hash de parametros
2075
+ request["algum_ param"] # valor do parâmetro 'algum_param'. [] é um atalho para o hash de parâmetros
2076
2076
  request.referrer # a referência do cliente ou '/'
2077
2077
  request.user_agent # agente de usuário (usado por :agent condition)
2078
2078
  request.cookies # hash dos cookies do browser
@@ -2095,7 +2095,7 @@ get "/" do
2095
2095
  "todas requisições acabam aqui"
2096
2096
  end
2097
2097
  ```
2098
- `request.body` é uma ES ou um objeo StringIO:
2098
+ `request.body` é uma ES ou um objeto StringIO:
2099
2099
 
2100
2100
  ```ruby
2101
2101
  post "/api" do
@@ -2108,7 +2108,7 @@ end
2108
2108
  ### Anexos
2109
2109
 
2110
2110
  Você pode usar o método auxiliar `attachment` para dizer ao navegador que a
2111
- reposta deve ser armazenada no disco no lugar de ser exibida no browser:
2111
+ resposta deve ser armazenada no disco no lugar de ser exibida no browser:
2112
2112
 
2113
2113
  ```ruby
2114
2114
  get '/' do
@@ -2208,8 +2208,8 @@ realmente maluco.
2208
2208
  É possível e recomendado definir o código de status e o corpo da resposta com o
2209
2209
  valor retornado do bloco da rota. Entretanto, em alguns cenários você pode
2210
2210
  querer definir o corpo em um ponto arbitrário do fluxo de execução. Você pode
2211
- fazer isso com o metódo auxiliar `body`. Se você fizer isso, poderá usar esse
2212
- metódo de agora em diante para acessar o body:
2211
+ fazer isso com o método auxiliar `body`. Se você fizer isso, poderá usar esse
2212
+ método de agora em diante para acessar o body:
2213
2213
 
2214
2214
  ```ruby
2215
2215
  get '/foo' do
@@ -2221,7 +2221,7 @@ after do
2221
2221
  end
2222
2222
  ```
2223
2223
 
2224
- Também é possivel passar um bloco para `body`, que será executado pelo
2224
+ Também é possível passar um bloco para `body`, que será executado pelo
2225
2225
  manipulador Rack (isso pode ser usado para implementar transmissão,
2226
2226
  [veja "Retorno de Valores"](#retorno-de-valores)).
2227
2227
 
@@ -2307,7 +2307,7 @@ post '/:messagem' do
2307
2307
  end
2308
2308
  ```
2309
2309
 
2310
- Também é possivel para o cliente fechar a conexão quando está tentando escrever
2310
+ Também é possível para o cliente fechar a conexão quando está tentando escrever
2311
2311
  para o socket. Devido a isso, é recomendado checar `out.closed?` antes de
2312
2312
  tentar escrever.
2313
2313
 
@@ -2324,7 +2324,7 @@ end
2324
2324
  ```
2325
2325
 
2326
2326
  Esse logger irá automaticamente botar as configurações de log do manipulador
2327
- Rack na sua conta. Se a produção de logs estiver desabilitads, esse método
2327
+ Rack na sua conta. Se a produção de logs estiver desabilitada, esse método
2328
2328
  retornará um objeto dummy, então você não terá que se preocupar com suas rotas
2329
2329
  e filtros.
2330
2330
 
@@ -2369,7 +2369,7 @@ end
2369
2369
 
2370
2370
  ### Gerando URLs
2371
2371
 
2372
- Para gerar URLs você deve usar o metódo auxiliar `url` no Haml:
2372
+ Para gerar URLs você deve usar o método auxiliar `url` no Haml:
2373
2373
 
2374
2374
  ```ruby
2375
2375
  %a{:href => url('/foo')} foo
@@ -2382,7 +2382,7 @@ Esse método é também apelidado para `to` (veja
2382
2382
 
2383
2383
  ### Redirecionamento do Browser
2384
2384
 
2385
- Você pode lançar um redirecionamento no browser com o metódo auxiliar
2385
+ Você pode lançar um redirecionamento no browser com o método auxiliar
2386
2386
  `redirect`:
2387
2387
 
2388
2388
  ```ruby
@@ -2391,7 +2391,7 @@ get '/foo' do
2391
2391
  end
2392
2392
  ```
2393
2393
 
2394
- Quaisquer paramêtros adicionais são interpretados como argumentos passados ao
2394
+ Quaisquer parâmetros adicionais são interpretados como argumentos passados ao
2395
2395
  `halt`:
2396
2396
 
2397
2397
  ```ruby
@@ -2532,7 +2532,7 @@ etag '', :new_resource => true, :kind => :weak
2532
2532
  ### Enviando Arquivos
2533
2533
 
2534
2534
  Para retornar os conteúdos de um arquivo como as resposta, você pode usar o
2535
- metódo auxiliar `send_file`:
2535
+ método auxiliar `send_file`:
2536
2536
 
2537
2537
  ```ruby
2538
2538
  get '/' do
@@ -2575,14 +2575,14 @@ As opções são:
2575
2575
  Código de status a ser enviado. Útil quando está se enviando um arquivo
2576
2576
  estático como uma página de erro. Se suportado pelo handler do Rack,
2577
2577
  outros meios além de transmissão do processo do Ruby serão usados.
2578
- So você usar esse metódo auxiliar, o Sinatra irá automaticamente lidar
2578
+ So você usar esse método auxiliar, o Sinatra irá automaticamente lidar
2579
2579
  com requisições de alcance.
2580
2580
  </dd>
2581
2581
  </dl>
2582
2582
 
2583
2583
  ### Acessando o Objeto da Requisção
2584
2584
 
2585
- O objeto vindo da requisição pode ser acessado do nível de requsição (filtros,
2585
+ O objeto vindo da requisição pode ser acessado do nível de requisição (filtros,
2586
2586
  rotas, manipuladores de erro) através do método `request`:
2587
2587
 
2588
2588
  ```ruby
@@ -2604,7 +2604,7 @@ get '/foo' do
2604
2604
  request.host # "exemplo.com"
2605
2605
  request.get? # true (metodo similar para outros tipos de requisição)
2606
2606
  request.form_data? # false
2607
- request["algum_ param"] # valor do paramêtro 'algum_param'. [] é um atalho para o hash de parametros
2607
+ request["algum_ param"] # valor do parâmetro 'algum_param'. [] é um atalho para o hash de parâmetros
2608
2608
  request.referrer # a referência do cliente ou '/'
2609
2609
  request.user_agent # agente de usuário (usado por :agent condition)
2610
2610
  request.cookies # hash dos cookies do browser
@@ -2627,7 +2627,7 @@ get "/" do
2627
2627
  "todas requisições acabam aqui"
2628
2628
  end
2629
2629
  ```
2630
- `request.body` é uma ES ou um objeo StringIO:
2630
+ `request.body` é uma ES ou um objeto StringIO:
2631
2631
 
2632
2632
  ```ruby
2633
2633
  post "/api" do
@@ -2851,7 +2851,7 @@ set :protection, :session => true
2851
2851
  <dt>add_charset</dt>
2852
2852
  <dd>
2853
2853
  Para tipos Mime o método auxiliar <tt>content_type</tt> irá
2854
- automaticamente adicionar a informção de codificação. Você deve adcionar
2854
+ automaticamente adicionar a informação de codificação. Você deve adicionar
2855
2855
  isto no lugar de sobrescrever essa opção:
2856
2856
  <tt>settings.add_charset << "application/foobar"</tt>
2857
2857
  </dd>
@@ -2980,7 +2980,7 @@ set :protection, :session => true
2980
2980
  <tt>server_settings</tt>, tais como <tt>SSLEnable</tt> ou
2981
2981
  <tt>SSLVerifyClient</tt>. Entretanto, servidores web como Puma e Thin não
2982
2982
  suportam isso, então você pode definir <tt>server_settings</tt> como um
2983
- metódo quando chamar <tt>configure</tt>.
2983
+ método quando chamar <tt>configure</tt>.
2984
2984
  </dd>
2985
2985
 
2986
2986
  <dt>sessions</dt>
@@ -3065,7 +3065,7 @@ podem ser definidos através da variável de ambiente `APP_ENV`. O valor padrão
3065
3065
  `"development"`. No ambiente `"development"` todos os templates são
3066
3066
  recarregados entre as requisições e manipuladores especiais como `not_found` e
3067
3067
  `error` exibem relatórios de erros no seu navegador. Nos ambientes de
3068
- `"production"` e `"test"`, os templates são guardos em cache por padrão.
3068
+ `"production"` e `"test"`, os templates são guardados em cache por padrão.
3069
3069
 
3070
3070
  Para rodar diferentes ambientes, defina a variável de ambiente `APP_ENV`:
3071
3071
 
@@ -3205,12 +3205,12 @@ use Rack::Auth::Basic do |usuario, senha|
3205
3205
  end
3206
3206
  ```
3207
3207
 
3208
- O Rack é distribuido com uma variedade de middleware padrões para logs,
3208
+ O Rack é distribuído com uma variedade de middleware padrões para logs,
3209
3209
  debugs, rotas de URL, autenticação, e manipuladores de sessão. Sinatra
3210
3210
  utilizada muitos desses componentes automaticamente baseando sobre
3211
3211
  configuração, então, tipicamente você não tem `use` explicitamente.
3212
3212
 
3213
- Você pode achar middlwares utéis em
3213
+ Você pode achar middlewares utéis em
3214
3214
  [rack](https://github.com/rack/rack/tree/master/lib/rack),
3215
3215
  [rack-contrib](https://github.com/rack/rack-contrib#readme),
3216
3216
  ou em [Rack wiki](https://github.com/rack/rack/wiki/List-of-Middleware).
@@ -3238,7 +3238,7 @@ class MinhaAplicacaoTeste < Minitest::Test
3238
3238
  assert_equal 'Ola Mundo!', last_response.body
3239
3239
  end
3240
3240
 
3241
- def teste_com_parametros
3241
+ def teste_com_parâmetros
3242
3242
  get '/atender', :name => 'Frank'
3243
3243
  assert_equal 'Olá Frank!', last_response.bodymeet
3244
3244
  end
@@ -3256,7 +3256,7 @@ NOTA: Se você está usando o Sinatra no estilo modular, substitua
3256
3256
  ## Sinatra::Base - Middleware, Bibliotecas e aplicativos modulares
3257
3257
 
3258
3258
  Definir sua aplicação em um nível superior de trabalho funciona bem para
3259
- micro aplicativos, mas tem consideráveis incovenientes na construção de
3259
+ micro aplicativos, mas tem consideráveis inconvenientes na construção de
3260
3260
  componentes reutilizáveis como um middleware Rack, metal Rails,
3261
3261
  bibliotecas simples como um componente de servidor, ou mesmo extensões
3262
3262
  Sinatra. A DSL de nível superior polui o espaço do objeto e assume um
@@ -3293,7 +3293,7 @@ numa subclasse de `Sinatra::Base`.
3293
3293
  padrão, incluindo o servidor embutido. Veja [Opções e
3294
3294
  Configurações](http://www.sinatrarb.com/configuration.html) para
3295
3295
  detalhes de opções disponíveis e seus comportamentos. Se você quer
3296
- comportamento mais similiar à quando você definiu sua aplicação em nível mais
3296
+ comportamento mais similar à quando você definiu sua aplicação em nível mais
3297
3297
  alto (também conhecido como estilo Clássico), você pode usar subclasses de
3298
3298
  `Sinatra::Application`:
3299
3299
 
@@ -3567,7 +3567,7 @@ Você pode atingir o escopo do objeto (a classe) de duas maneiras:
3567
3567
 
3568
3568
  ### Escopo de Instância/Requisição
3569
3569
 
3570
- Para toda requsição que chega, uma nova instância da classe da sua aplicação é
3570
+ Para toda requisição que chega, uma nova instância da classe da sua aplicação é
3571
3571
  criada e todos blocos de manipulação rodam nesse escopo. Dentro desse escopo
3572
3572
  você pode acessar os objetos `request` e `session` ou chamar métodos de
3573
3573
  renderização como `erb` ou `haml`. Você pode acessar o escopo da aplicação de
@@ -3599,8 +3599,8 @@ Você tem a ligação ao escopo da requisição dentro dos:
3599
3599
 
3600
3600
  ### Escopo de Delegação
3601
3601
 
3602
- O escopo de delegação apenas encaminha métodos ao escopo da classe. Entretando,
3603
- ele não se comporta exatamente como o escopo da classse já que você não tem a
3602
+ O escopo de delegação apenas encaminha métodos ao escopo da classe. Entretanto,
3603
+ ele não se comporta exatamente como o escopo da classe já que você não tem a
3604
3604
  ligação da classe. Apenas métodos marcados explicitamente para delegação
3605
3605
  estarão disponíveis e você não compartilha variáveis/estado com o escopo da
3606
3606
  classe (leia: você tem um `self` diferente). Você pode explicitamente adicionar
@@ -3636,11 +3636,11 @@ As opções são:
3636
3636
 
3637
3637
  _Parafraseando [esta resposta no StackOverflow](resposta-so) por Konstantin_
3638
3638
 
3639
- Sinatra não impõe nenhum modelo de concorrencia, mas deixa isso como
3639
+ Sinatra não impõe nenhum modelo de concorrência, mas deixa isso como
3640
3640
  responsabilidade do Rack (servidor) subjacente como o Thin, Puma ou WEBrick.
3641
3641
  Sinatra por si só é thread-safe, então não há nenhum problema se um Rack
3642
3642
  handler usar um modelo de thread de concorrência. Isso significaria que ao
3643
- iniciar o servidor, você teria que espeficiar o método de invocação correto
3643
+ iniciar o servidor, você teria que especificar o método de invocação correto
3644
3644
  para o Rack handler específico. Os seguintes exemplos é uma demonstração de
3645
3645
  como iniciar um servidor Thin multi-thread:
3646
3646
 
@@ -3682,7 +3682,7 @@ As seguintes versões do Ruby são oficialmente suportadas:
3682
3682
 
3683
3683
  <dt>JRuby</dt>
3684
3684
  <dd>
3685
- A útlima versão estável lançada do JRuby é oficialmente suportada. Não é
3685
+ A última versão estável lançada do JRuby é oficialmente suportada. Não é
3686
3686
  recomendado usar extensões em C com o JRuby. É recomendado rodar
3687
3687
  <tt>gem install trinidad</tt>.
3688
3688
  </dd>
data/README.pt-pt.md CHANGED
@@ -121,7 +121,7 @@ Arquivos estáticos são disponibilizados a partir do directório
121
121
  `:public_folder`
122
122
 
123
123
  ```ruby
124
- set :public_folder, File.dirname(__FILE__) + '/estatico'
124
+ set :public_folder, __dir__ + '/estatico'
125
125
  ```
126
126
 
127
127
  Note que o nome do directório público não é incluido no URL. Um arquivo
@@ -134,7 +134,7 @@ Templates presumem-se estar localizados sob o directório `./views`. Para
134
134
  utilizar um directório de views diferente:
135
135
 
136
136
  ```ruby
137
- set :views, File.dirname(__FILE__) + '/modelo'
137
+ set :views, __dir__ + '/modelo'
138
138
  ```
139
139
 
140
140
  Uma coisa importante a ser lembrada é que você sempre tem as referências
@@ -757,7 +757,7 @@ Alternativamente, pode adicionar o directório do `sinatra/lib` no
757
757
  `LOAD_PATH` do seu aplicativo:
758
758
 
759
759
  ```ruby
760
- $LOAD_PATH.unshift File.dirname(__FILE__) + '/sinatra/lib'
760
+ $LOAD_PATH.unshift __dir__ + '/sinatra/lib'
761
761
  require 'rubygems'
762
762
  require 'sinatra'
763
763
 
data/README.ru.md CHANGED
@@ -431,7 +431,7 @@ end
431
431
  месторасположение при помощи опции `:public_folder`:
432
432
 
433
433
  ```ruby
434
- set :public_folder, File.dirname(__FILE__) + '/static'
434
+ set :public_folder, __dir__ + '/static'
435
435
  ```
436
436
 
437
437
  Учтите, что имя директории со статическими файлами не включено в URL.
@@ -3089,9 +3089,9 @@ thin --threaded start
3089
3089
 
3090
3090
  Следующие версии Ruby официально поддерживаются:
3091
3091
  <dl>
3092
- <dt>Ruby 2.2</dt>
3092
+ <dt>Ruby 2.3</dt>
3093
3093
  <dd>
3094
- Версия 2.2 полностью поддерживается и рекомендуется. В настоящее время нет
3094
+ Версия 2.3 полностью поддерживается и рекомендуется. В настоящее время нет
3095
3095
  планов отказаться от официальной поддержки.
3096
3096
  </dd>
3097
3097
 
data/README.zh.md CHANGED
@@ -393,7 +393,7 @@ end
393
393
  静态文件从 `./public` 目录提供服务。可以通过设置`:public_folder` 选项设定一个不同的位置:
394
394
 
395
395
  ```ruby
396
- set :public_folder, File.dirname(__FILE__) + '/static'
396
+ set :public_folder, __dir__ + '/static'
397
397
  ```
398
398
 
399
399
  请注意 public 目录名并没有包含在 URL 中。文件 `./public/css/style.css` 可以通过
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.8
1
+ 2.2.0
data/examples/chat.rb CHANGED
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env ruby -I ../lib -I lib
2
2
  # coding: utf-8
3
+ require_relative 'rainbows'
3
4
  require 'sinatra'
4
- set :server, 'thin'
5
+ set :server, :rainbows
5
6
  connections = []
6
7
 
7
8
  get '/' do
@@ -0,0 +1,3 @@
1
+ Rainbows! do
2
+ use :EventMachine
3
+ end
@@ -0,0 +1,20 @@
1
+ require 'rainbows'
2
+
3
+ module Rack
4
+ module Handler
5
+ class Rainbows
6
+ def self.run(app, **options)
7
+ rainbows_options = {
8
+ listeners: ["#{options[:Host]}:#{options[:Port]}"],
9
+ worker_processes: 1,
10
+ timeout: 30,
11
+ config_file: ::File.expand_path('rainbows.conf', __dir__),
12
+ }
13
+
14
+ ::Rainbows::HttpServer.new(app, rainbows_options).start.join
15
+ end
16
+ end
17
+
18
+ register :rainbows, ::Rack::Handler::Rainbows
19
+ end
20
+ end
data/examples/stream.ru CHANGED
@@ -2,10 +2,10 @@
2
2
  #
3
3
  # run *one* of these:
4
4
  #
5
- # rackup -s mongrel stream.ru # gem install mongrel
6
- # thin -R stream.ru start # gem install thin
7
- # unicorn stream.ru # gem install unicorn
8
- # puma stream.ru # gem install puma
5
+ # rackup -s mongrel stream.ru # gem install mongrel
6
+ # unicorn stream.ru # gem install unicorn
7
+ # puma stream.ru # gem install puma
8
+ # rainbows -c rainbows.conf stream.ru # gem install rainbows eventmachine
9
9
 
10
10
  require 'sinatra/base'
11
11