sinatra 1.4.6 → 1.4.7

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.

@@ -4,10 +4,10 @@
4
4
  pode estar desatualizado.*
5
5
 
6
6
  Sinatra é uma
7
- [DSL](http://pt.wikipedia.org/wiki/Linguagem_de_domínio_específico) para
7
+ [DSL](https://pt.wikipedia.org/wiki/Linguagem_de_domínio_específico) para
8
8
  criar rapidamente aplicações web em Ruby com o mínimo de esforço:
9
9
 
10
- ``` ruby
10
+ ```ruby
11
11
  # minhaapp.rb
12
12
  require 'rubygems'
13
13
  require 'sinatra'
@@ -18,19 +18,19 @@ end
18
18
 
19
19
  Instale a gem e execute com:
20
20
 
21
- ``` shell
21
+ ```shell
22
22
  sudo gem install sinatra
23
23
  ruby minhaapp.rb
24
24
  ```
25
25
 
26
- Aceda em: [localhost:4567](http://localhost:4567)
26
+ Aceda em: [http://localhost:4567](http://localhost:4567)
27
27
 
28
28
  ## Rotas
29
29
 
30
30
  No Sinatra, uma rota é um metodo HTTP associado a uma URL correspondente
31
31
  padrão. Cada rota é associada a um bloco:
32
32
 
33
- ``` ruby
33
+ ```ruby
34
34
  get '/' do
35
35
  .. mostrar algo ..
36
36
  end
@@ -54,7 +54,7 @@ Rotas são encontradas na ordem em que são definidas. A primeira rota que
54
54
  Padrões de rota podem incluir parâmetros nomeados, acessíveis através da
55
55
  hash `params`:
56
56
 
57
- ``` ruby
57
+ ```ruby
58
58
  get '/ola/:nome' do
59
59
  # corresponde a "GET /ola/foo" e "GET /ola/bar"
60
60
  # params['nome'] é 'foo' ou 'bar'
@@ -64,7 +64,7 @@ end
64
64
 
65
65
  Pode também aceder a parâmetros nomeados através do bloco de parâmetros:
66
66
 
67
- ``` ruby
67
+ ```ruby
68
68
  get '/ola/:nome' do |n|
69
69
  "Olá #{n}!"
70
70
  end
@@ -73,7 +73,7 @@ end
73
73
  Padrões de rota podem também incluir parâmetros splat (asteriscos),
74
74
  acessíveis através do array `params['splat']`.
75
75
 
76
- ``` ruby
76
+ ```ruby
77
77
  get '/diga/*/ao/*' do
78
78
  # corresponde a /diga/ola/ao/mundo
79
79
  params['splat'] # => ["ola", "mundo"]
@@ -87,7 +87,7 @@ end
87
87
 
88
88
  Rotas correspondem-se com expressões regulares:
89
89
 
90
- ``` ruby
90
+ ```ruby
91
91
  get /\A\/ola\/([\w]+)\z/ do
92
92
  "Olá, #{params['captures'].first}!"
93
93
  end
@@ -95,7 +95,7 @@ end
95
95
 
96
96
  Ou com um bloco de parâmetro:
97
97
 
98
- ``` ruby
98
+ ```ruby
99
99
  get %r{/ola/([\w]+)} do |c|
100
100
  "Olá, #{c}!"
101
101
  end
@@ -104,7 +104,7 @@ end
104
104
  Rotas podem incluir uma variedade de condições correspondentes, por
105
105
  exemplo, o agente usuário:
106
106
 
107
- ``` ruby
107
+ ```ruby
108
108
  get '/foo', :agent => /Songbird (\d\.\d)[\d\/]*?/ do
109
109
  "Você está a utilizar a versão #{params['agent'][0]} do Songbird."
110
110
  end
@@ -120,7 +120,7 @@ Arquivos estáticos são disponibilizados a partir do directório
120
120
  `./public`. Você pode especificar um local diferente através da opção
121
121
  `:public_folder`
122
122
 
123
- ``` ruby
123
+ ```ruby
124
124
  set :public_folder, File.dirname(__FILE__) + '/estatico'
125
125
  ```
126
126
 
@@ -133,7 +133,7 @@ Note que o nome do directório público não é incluido no URL. Um arquivo
133
133
  Templates presumem-se estar localizados sob o directório `./views`. Para
134
134
  utilizar um directório de views diferente:
135
135
 
136
- ``` ruby
136
+ ```ruby
137
137
  set :views, File.dirname(__FILE__) + '/modelo'
138
138
  ```
139
139
 
@@ -146,7 +146,7 @@ processar qualquer string passada directamente para elas.
146
146
 
147
147
  A gem/biblioteca haml é necessária para renderizar templates HAML:
148
148
 
149
- ``` ruby
149
+ ```ruby
150
150
  # É necessário requerir 'haml' na aplicação.
151
151
  require 'haml'
152
152
 
@@ -158,13 +158,13 @@ end
158
158
  Renderiza `./views/index.haml`.
159
159
 
160
160
  [Opções
161
- Haml](http://haml.info/docs/yardoc/file.HAML_REFERENCE.html#options)
161
+ Haml](http://haml.info/docs/yardoc/file.REFERENCE.html#options)
162
162
  podem ser definidas globalmente através das configurações do sinatra,
163
163
  veja [Opções e
164
164
  Configurações](http://www.sinatrarb.com/configuration.html), e substitua
165
165
  em uma requisição individual.
166
166
 
167
- ``` ruby
167
+ ```ruby
168
168
  set :haml, {:format => :html5 } # o formato padrão do Haml é :xhtml
169
169
 
170
170
  get '/' do
@@ -174,7 +174,7 @@ end
174
174
 
175
175
  ### Erb Templates
176
176
 
177
- ``` ruby
177
+ ```ruby
178
178
  # É necessário requerir 'erb' na aplicação.
179
179
  require 'erb'
180
180
 
@@ -189,7 +189,7 @@ Renderiza `./views/index.erb`
189
189
 
190
190
  A gem/biblioteca erubis é necessária para renderizar templates erubis:
191
191
 
192
- ``` ruby
192
+ ```ruby
193
193
  # É necessário requerir 'erubis' na aplicação.
194
194
  require 'erubis'
195
195
 
@@ -204,7 +204,7 @@ Renderiza `./views/index.erubis`
204
204
 
205
205
  A gem/biblioteca builder é necessária para renderizar templates builder:
206
206
 
207
- ``` ruby
207
+ ```ruby
208
208
  # É necessário requerir 'builder' na aplicação.
209
209
  require 'builder'
210
210
 
@@ -220,7 +220,7 @@ Renderiza `./views/index.builder`.
220
220
 
221
221
  A gem/biblioteca sass é necessária para renderizar templates sass:
222
222
 
223
- ``` ruby
223
+ ```ruby
224
224
  # É necessário requerir 'haml' ou 'sass' na aplicação.
225
225
  require 'sass'
226
226
 
@@ -233,13 +233,13 @@ end
233
233
  Renderiza `./views/stylesheet.sass`.
234
234
 
235
235
  [Opções
236
- Sass](http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#options)
236
+ Sass](http://sass-lang.com/documentation/file.SASS_REFERENCE.html#options)
237
237
  podem ser definidas globalmente através das configurações do sinatra,
238
238
  veja [Opções e
239
239
  Configurações](http://www.sinatrarb.com/configuration.html), e substitua
240
240
  em uma requisição individual.
241
241
 
242
- ``` ruby
242
+ ```ruby
243
243
  set :sass, {:style => :compact } # o estilo padrão do Sass é :nested
244
244
 
245
245
  get '/stylesheet.css' do
@@ -252,7 +252,7 @@ end
252
252
 
253
253
  A gem/biblioteca less é necessária para renderizar templates Less:
254
254
 
255
- ``` ruby
255
+ ```ruby
256
256
  # É necessário requerir 'less' na aplicação.
257
257
  require 'less'
258
258
 
@@ -266,7 +266,7 @@ Renderiza `./views/stylesheet.less`.
266
266
 
267
267
  ### Templates Inline
268
268
 
269
- ``` ruby
269
+ ```ruby
270
270
  get '/' do
271
271
  haml '%div.title Olá Mundo'
272
272
  end
@@ -280,7 +280,7 @@ Templates são avaliados dentro do mesmo contexto que os manipuladores de
280
280
  rota. Variáveis de instância definidas em rotas manipuladas são
281
281
  directamente acedidas por templates:
282
282
 
283
- ``` ruby
283
+ ```ruby
284
284
  get '/:id' do
285
285
  @foo = Foo.find(params['id'])
286
286
  haml '%h1= @foo.nome'
@@ -289,7 +289,7 @@ end
289
289
 
290
290
  Ou, especifique um hash explícito para variáveis locais:
291
291
 
292
- ``` ruby
292
+ ```ruby
293
293
  get '/:id' do
294
294
  foo = Foo.find(params['id'])
295
295
  haml '%h1= foo.nome', :locals => { :foo => foo }
@@ -303,7 +303,7 @@ Isso é tipicamente utilizado quando renderizamos templates parciais
303
303
 
304
304
  Templates podem ser definidos no final do arquivo fonte(.rb):
305
305
 
306
- ``` ruby
306
+ ```ruby
307
307
  require 'rubygems'
308
308
  require 'sinatra'
309
309
 
@@ -330,7 +330,7 @@ templates inline no outro arquivo fonte.
330
330
  Templates também podem ser definidos utilizando o método top-level
331
331
  `template`:
332
332
 
333
- ``` ruby
333
+ ```ruby
334
334
  template :layout do
335
335
  "%html\n =yield\n"
336
336
  end
@@ -348,7 +348,7 @@ Se existir um template com nome “layout”, ele será utilizado sempre que
348
348
  um template for renderizado. Pode desactivar layouts usando
349
349
  `:layout => false`.
350
350
 
351
- ``` ruby
351
+ ```ruby
352
352
  get '/' do
353
353
  haml :index, :layout => !request.xhr?
354
354
  end
@@ -359,7 +359,7 @@ end
359
359
  Use o método de alto nível `helpers` para definir métodos auxiliares
360
360
  para utilizar em manipuladores de rotas e modelos:
361
361
 
362
- ``` ruby
362
+ ```ruby
363
363
  helpers do
364
364
  def bar(nome)
365
365
  "#{nome}bar"
@@ -378,7 +378,7 @@ da requisição e podem modificar a requisição e a reposta. Variáveis de
378
378
  instância definidas nos filtros são acedidas através de rotas e
379
379
  templates:
380
380
 
381
- ``` ruby
381
+ ```ruby
382
382
  before do
383
383
  @nota = 'Olá!'
384
384
  request.path_info = '/foo/bar/baz'
@@ -395,7 +395,7 @@ requisição e também podem modificar o pedido e a resposta. Variáveis de
395
395
  instância definidas nos filtros before e rotas são acedidas através dos
396
396
  filtros after:
397
397
 
398
- ``` ruby
398
+ ```ruby
399
399
  after do
400
400
  puts response.status
401
401
  end
@@ -404,7 +404,7 @@ end
404
404
  Filtros opcionalmente têm um padrão, fazendo com que sejam avaliados
405
405
  somente se o caminho do pedido coincidir com esse padrão:
406
406
 
407
- ``` ruby
407
+ ```ruby
408
408
  before '/protected/*' do
409
409
  autenticar!
410
410
  end
@@ -419,31 +419,31 @@ end
419
419
  Para parar imediatamente uma requisição dentro de um filtro ou rota
420
420
  utilize:
421
421
 
422
- ``` ruby
422
+ ```ruby
423
423
  halt
424
424
  ```
425
425
 
426
426
  Pode também especificar o status ao parar…
427
427
 
428
- ``` ruby
428
+ ```ruby
429
429
  halt 410
430
430
  ```
431
431
 
432
432
  Ou com um corpo de texto…
433
433
 
434
- ``` ruby
434
+ ```ruby
435
435
  halt 'isto será o corpo de texto'
436
436
  ```
437
437
 
438
438
  Ou também…
439
439
 
440
- ``` ruby
440
+ ```ruby
441
441
  halt 401, 'vamos embora!'
442
442
  ```
443
443
 
444
444
  Com cabeçalhos…
445
445
 
446
- ``` ruby
446
+ ```ruby
447
447
  halt 402, {'Content-Type' => 'text/plain'}, 'revanche'
448
448
  ```
449
449
 
@@ -452,7 +452,7 @@ halt 402, {'Content-Type' => 'text/plain'}, 'revanche'
452
452
  Dentro de uma rota, pode passar para a próxima rota correspondente
453
453
  usando `pass`:
454
454
 
455
- ``` ruby
455
+ ```ruby
456
456
  get '/adivinhar/:quem' do
457
457
  pass unless params['quem'] == 'Frank'
458
458
  'Apanhaste-me!'
@@ -471,7 +471,7 @@ próxima rota de parâmetro. Se o parâmetro da rota não for encontrado, um
471
471
 
472
472
  Correndo uma vez, na inicialização, em qualquer ambiente:
473
473
 
474
- ``` ruby
474
+ ```ruby
475
475
  configure do
476
476
  ...
477
477
  end
@@ -480,7 +480,7 @@ end
480
480
  Correndo somente quando o ambiente (`RACK_ENV` environment variável) é
481
481
  definido para `:production`:
482
482
 
483
- ``` ruby
483
+ ```ruby
484
484
  configure :production do
485
485
  ...
486
486
  end
@@ -488,7 +488,7 @@ end
488
488
 
489
489
  Correndo quando o ambiente é definido para `:production` ou `:test`:
490
490
 
491
- ``` ruby
491
+ ```ruby
492
492
  configure :production, :test do
493
493
  ...
494
494
  end
@@ -504,7 +504,7 @@ signifca que `haml`, `erb`, etc, estão disponíveis.
504
504
  Quando um `Sinatra::NotFound` exception é levantado, ou o código de
505
505
  status da reposta é 404, o manipulador `not_found` é invocado:
506
506
 
507
- ``` ruby
507
+ ```ruby
508
508
  not_found do
509
509
  'Isto está longe de ser encontrado'
510
510
  end
@@ -516,7 +516,7 @@ O manipulador `error` é invocado sempre que uma exceção é lançada a
516
516
  partir de um bloco de rota ou um filtro. O objecto da exceção pode ser
517
517
  obtido a partir da variável Rack `sinatra.error`:
518
518
 
519
- ``` ruby
519
+ ```ruby
520
520
  error do
521
521
  'Peço desculpa, houve um erro desagradável - ' + env['sinatra.error'].message
522
522
  end
@@ -524,7 +524,7 @@ end
524
524
 
525
525
  Erros personalizados:
526
526
 
527
- ``` ruby
527
+ ```ruby
528
528
  error MeuErroPersonalizado do
529
529
  'O que aconteceu foi...' + env['sinatra.error'].message
530
530
  end
@@ -532,7 +532,7 @@ end
532
532
 
533
533
  Então, se isso acontecer:
534
534
 
535
- ``` ruby
535
+ ```ruby
536
536
  get '/' do
537
537
  raise MeuErroPersonalizado, 'alguma coisa desagradável'
538
538
  end
@@ -547,7 +547,7 @@ O que aconteceu foi...alguma coisa desagradável
547
547
  Alternativamente, pode definir um manipulador de erro para um código de
548
548
  status:
549
549
 
550
- ``` ruby
550
+ ```ruby
551
551
  error 403 do
552
552
  'Accesso negado'
553
553
  end
@@ -559,7 +559,7 @@ end
559
559
 
560
560
  Ou um range (alcance):
561
561
 
562
- ``` ruby
562
+ ```ruby
563
563
  error 400..510 do
564
564
  'Boom'
565
565
  end
@@ -574,13 +574,13 @@ Quando utilizamos `send_file` ou arquivos estáticos pode ter mime types
574
574
  Sinatra não entendidos. Use `mime_type` para os registar por extensão de
575
575
  arquivos:
576
576
 
577
- ``` ruby
577
+ ```ruby
578
578
  mime_type :foo, 'text/foo'
579
579
  ```
580
580
 
581
581
  Pode também utilizar isto com o helper `content_type`:
582
582
 
583
- ``` ruby
583
+ ```ruby
584
584
  content_type :foo
585
585
  ```
586
586
 
@@ -596,7 +596,7 @@ para providenciar varios tipos de funcionalidades comuns.
596
596
  O Sinatra torna a construção de pipelines do middleware Rack fácil a um
597
597
  nível superior utilizando o método `use`:
598
598
 
599
- ``` ruby
599
+ ```ruby
600
600
  require 'sinatra'
601
601
  require 'meu_middleware_personalizado'
602
602
 
@@ -609,11 +609,11 @@ end
609
609
  ```
610
610
 
611
611
  A semântica de `use` é idêntica aquela definida para a DSL
612
- [Rack::Builder](http://rubydoc.info/github/rack/rack/master/Rack/Builder)
612
+ [Rack::Builder](http://www.rubydoc.info/github/rack/rack/master/Rack/Builder)
613
613
  (mais frequentemente utilizada para arquivos rackup). Por exemplo, o
614
614
  método `use` aceita múltiplos argumentos/variáveis, bem como blocos:
615
615
 
616
- ``` ruby
616
+ ```ruby
617
617
  use Rack::Auth::Basic do |utilizador, senha|
618
618
  utilizador == 'admin' && senha == 'secreto'
619
619
  end
@@ -631,7 +631,7 @@ Testes no Sinatra podem ser escritos utilizando qualquer biblioteca ou
631
631
  framework de teste baseados no Rack.
632
632
  [Rack::Test](http://gitrdoc.com/brynary/rack-test) é recomendado:
633
633
 
634
- ``` ruby
634
+ ```ruby
635
635
  require 'minha_aplicacao_sinatra'
636
636
  require 'rack/test'
637
637
 
@@ -673,7 +673,7 @@ estilo de configuração de micro aplicativos (exemplo: um simples arquivo
673
673
  de aplicação, directórios `./public` e `./views`, logs, página de detalhes
674
674
  de excepção, etc.). É onde o Sinatra::Base entra em jogo:
675
675
 
676
- ``` ruby
676
+ ```ruby
677
677
  require 'sinatra/base'
678
678
 
679
679
  class MinhaApp < Sinatra::Base
@@ -691,7 +691,7 @@ como um middleware Rack, uma aplicação Rack, ou metal Rails. Pode
691
691
  utilizar ou executar esta classe com um arquivo rackup `config.ru`;
692
692
  ou, controlar um componente de servidor fornecendo como biblioteca:
693
693
 
694
- ``` ruby
694
+ ```ruby
695
695
  MinhaApp.run! :host => 'localhost', :port => 9090
696
696
  ```
697
697
 
@@ -709,7 +709,7 @@ modificações:
709
709
 
710
710
  `Sinatra::Base` é um quadro branco. Muitas opções são desactivadas por
711
711
  padrão, incluindo o servidor embutido. Veja [Opções e
712
- Configurações](http://sinatra.github.com/configuration.html) para
712
+ Configurações](http://www.sinatrarb.com/configuration.html) para
713
713
  detalhes de opções disponíveis e seus comportamentos.
714
714
 
715
715
  SIDEBAR: A DSL de alto nível do Sinatra é implementada utilizando um simples
@@ -726,7 +726,7 @@ principal](http://github.com/sinatra/sinatra/blob/ceac46f0bc129a6e994a06100aa854
726
726
 
727
727
  As aplicações Sinatra podem ser executadas directamente:
728
728
 
729
- ``` shell
729
+ ```shell
730
730
  ruby minhaapp.rb [-h] [-x] [-e AMBIENTE] [-p PORTA] [-o HOST] [-s SERVIDOR]
731
731
  ```
732
732
 
@@ -747,7 +747,7 @@ Se gostaria de utilizar o código da última versão do Sinatra, crie um
747
747
  clone local e execute sua aplicação com o directório `sinatra/lib` no
748
748
  `LOAD_PATH`:
749
749
 
750
- ``` shell
750
+ ```shell
751
751
  cd minhaapp
752
752
  git clone git://github.com/sinatra/sinatra.git
753
753
  ruby -I sinatra/lib minhaapp.rb
@@ -756,7 +756,7 @@ ruby -I sinatra/lib minhaapp.rb
756
756
  Alternativamente, pode adicionar o directório do `sinatra/lib` no
757
757
  `LOAD_PATH` do seu aplicativo:
758
758
 
759
- ``` ruby
759
+ ```ruby
760
760
  $LOAD_PATH.unshift File.dirname(__FILE__) + '/sinatra/lib'
761
761
  require 'rubygems'
762
762
  require 'sinatra'
@@ -768,7 +768,7 @@ end
768
768
 
769
769
  Para actualizar o código do Sinatra no futuro:
770
770
 
771
- ``` shell
771
+ ```shell
772
772
  cd meuprojeto/sinatra
773
773
  git pull
774
774
  ```
@@ -781,9 +781,9 @@ git pull
781
781
  - [Contribuir](http://www.sinatrarb.com/contributing) - Encontrou um
782
782
  bug? Precisa de ajuda? Tem um patch?
783
783
 
784
- - [Acompanhar Questões](http://github.com/sinatra/sinatra/issues)
784
+ - [Acompanhar Questões](https://github.com/sinatra/sinatra/issues)
785
785
 
786
- - [Twitter](http://twitter.com/sinatra)
786
+ - [Twitter](https://twitter.com/sinatra)
787
787
 
788
788
  - [Lista de Email](http://groups.google.com/group/sinatrarb/topics)
789
789