diff --git a/README.pt-br.md b/README.pt-br.md index 52928b9d5c..52dfbec106 100644 --- a/README.pt-br.md +++ b/README.pt-br.md @@ -263,7 +263,7 @@ get '/posts' do # corresponde a "GET /posts?titulo=foo&autor=bar" titulo = params['titulo'] autor = params['autor'] - # utiliza as variaveis titulo e autor; a query é opicional para a rota /posts + # utiliza as variáveis titulo e autor; a query é opcional para a rota /posts end ``` @@ -362,10 +362,10 @@ Você pode retornar uma resposta válida ou um objeto para o Rack, sendo eles de qualquer tipo de objeto que queira. Além disso, é possível retornar um código de status HTTP. -* Um array com três elementros: `[status (Integer), cabecalho (Hash), +* Um array com três elementos: `[status (Integer), cabeçalho (Hash), corpo da resposta (responde à #each)]` -* Um array com dois elementros: `[status (Integer), corpo da resposta +* Um array com dois elementos: `[status (Integer), corpo da resposta (responde à #each)]` * 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 set :public_folder, __dir__ + '/estatico' ``` -Note que o nome do diretório público não é incluido na URL. Um arquivo +Note que o nome do diretório público não é incluído na URL. Um arquivo `./public/css/style.css` é disponibilizado como `http://exemplo.com/css/style.css`. @@ -541,7 +541,7 @@ Opções disponíveis:
content_type
- O *Content-Type* que o template produz. O padrão depente + O *Content-Type* que o template produz. O padrão depende da linguagem de template utilizada.
@@ -604,9 +604,9 @@ end ### Linguagens de template disponíveis -Algumas linguagens possuem multiplas implementações. Para especificar qual +Algumas linguagens possuem múltiplas implementações. Para especificar qual implementação deverá ser utilizada (e para ser *thread-safe*), você deve -requere-la primeiro: +requerê-la primeiro: ```ruby require 'rdiscount' # ou require 'bluecloth' @@ -654,7 +654,7 @@ get('/') { markdown :index } - +
DependêciaDependência builder @@ -806,7 +806,7 @@ mesmo. Portanto normalmente é utilizado junto a outra engine de renderização: erb :overview, :locals => { :text => markdown(:introducao) } ``` -Note que vcoê também pode chamar o método `markdown` dentro de outros templates: +Note que você também pode chamar o método `markdown` dentro de outros templates: ```ruby %h1 Olá do Haml! @@ -840,7 +840,7 @@ mesmo. Portanto normalmente é utilizado junto a outra engine de renderização: erb :overview, :locals => { :text => textile(:introducao) } ``` -Note que vcoê também pode chamar o método `textile` dentro de outros templates: +Note que você também pode chamar o método `textile` dentro de outros templates: ```ruby %h1 Olá do Haml! @@ -876,7 +876,7 @@ mesmo. Portanto normalmente é utilizado junto a outra engine de renderização: erb :overview, :locals => { :text => rdoc(:introducao) } ``` -Note que vcoê também pode chamar o método `rdoc` dentro de outros templates: +Note que você também pode chamar o método `rdoc` dentro de outros templates: ```ruby %h1 Olá do Haml! @@ -1108,7 +1108,7 @@ deve-se passar a `:layout_engine` como opção.
-Antes que vcoê possa utilizar o template Stylus primeiro você deve carregar +Antes que você possa utilizar o template Stylus primeiro você deve carregar `stylus` e `stylus/tilt`: ```ruby @@ -1381,7 +1381,7 @@ after do end ``` -Nota: A não ser que você use o metódo `body` ao invés de apenas retornar uma +Nota: A não ser que você use o método `body` ao invés de apenas retornar uma String das rotas, o corpo ainda não estará disponível no filtro after, uma vez que é gerado depois. @@ -1466,7 +1466,7 @@ Para melhorar a segurança, os dados da sessão no cookie são assinado com uma segredo de sessão usando `HMAC-SHA1`. Esse segredo de sessão deve ser, de preferência, um valor criptograficamente randômico, seguro, de um comprimento apropriado no qual `HMAC-SHA1` é maior ou igual a 64 bytes (512 bits, 128 -carecteres hexadecimais). Você será avisado para não usar uma chave secreta +caracteres hexadecimais). Você será avisado para não usar uma chave secreta menor que 32 bytes de randomicidade (256 bits, 64 caracteres hexadecimais). Portanto, é **muito importante** que você não invente o segredo, mas use um 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`. É possível e recomendado definir o código de status e o corpo da resposta com o valor retornado do bloco da rota. Entretanto, em alguns cenários você pode querer definir o corpo em um ponto arbitrário do fluxo de execução. Você pode -fazer isso com o metódo auxiliar `body`. Se você fizer isso, poderá usar esse -metódo de agora em diante para acessar o body: +fazer isso com o método auxiliar `body`. Se você fizer isso, poderá usar esse +método de agora em diante para acessar o body: ```ruby get '/foo' do @@ -1689,7 +1689,7 @@ after do end ``` -Também é possivel passar um bloco para `body`, que será executado pelo +Também é possível passar um bloco para `body`, que será executado pelo manipulador Rack (isso pode ser usado para implementar transmissão, [veja "Retorno de Valores"](#retorno-de-valores)). @@ -1761,21 +1761,21 @@ get '/assinar' do end end -post '/:messagem' do +post '/:mensagem' do conexoes.each do |saida| # notifica o cliente que uma nova mensagem chegou - saida << params['messagem'] << "\n" + saida << params['mensagem'] << "\n" # indica ao cliente para se conectar novamente saida.close end # confirma - "messagem recebida" + "mensagem recebida" end ``` -Também é possivel para o cliente fechar a conexão quando está tentando escrever +Também é possível para o cliente fechar a conexão quando está tentando escrever para o socket. Devido a isso, é recomendado checar `out.closed?` antes de tentar escrever. @@ -1792,7 +1792,7 @@ end ``` Esse logger irá automaticamente botar as configurações de log do manipulador -Rack na sua conta. Se a produção de logs estiver desabilitads, esse método +Rack na sua conta. Se a produção de logs estiver desabilitada, esse método retornará um objeto dummy, então você não terá que se preocupar com suas rotas e filtros. @@ -1837,7 +1837,7 @@ end ### Gerando URLs -Para gerar URLs você deve usar o metódo auxiliar `url` no Haml: +Para gerar URLs você deve usar o método auxiliar `url` no Haml: ```ruby %a{:href => url('/foo')} foo @@ -1850,7 +1850,7 @@ Esse método é também apelidado para `to` (veja ### Redirecionamento do Browser -Você pode lançar um redirecionamento no browser com o metódo auxiliar +Você pode lançar um redirecionamento no browser com o método auxiliar `redirect`: ```ruby @@ -1859,7 +1859,7 @@ get '/foo' do end ``` -Quaisquer paramêtros adicionais são interpretados como argumentos passados +Quaisquer parâmetros adicionais são interpretados como argumentos passados ao `halt`: ```ruby @@ -2000,7 +2000,7 @@ etag '', :new_resource => true, :kind => :weak ### Enviando Arquivos Para retornar os conteúdos de um arquivo como as resposta, você pode usar o -metódo auxiliar `send_file`: +método auxiliar `send_file`: ```ruby get '/' do @@ -2043,14 +2043,14 @@ As opções são: Código de status a ser enviado. Útil quando está se enviando um arquivo estático como uma página de erro. Se suportado pelo handler do Rack, outros meios além de transmissão do processo do Ruby serão usados. - So você usar esse metódo auxiliar, o Sinatra irá automaticamente lidar com + So você usar esse método auxiliar, o Sinatra irá automaticamente lidar com requisições de alcance. -### Acessando o Objeto da Requisção +### Acessando o Objeto da Requisição -O objeto vindo da requisição pode ser acessado do nível de requsição (filtros, +O objeto vindo da requisição pode ser acessado do nível de requisição (filtros, rotas, manipuladores de erro) através do método `request`: ```ruby @@ -2070,9 +2070,9 @@ get '/foo' do request.content_length # tamanho do request.body request.media_type # tipo de mídia of request.body request.host # "exemplo.com" - request.get? # true (metodo similar para outros tipos de requisição) + request.get? # true (método similar para outros tipos de requisição) request.form_data? # false - request["algum_ param"] # valor do paramêtro 'algum_param'. [] é um atalho para o hash de parametros + request["algum_ param"] # valor do parâmetro 'algum_param'. [] é um atalho para o hash de parâmetros request.referrer # a referência do cliente ou '/' request.user_agent # agente de usuário (usado por :agent condition) request.cookies # hash dos cookies do browser @@ -2095,7 +2095,7 @@ get "/" do "todas requisições acabam aqui" end ``` -`request.body` é uma ES ou um objeo StringIO: +`request.body` é uma ES ou um objeto StringIO: ```ruby post "/api" do @@ -2108,7 +2108,7 @@ end ### Anexos Você pode usar o método auxiliar `attachment` para dizer ao navegador que a -reposta deve ser armazenada no disco no lugar de ser exibida no browser: +resposta deve ser armazenada no disco no lugar de ser exibida no browser: ```ruby get '/' do @@ -2208,8 +2208,8 @@ realmente maluco. É possível e recomendado definir o código de status e o corpo da resposta com o valor retornado do bloco da rota. Entretanto, em alguns cenários você pode querer definir o corpo em um ponto arbitrário do fluxo de execução. Você pode -fazer isso com o metódo auxiliar `body`. Se você fizer isso, poderá usar esse -metódo de agora em diante para acessar o body: +fazer isso com o método auxiliar `body`. Se você fizer isso, poderá usar esse +método de agora em diante para acessar o body: ```ruby get '/foo' do @@ -2221,7 +2221,7 @@ after do end ``` -Também é possivel passar um bloco para `body`, que será executado pelo +Também é possível passar um bloco para `body`, que será executado pelo manipulador Rack (isso pode ser usado para implementar transmissão, [veja "Retorno de Valores"](#retorno-de-valores)). @@ -2307,7 +2307,7 @@ post '/:messagem' do end ``` -Também é possivel para o cliente fechar a conexão quando está tentando escrever +Também é possível para o cliente fechar a conexão quando está tentando escrever para o socket. Devido a isso, é recomendado checar `out.closed?` antes de tentar escrever. @@ -2324,7 +2324,7 @@ end ``` Esse logger irá automaticamente botar as configurações de log do manipulador -Rack na sua conta. Se a produção de logs estiver desabilitads, esse método +Rack na sua conta. Se a produção de logs estiver desabilitada, esse método retornará um objeto dummy, então você não terá que se preocupar com suas rotas e filtros. @@ -2369,7 +2369,7 @@ end ### Gerando URLs -Para gerar URLs você deve usar o metódo auxiliar `url` no Haml: +Para gerar URLs você deve usar o método auxiliar `url` no Haml: ```ruby %a{:href => url('/foo')} foo @@ -2382,7 +2382,7 @@ Esse método é também apelidado para `to` (veja ### Redirecionamento do Browser -Você pode lançar um redirecionamento no browser com o metódo auxiliar +Você pode lançar um redirecionamento no browser com o método auxiliar `redirect`: ```ruby @@ -2391,7 +2391,7 @@ get '/foo' do end ``` -Quaisquer paramêtros adicionais são interpretados como argumentos passados ao +Quaisquer parâmetros adicionais são interpretados como argumentos passados ao `halt`: ```ruby @@ -2532,7 +2532,7 @@ etag '', :new_resource => true, :kind => :weak ### Enviando Arquivos Para retornar os conteúdos de um arquivo como as resposta, você pode usar o -metódo auxiliar `send_file`: +método auxiliar `send_file`: ```ruby get '/' do @@ -2575,14 +2575,14 @@ As opções são: Código de status a ser enviado. Útil quando está se enviando um arquivo estático como uma página de erro. Se suportado pelo handler do Rack, outros meios além de transmissão do processo do Ruby serão usados. - So você usar esse metódo auxiliar, o Sinatra irá automaticamente lidar + So você usar esse método auxiliar, o Sinatra irá automaticamente lidar com requisições de alcance. ### Acessando o Objeto da Requisção -O objeto vindo da requisição pode ser acessado do nível de requsição (filtros, +O objeto vindo da requisição pode ser acessado do nível de requisição (filtros, rotas, manipuladores de erro) através do método `request`: ```ruby @@ -2604,7 +2604,7 @@ get '/foo' do request.host # "exemplo.com" request.get? # true (metodo similar para outros tipos de requisição) request.form_data? # false - request["algum_ param"] # valor do paramêtro 'algum_param'. [] é um atalho para o hash de parametros + request["algum_ param"] # valor do parâmetro 'algum_param'. [] é um atalho para o hash de parâmetros request.referrer # a referência do cliente ou '/' request.user_agent # agente de usuário (usado por :agent condition) request.cookies # hash dos cookies do browser @@ -2627,7 +2627,7 @@ get "/" do "todas requisições acabam aqui" end ``` -`request.body` é uma ES ou um objeo StringIO: +`request.body` é uma ES ou um objeto StringIO: ```ruby post "/api" do @@ -2851,7 +2851,7 @@ set :protection, :session => true
add_charset
Para tipos Mime o método auxiliar content_type irá - automaticamente adicionar a informção de codificação. Você deve adcionar + automaticamente adicionar a informação de codificação. Você deve adicionar isto no lugar de sobrescrever essa opção: settings.add_charset << "application/foobar"
@@ -2980,7 +2980,7 @@ set :protection, :session => true server_settings, tais como SSLEnable ou SSLVerifyClient. Entretanto, servidores web como Puma e Thin não suportam isso, então você pode definir server_settings como um - metódo quando chamar configure. + método quando chamar configure.
sessions
@@ -3065,7 +3065,7 @@ podem ser definidos através da variável de ambiente `APP_ENV`. O valor padrão `"development"`. No ambiente `"development"` todos os templates são recarregados entre as requisições e manipuladores especiais como `not_found` e `error` exibem relatórios de erros no seu navegador. Nos ambientes de -`"production"` e `"test"`, os templates são guardos em cache por padrão. +`"production"` e `"test"`, os templates são guardados em cache por padrão. Para rodar diferentes ambientes, defina a variável de ambiente `APP_ENV`: @@ -3205,12 +3205,12 @@ use Rack::Auth::Basic do |usuario, senha| end ``` -O Rack é distribuido com uma variedade de middleware padrões para logs, +O Rack é distribuído com uma variedade de middleware padrões para logs, debugs, rotas de URL, autenticação, e manipuladores de sessão. Sinatra utilizada muitos desses componentes automaticamente baseando sobre configuração, então, tipicamente você não tem `use` explicitamente. -Você pode achar middlwares utéis em +Você pode achar middlewares utéis em [rack](https://github.com/rack/rack/tree/master/lib/rack), [rack-contrib](https://github.com/rack/rack-contrib#readme), ou em [Rack wiki](https://github.com/rack/rack/wiki/List-of-Middleware). @@ -3238,7 +3238,7 @@ class MinhaAplicacaoTeste < Minitest::Test assert_equal 'Ola Mundo!', last_response.body end - def teste_com_parametros + def teste_com_parâmetros get '/atender', :name => 'Frank' assert_equal 'Olá Frank!', last_response.bodymeet end @@ -3256,7 +3256,7 @@ NOTA: Se você está usando o Sinatra no estilo modular, substitua ## Sinatra::Base - Middleware, Bibliotecas e aplicativos modulares Definir sua aplicação em um nível superior de trabalho funciona bem para -micro aplicativos, mas tem consideráveis incovenientes na construção de +micro aplicativos, mas tem consideráveis inconvenientes na construção de componentes reutilizáveis como um middleware Rack, metal Rails, bibliotecas simples como um componente de servidor, ou mesmo extensões 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`. padrão, incluindo o servidor embutido. Veja [Opções e Configurações](http://www.sinatrarb.com/configuration.html) para detalhes de opções disponíveis e seus comportamentos. Se você quer -comportamento mais similiar à quando você definiu sua aplicação em nível mais +comportamento mais similar à quando você definiu sua aplicação em nível mais alto (também conhecido como estilo Clássico), você pode usar subclasses de `Sinatra::Application`: @@ -3567,7 +3567,7 @@ Você pode atingir o escopo do objeto (a classe) de duas maneiras: ### Escopo de Instância/Requisição -Para toda requsição que chega, uma nova instância da classe da sua aplicação é +Para toda requisição que chega, uma nova instância da classe da sua aplicação é criada e todos blocos de manipulação rodam nesse escopo. Dentro desse escopo você pode acessar os objetos `request` e `session` ou chamar métodos de 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: ### Escopo de Delegação -O escopo de delegação apenas encaminha métodos ao escopo da classe. Entretando, -ele não se comporta exatamente como o escopo da classse já que você não tem a +O escopo de delegação apenas encaminha métodos ao escopo da classe. Entretanto, +ele não se comporta exatamente como o escopo da classe já que você não tem a ligação da classe. Apenas métodos marcados explicitamente para delegação estarão disponíveis e você não compartilha variáveis/estado com o escopo da classe (leia: você tem um `self` diferente). Você pode explicitamente adicionar @@ -3636,11 +3636,11 @@ As opções são: _Parafraseando [esta resposta no StackOverflow](resposta-so) por Konstantin_ -Sinatra não impõe nenhum modelo de concorrencia, mas deixa isso como +Sinatra não impõe nenhum modelo de concorrência, mas deixa isso como responsabilidade do Rack (servidor) subjacente como o Thin, Puma ou WEBrick. Sinatra por si só é thread-safe, então não há nenhum problema se um Rack handler usar um modelo de thread de concorrência. Isso significaria que ao -iniciar o servidor, você teria que espeficiar o método de invocação correto +iniciar o servidor, você teria que especificar o método de invocação correto para o Rack handler específico. Os seguintes exemplos é uma demonstração de como iniciar um servidor Thin multi-thread: @@ -3682,7 +3682,7 @@ As seguintes versões do Ruby são oficialmente suportadas:
JRuby
- A útlima versão estável lançada do JRuby é oficialmente suportada. Não é + A última versão estável lançada do JRuby é oficialmente suportada. Não é recomendado usar extensões em C com o JRuby. É recomendado rodar gem install trinidad.