sinatra 2.1.0 → 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.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Sinatra
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/sinatra.svg)](http://badge.fury.io/rb/sinatra)
3
+ [![Gem Version](https://badge.fury.io/rb/sinatra.svg)](https://badge.fury.io/rb/sinatra)
4
4
  [![Build Status](https://secure.travis-ci.org/sinatra/sinatra.svg)](https://travis-ci.org/sinatra/sinatra)
5
5
  [![SemVer](https://api.dependabot.com/badges/compatibility_score?dependency-name=sinatra&package-manager=bundler&version-scheme=semver)](https://dependabot.com/compatibility-score.html?dependency-name=sinatra&package-manager=bundler&version-scheme=semver)
6
6
 
@@ -344,11 +344,11 @@ end
344
344
  ## Return Values
345
345
 
346
346
  The return value of a route block determines at least the response body
347
- passed on to the HTTP client, or at least the next middleware in the
347
+ passed on to the HTTP client or at least the next middleware in the
348
348
  Rack stack. Most commonly, this is a string, as in the above examples.
349
349
  But other values are also accepted.
350
350
 
351
- You can return any object that would either be a valid Rack response, Rack
351
+ You can return an object that would either be a valid Rack response, Rack
352
352
  body object or HTTP status code:
353
353
 
354
354
  * An Array with three elements: `[status (Integer), headers (Hash), response
@@ -372,7 +372,7 @@ get('/') { Stream.new }
372
372
  ```
373
373
 
374
374
  You can also use the `stream` helper method ([described below](#streaming-responses)) to reduce
375
- boiler plate and embed the streaming logic in the route.
375
+ boilerplate and embed the streaming logic in the route.
376
376
 
377
377
  ## Custom Route Matchers
378
378
 
@@ -1201,7 +1201,7 @@ end
1201
1201
  ```
1202
1202
 
1203
1203
  Currently, the following rendering methods accept a block: `erb`, `haml`,
1204
- `liquid`, `slim `, `wlang`. Also the general `render` method accepts a block.
1204
+ `liquid`, `slim `, `wlang`. Also, the general `render` method accepts a block.
1205
1205
 
1206
1206
  ### Inline Templates
1207
1207
 
@@ -1224,7 +1224,7 @@ __END__
1224
1224
  %div.title Hello world.
1225
1225
  ```
1226
1226
 
1227
- NOTE: Inline templates defined in the source file that requires sinatra are
1227
+ NOTE: Inline templates defined in the source file that requires Sinatra are
1228
1228
  automatically loaded. Call `enable :inline_templates` explicitly if you
1229
1229
  have inline templates in other source files.
1230
1230
 
@@ -1434,7 +1434,7 @@ For better security and usability it's
1434
1434
  secret and store it in an environment variable on each host running your
1435
1435
  application so that all of your application instances will share the same
1436
1436
  secret. You should periodically rotate this session secret to a new value.
1437
- Here are some examples of how you might create a 64 byte secret and set it:
1437
+ Here are some examples of how you might create a 64-byte secret and set it:
1438
1438
 
1439
1439
  **Session Secret Generation**
1440
1440
 
@@ -1446,7 +1446,7 @@ $ ruby -e "require 'securerandom'; puts SecureRandom.hex(64)"
1446
1446
  **Session Secret Generation (Bonus Points)**
1447
1447
 
1448
1448
  Use the [sysrandom gem](https://github.com/cryptosphere/sysrandom#readme) to
1449
- prefer use of system RNG facilities to generate random values instead of
1449
+ use the system RNG facilities to generate random values instead of
1450
1450
  userspace `OpenSSL` which MRI Ruby currently defaults to:
1451
1451
 
1452
1452
  ```text
@@ -1472,7 +1472,7 @@ purposes only:
1472
1472
 
1473
1473
  **Session Secret App Config**
1474
1474
 
1475
- Setup your app config to fail-safe to a secure random secret
1475
+ Set up your app config to fail-safe to a secure random secret
1476
1476
  if the `SESSION_SECRET` environment variable is not available.
1477
1477
 
1478
1478
  For bonus points use the [sysrandom
@@ -1593,7 +1593,7 @@ matching route. If no matching route is found, a 404 is returned.
1593
1593
 
1594
1594
  ### Triggering Another Route
1595
1595
 
1596
- Sometimes `pass` is not what you want, instead you would like to get the
1596
+ Sometimes `pass` is not what you want, instead, you would like to get the
1597
1597
  result of calling another route. Simply use `call` to achieve this:
1598
1598
 
1599
1599
  ```ruby
@@ -1616,13 +1616,13 @@ than a duplicate, use `call!` instead of `call`.
1616
1616
 
1617
1617
  Check out the Rack specification if you want to learn more about `call`.
1618
1618
 
1619
- ### Setting Body, Status Code and Headers
1619
+ ### Setting Body, Status Code, and Headers
1620
1620
 
1621
1621
  It is possible and recommended to set the status code and response body with
1622
- the return value of the route block. However, in some scenarios you might
1622
+ the return value of the route block. However, in some scenarios, you might
1623
1623
  want to set the body at an arbitrary point in the execution flow. You can do
1624
1624
  so with the `body` helper method. If you do so, you can use that method from
1625
- there on to access the body:
1625
+ thereon to access the body:
1626
1626
 
1627
1627
  ```ruby
1628
1628
  get '/foo' do
@@ -1645,7 +1645,7 @@ get '/foo' do
1645
1645
  headers \
1646
1646
  "Allow" => "BREW, POST, GET, PROPFIND, WHEN",
1647
1647
  "Refresh" => "Refresh: 20; https://ietf.org/rfc/rfc2324.txt"
1648
- body "I'm a tea pot!"
1648
+ body "I'm a teapot!"
1649
1649
  end
1650
1650
  ```
1651
1651
 
@@ -1678,7 +1678,7 @@ also be used to increase throughput if some but not all content depends on a
1678
1678
  slow resource.
1679
1679
 
1680
1680
  Note that the streaming behavior, especially the number of concurrent
1681
- requests, highly depends on the web server used to serve the application.
1681
+ requests, highly depends on the webserver used to serve the application.
1682
1682
  Some servers might not even support streaming at all. If the server does not
1683
1683
  support streaming, the body will be sent all at once after the block passed
1684
1684
  to `stream` finishes executing. Streaming does not work at all with Shotgun.
@@ -1763,7 +1763,7 @@ class MyApp < Sinatra::Base
1763
1763
  end
1764
1764
  ```
1765
1765
 
1766
- To avoid any logging middleware to be set up, set the `logging` setting to
1766
+ To avoid any logging middleware to be set up, set the `logging` option to
1767
1767
  `nil`. However, keep in mind that `logger` will in that case return `nil`. A
1768
1768
  common use case is when you want to set your own logger. Sinatra will use
1769
1769
  whatever it will find in `env['rack.logger']`.
@@ -1797,7 +1797,7 @@ Haml:
1797
1797
  %a{:href => url('/foo')} foo
1798
1798
  ```
1799
1799
 
1800
- It takes reverse proxies and Rack routers into account, if present.
1800
+ It takes reverse proxies and Rack routers into account - if present.
1801
1801
 
1802
1802
  This method is also aliased to `to` (see [below](#browser-redirect) for an example).
1803
1803
 
@@ -2147,7 +2147,7 @@ helpers do
2147
2147
  end
2148
2148
  ```
2149
2149
 
2150
- You can also easily wrap this up in an extension and share with others!
2150
+ You can also easily wrap this up in an extension and share it with others!
2151
2151
 
2152
2152
  Note that `find_template` does not check if the file really exists but
2153
2153
  rather calls the given block for all possible paths. This is not a
@@ -2236,7 +2236,7 @@ set :protection, :except => [:path_traversal, :session_hijacking]
2236
2236
  By default, Sinatra will only set up session based protection if `:sessions`
2237
2237
  have been enabled. See '[Using Sessions](#using-sessions)'. Sometimes you may want to set up
2238
2238
  sessions "outside" of the Sinatra app, such as in the config.ru or with a
2239
- separate `Rack::Builder` instance. In that case you can still set up session
2239
+ separate `Rack::Builder` instance. In that case, you can still set up session
2240
2240
  based protection by passing the `:session` option:
2241
2241
 
2242
2242
  ```ruby
@@ -2293,7 +2293,7 @@ set :protection, :session => true
2293
2293
  <dd>Encoding to assume if unknown (defaults to <tt>"utf-8"</tt>).</dd>
2294
2294
 
2295
2295
  <dt>dump_errors</dt>
2296
- <dd>Display errors in the log.</dd>
2296
+ <dd>Display errors in the log. Enabled by default unless environment is "test".</dd>
2297
2297
 
2298
2298
  <dt>environment</dt>
2299
2299
  <dd>
@@ -2717,7 +2717,7 @@ modular application.
2717
2717
  The main disadvantage of using the classic style rather than the modular
2718
2718
  style is that you will only have one Sinatra application per Ruby
2719
2719
  process. If you plan to use more than one, switch to the modular style.
2720
- There is no reason you cannot mix the modular and the classic styles.
2720
+ There is no reason you cannot mix the modular and classic styles.
2721
2721
 
2722
2722
  If switching from one style to the other, you should be aware of
2723
2723
  slightly different default settings:
@@ -2846,7 +2846,7 @@ style for running with a `config.ru`.**
2846
2846
  ### Using Sinatra as Middleware
2847
2847
 
2848
2848
  Not only is Sinatra able to use other Rack middleware, any Sinatra
2849
- application can in turn be added in front of any Rack endpoint as
2849
+ application can, in turn, be added in front of any Rack endpoint as
2850
2850
  middleware itself. This endpoint could be another Sinatra application,
2851
2851
  or any other Rack-based application (Rails/Hanami/Roda/...):
2852
2852
 
@@ -2937,7 +2937,7 @@ available.
2937
2937
  Every Sinatra application corresponds to a subclass of `Sinatra::Base`.
2938
2938
  If you are using the top-level DSL (`require 'sinatra'`), then this
2939
2939
  class is `Sinatra::Application`, otherwise it is the subclass you
2940
- created explicitly. At class level you have methods like `get` or
2940
+ created explicitly. At the class level, you have methods like `get` or
2941
2941
  `before`, but you cannot access the `request` or `session` objects, as
2942
2942
  there is only a single application class for all requests.
2943
2943
 
@@ -2960,7 +2960,7 @@ You have the application scope binding inside:
2960
2960
  * Your application class body
2961
2961
  * Methods defined by extensions
2962
2962
  * The block passed to `helpers`
2963
- * Procs/blocks used as value for `set`
2963
+ * Procs/blocks used as a value for `set`
2964
2964
  * The block passed to `Sinatra.new`
2965
2965
 
2966
2966
  You can reach the scope object (the class) like this:
@@ -3011,7 +3011,7 @@ do not share variables/state with the class scope (read: you have a different
3011
3011
 
3012
3012
  You have the delegate scope binding inside:
3013
3013
 
3014
- * The top level binding, if you did `require "sinatra"`
3014
+ * The top-level binding, if you did `require "sinatra"`
3015
3015
  * An object extended with the `Sinatra::Delegator` mixin
3016
3016
 
3017
3017
  Have a look at the code for yourself: here's the
@@ -3044,7 +3044,7 @@ _Paraphrasing from
3044
3044
  [this StackOverflow answer](https://stackoverflow.com/a/6282999/5245129)
3045
3045
  by Konstantin_
3046
3046
 
3047
- Sinatra doesn't impose any concurrency model, but leaves that to the
3047
+ Sinatra doesn't impose any concurrency model but leaves that to the
3048
3048
  underlying Rack handler (server) like Puma or WEBrick. Sinatra
3049
3049
  itself is thread-safe, so there won't be any problem if the Rack handler
3050
3050
  uses a threaded model of concurrency. This would mean that when starting
@@ -3105,7 +3105,7 @@ The following Ruby versions are officially supported:
3105
3105
  </dd>
3106
3106
  </dl>
3107
3107
 
3108
- Versions of Ruby prior to 2.3 are no longer supported as of Sinatra 2.1.0.
3108
+ Versions of Ruby before 2.3 are no longer supported as of Sinatra 2.1.0.
3109
3109
 
3110
3110
  We also keep an eye on upcoming Ruby versions.
3111
3111
 
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`
@@ -447,7 +447,7 @@ Arquivos estáticos são disponibilizados a partir do diretório
447
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>