sinatra 1.4.2 → 1.4.3
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.
- checksums.yaml +7 -0
- data/CHANGES +21 -0
- data/README.de.md +109 -111
- data/README.hu.md +1 -1
- data/README.md +4 -4
- data/README.pt-br.md +4 -4
- data/lib/sinatra/base.rb +318 -316
- data/lib/sinatra/version.rb +1 -1
- data/sinatra.gemspec +1 -1
- data/test/helpers_test.rb +1 -0
- data/test/request_test.rb +1 -0
- data/test/routing_test.rb +10 -0
- metadata +12 -31
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 95ab29a70bb8b47332668d03c988fbcb2922e0ac
|
4
|
+
data.tar.gz: a814ad7ff43ae1a4bfe5882cbb70f8df9a6004e8
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 0c33567db4dfb6bf90d7629a22391c89fcbe83d1feb1b176913bbd5c9ce78aab09714e347afe29a2a9f06260d4829da45b53d429677a747c23a99cbce5b45405
|
7
|
+
data.tar.gz: 6d2dcad14d5021925113eef50e77edf31342b21f5366ed6ab0092cdf40a69b2d7bdb53c4f5bedcc80874f0a644ba152dddd4529d233e4f07032065722ad13615
|
data/CHANGES
CHANGED
@@ -1,3 +1,24 @@
|
|
1
|
+
= 1.4.3 / 2013-06-07
|
2
|
+
|
3
|
+
* Running a Sinatra file directly or via `run!` it will now ignore an
|
4
|
+
empty $PORT env variable. (noxqsgit)
|
5
|
+
|
6
|
+
* Improve documentation. (burningTyger, Patricio Mac Adden,
|
7
|
+
Konstantin Haase, Diogo Scudelletti, Dominic Imhof)
|
8
|
+
|
9
|
+
* Expose matched pattern as env["sinatra.route"]. (Aman Gupta)
|
10
|
+
|
11
|
+
* Fix warning on Ruby 2.0. (Craig Little)
|
12
|
+
|
13
|
+
* Improve running subset of tests in isolation. (Viliam Pucik)
|
14
|
+
|
15
|
+
* Reorder private/public methods. (Patricio Mac Adden)
|
16
|
+
|
17
|
+
* Loosen version dependency for rack, so it runs with Rails 3.2.
|
18
|
+
(Konstantin Haase)
|
19
|
+
|
20
|
+
* Request#accept? now returns true instead of a truthy value. (Alan Harris)
|
21
|
+
|
1
22
|
= 1.4.2 / 2013-03-21
|
2
23
|
|
3
24
|
* Fix parsing error for case where both the pattern and the captured part
|
data/README.de.md
CHANGED
@@ -1,32 +1,36 @@
|
|
1
1
|
# Sinatra
|
2
2
|
|
3
3
|
*Wichtig: Dieses Dokument ist eine Übersetzung aus dem Englischen und unter
|
4
|
-
Umständen nicht auf dem aktuellen Stand.*
|
4
|
+
Umständen nicht auf dem aktuellen Stand (aktuell Sinatra 1.4.2).*
|
5
5
|
|
6
6
|
Sinatra ist eine
|
7
7
|
[DSL](http://de.wikipedia.org/wiki/Domänenspezifische_Sprache), die das
|
8
8
|
schnelle Erstellen von Webanwendungen in Ruby mit minimalem Aufwand
|
9
9
|
ermöglicht:
|
10
10
|
|
11
|
+
Sinatra via `rubygems` installieren:
|
12
|
+
|
13
|
+
```shell
|
14
|
+
gem install sinatra
|
15
|
+
```
|
16
|
+
|
17
|
+
Eine Datei mit dem Namen `myapp.rb` erstellen:
|
18
|
+
|
11
19
|
```ruby
|
12
|
-
# myapp.rb
|
13
20
|
require 'sinatra'
|
14
21
|
get '/' do
|
15
22
|
'Hallo Welt!'
|
16
23
|
end
|
17
24
|
```
|
18
25
|
|
19
|
-
|
26
|
+
und im gleichen Verzeichnis ausführen:
|
20
27
|
|
21
|
-
```
|
22
|
-
gem install sinatra
|
28
|
+
```shell
|
23
29
|
ruby myapp.rb
|
24
30
|
```
|
25
31
|
|
26
|
-
Die Seite kann nun unter http://localhost:4567
|
27
|
-
|
28
|
-
Es wird empfohlen, den Thin-Server via `gem install thin` zu installieren, den
|
29
|
-
Sinatra dann, soweit vorhanden, automatisch verwendet.
|
32
|
+
Die Seite kann nun unter [http://localhost:4567](http://localhost:4567)
|
33
|
+
aufgerufen werden.
|
30
34
|
|
31
35
|
## Inhalt
|
32
36
|
|
@@ -145,7 +149,6 @@ end
|
|
145
149
|
unlink '/' do
|
146
150
|
.. trenne etwas ..
|
147
151
|
end
|
148
|
-
|
149
152
|
```
|
150
153
|
|
151
154
|
Die Routen werden in der Reihenfolge durchlaufen, in der sie definiert wurden.
|
@@ -157,7 +160,7 @@ Die Muster der Routen können benannte Parameter beinhalten, die über den
|
|
157
160
|
```ruby
|
158
161
|
get '/hallo/:name' do
|
159
162
|
# passt auf "GET /hallo/foo" und "GET /hallo/bar"
|
160
|
-
# params[:name] ist 'foo' oder 'bar'
|
163
|
+
# params[:name] ist dann 'foo' oder 'bar'
|
161
164
|
"Hallo #{params[:name]}!"
|
162
165
|
end
|
163
166
|
```
|
@@ -166,16 +169,17 @@ Man kann auf diese auch mit Block-Parametern zugreifen:
|
|
166
169
|
|
167
170
|
```ruby
|
168
171
|
get '/hallo/:name' do |n|
|
172
|
+
# n entspricht hier params[:name]
|
169
173
|
"Hallo #{n}!"
|
170
174
|
end
|
171
175
|
```
|
172
176
|
|
173
|
-
Routen-Muster können auch mit Splat- oder Wildcard-Parametern über das
|
177
|
+
Routen-Muster können auch mit sog. Splat- oder Wildcard-Parametern über das
|
174
178
|
`params[:splat]`-Array angesprochen werden:
|
175
179
|
|
176
180
|
```ruby
|
177
181
|
get '/sag/*/zu/*' do
|
178
|
-
# passt auf /sag/hallo/zu/welt
|
182
|
+
# passt z.B. auf /sag/hallo/zu/welt
|
179
183
|
params[:splat] # => ["hallo", "welt"]
|
180
184
|
end
|
181
185
|
|
@@ -224,21 +228,25 @@ Abgleich mit den Routen modifiziert wird.
|
|
224
228
|
|
225
229
|
### Bedingungen
|
226
230
|
|
227
|
-
An Routen können eine Vielzahl von Bedingungen
|
231
|
+
An Routen können eine Vielzahl von Bedingungen geknüpft werden, die erfüllt
|
228
232
|
sein müssen, damit der Block ausgeführt wird. Möglich wäre etwa eine
|
229
|
-
Einschränkung des User-Agents
|
233
|
+
Einschränkung des User-Agents über die interne Bedingung `:agent`:
|
230
234
|
|
231
235
|
```ruby
|
232
236
|
get '/foo', :agent => /Songbird (\d\.\d)[\d\/]*?/ do
|
233
237
|
"Du verwendest Songbird Version #{params[:agent][0]}"
|
234
238
|
end
|
239
|
+
```
|
235
240
|
|
241
|
+
Wird Songbird als Browser nicht verwendet, springt Sinatra zur nächsten Route:
|
242
|
+
|
243
|
+
```ruby
|
236
244
|
get '/foo' do
|
237
245
|
# passt auf andere Browser
|
238
246
|
end
|
239
247
|
```
|
240
248
|
|
241
|
-
Andere mitgelieferte Bedingungen sind
|
249
|
+
Andere mitgelieferte Bedingungen sind `:host_name` und `:provides`:
|
242
250
|
|
243
251
|
```ruby
|
244
252
|
get '/', :host_name => /^admin\./ do
|
@@ -254,12 +262,12 @@ get '/', :provides => ['rss', 'atom', 'xml'] do
|
|
254
262
|
end
|
255
263
|
```
|
256
264
|
|
257
|
-
|
265
|
+
Eigene Bedingungen können relativ einfach hinzugefügt werden:
|
258
266
|
|
259
267
|
```ruby
|
260
|
-
set(:
|
268
|
+
set(:wahrscheinlichkeit) { |value| condition { rand <= value } }
|
261
269
|
|
262
|
-
get '/auto_gewinnen', :
|
270
|
+
get '/auto_gewinnen', :wahrscheinlichkeit => 0.1 do
|
263
271
|
"Du hast gewonnen!"
|
264
272
|
end
|
265
273
|
|
@@ -308,7 +316,6 @@ einen Rack-Rückgabewert, einen Rack-Body oder einen HTTP-Status-Code handelt:
|
|
308
316
|
Block nur mit Strings als Übergabewerte aufruft.
|
309
317
|
* Ein Fixnum, das den Status-Code festlegt.
|
310
318
|
|
311
|
-
|
312
319
|
Damit lässt sich relativ einfach Streaming implementieren:
|
313
320
|
|
314
321
|
```ruby
|
@@ -370,16 +377,17 @@ get %r{^(?!/index$)} do
|
|
370
377
|
# ...
|
371
378
|
end
|
372
379
|
```
|
380
|
+
|
373
381
|
## Statische Dateien
|
374
382
|
|
375
|
-
Statische Dateien werden
|
383
|
+
Statische Dateien werden im `./public`-Ordner erwartet. Es ist möglich,
|
376
384
|
einen anderen Ort zu definieren, indem man die `:public_folder`-Option setzt:
|
377
385
|
|
378
386
|
```ruby
|
379
387
|
set :public_folder, File.dirname(__FILE__) + '/static'
|
380
388
|
```
|
381
389
|
|
382
|
-
Zu beachten ist, dass der Ordnername public nicht Teil der URL ist. Die Datei
|
390
|
+
Zu beachten ist, dass der Ordnername `public` nicht Teil der URL ist. Die Datei
|
383
391
|
`./public/css/style.css` ist unter `http://example.com/css/style.css` zu finden.
|
384
392
|
|
385
393
|
Um den `Cache-Control`-Header mit Informationen zu versorgen, verwendet man
|
@@ -426,7 +434,8 @@ get '/' do
|
|
426
434
|
end
|
427
435
|
```
|
428
436
|
|
429
|
-
Für alle Templates können auch
|
437
|
+
Für alle Templates können auch Einstellungen, die für alle Routen gelten,
|
438
|
+
festgelegt werden:
|
430
439
|
|
431
440
|
```ruby
|
432
441
|
set :haml, :format => :html5
|
@@ -443,7 +452,7 @@ Einstellungen:
|
|
443
452
|
|
444
453
|
<dl>
|
445
454
|
<dt>locals</dt>
|
446
|
-
<dd>Liste von lokalen Variablen, die
|
455
|
+
<dd>Liste von lokalen Variablen, die an das Dokument weitergegeben werden.
|
447
456
|
Praktisch für Partials:
|
448
457
|
|
449
458
|
<tt>erb "<%= foo %>", :locals => {:foo => "bar"}</tt></dd>
|
@@ -453,7 +462,7 @@ Einstellungen:
|
|
453
462
|
auf <tt>settings.default_encoding</tt>.</dd>
|
454
463
|
|
455
464
|
<dt>views</dt>
|
456
|
-
<dd>Ordner, aus dem die Templates
|
465
|
+
<dd>Ordner, aus dem die Templates geladen werden. Voreingestellt auf
|
457
466
|
<tt>settings.views</tt>.</dd>
|
458
467
|
|
459
468
|
<dt>layout</dt>
|
@@ -464,7 +473,7 @@ Einstellungen:
|
|
464
473
|
<tt>erb :index, :layout => !request.xhr?</tt></dd>
|
465
474
|
|
466
475
|
<dt>content_type</dt>
|
467
|
-
<dd>Content-
|
476
|
+
<dd>Content-Typ den das Template ausgibt. Voreinstellung hängt von der
|
468
477
|
Templatesprache ab.</dd>
|
469
478
|
|
470
479
|
<dt>scope</dt>
|
@@ -478,6 +487,7 @@ Einstellungen:
|
|
478
487
|
den Renderer, der für das Template verwendet wird:
|
479
488
|
|
480
489
|
<tt>set :rdoc, :layout_engine => :erb</tt></dd>
|
490
|
+
|
481
491
|
<dt>layout_options</dt>
|
482
492
|
<dd>Besondere Einstellungen, die nur für das Rendering verwendet werden:
|
483
493
|
|
@@ -1045,8 +1055,8 @@ Templates eingesetzt.
|
|
1045
1055
|
|
1046
1056
|
### Templates mit `yield` und verschachtelte Layouts
|
1047
1057
|
|
1048
|
-
Ein Layout ist üblicherweise ein Template,
|
1049
|
-
Template kann entweder wie oben beschrieben über die `:template`
|
1058
|
+
Ein Layout ist üblicherweise ein Template, das ein `yield` aufruft. Ein solches
|
1059
|
+
Template kann entweder wie oben beschrieben über die `:template` Option
|
1050
1060
|
verwendet werden oder mit einem Block gerendert werden:
|
1051
1061
|
|
1052
1062
|
``` ruby
|
@@ -1130,7 +1140,9 @@ verwendet. Durch `:layout => false` kann das Ausführen verhindert werden:
|
|
1130
1140
|
|
1131
1141
|
```ruby
|
1132
1142
|
get '/' do
|
1133
|
-
haml :index, :layout => request.xhr?
|
1143
|
+
haml :index, :layout => !request.xhr?
|
1144
|
+
# !request.xhr? prüft, ob es sich um einen asynchronen Request handelt.
|
1145
|
+
# wenn nicht, dann verwende ein Layout (negiert durch !)
|
1134
1146
|
end
|
1135
1147
|
```
|
1136
1148
|
|
@@ -1194,8 +1206,8 @@ after do
|
|
1194
1206
|
end
|
1195
1207
|
```
|
1196
1208
|
|
1197
|
-
Filter können optional auch mit einem Muster ausgestattet werden,
|
1198
|
-
|
1209
|
+
Filter können optional auch mit einem Muster ausgestattet werden, das auf den
|
1210
|
+
Request-Pfad passen muss, damit der Filter ausgeführt wird:
|
1199
1211
|
|
1200
1212
|
```ruby
|
1201
1213
|
before '/protected/*' do
|
@@ -1278,7 +1290,7 @@ wählen, damit sich alle Instanzen der Applikation dasselbe Session-Secret
|
|
1278
1290
|
teilen:
|
1279
1291
|
|
1280
1292
|
```ruby
|
1281
|
-
set :session_secret, '
|
1293
|
+
set :session_secret, 'super_geheimes_Gegeimnis'
|
1282
1294
|
```
|
1283
1295
|
|
1284
1296
|
Zur weiteren Konfiguration kann man einen Hash mit Optionen in den `sessions`
|
@@ -1296,7 +1308,7 @@ Zum sofortigen Stoppen eines Request in einem Filter oder einer Route:
|
|
1296
1308
|
halt
|
1297
1309
|
```
|
1298
1310
|
|
1299
|
-
Der Status kann beim Stoppen
|
1311
|
+
Der Status kann beim Stoppen mit angegeben werden:
|
1300
1312
|
|
1301
1313
|
```ruby
|
1302
1314
|
halt 410
|
@@ -1347,8 +1359,9 @@ gefunden wird.
|
|
1347
1359
|
|
1348
1360
|
### Eine andere Route ansteuern
|
1349
1361
|
|
1350
|
-
|
1351
|
-
anderen Route gefordert wird
|
1362
|
+
Wenn nicht zu einer anderen Route gesprungen werden soll, sondern nur das
|
1363
|
+
Ergebnis einer anderen Route gefordert wird, kann `call` für einen internen
|
1364
|
+
Request verwendet werden:
|
1352
1365
|
|
1353
1366
|
```ruby
|
1354
1367
|
get '/foo' do
|
@@ -1369,16 +1382,13 @@ Wenn der Request innerhalb derselben Applikations-Instanz aufgerufen und keine
|
|
1369
1382
|
Kopie der Instanz erzeugt werden soll, kann `call!` anstelle von `call`
|
1370
1383
|
verwendet werden.
|
1371
1384
|
|
1372
|
-
Die Rack-Spezifikationen enthalten weitere Informationen zu `call`.
|
1373
|
-
|
1374
1385
|
### Body, Status-Code und Header setzen
|
1375
1386
|
|
1376
|
-
Es ist möglich und empfohlen, den Status-Code sowie den Response-Body mit
|
1377
|
-
|
1378
|
-
|
1379
|
-
|
1380
|
-
|
1381
|
-
aufrufen:
|
1387
|
+
Es ist möglich und empfohlen, den Status-Code sowie den Response-Body mit einem
|
1388
|
+
Returnwert in der Route zu setzen. In manchen Situationen kann es jedoch sein,
|
1389
|
+
dass der Body an anderer Stelle während der Ausführung gesetzt werden soll.
|
1390
|
+
Dafür kann man die Helfer-Methode `body` einsetzen. Ist sie gesetzt, kann sie zu
|
1391
|
+
einem späteren Zeitpunkt aufgerufen werden:
|
1382
1392
|
|
1383
1393
|
```ruby
|
1384
1394
|
get '/foo' do
|
@@ -1430,7 +1440,7 @@ end
|
|
1430
1440
|
```
|
1431
1441
|
|
1432
1442
|
Damit lassen sich Streaming-APIs realisieren, sog.
|
1433
|
-
[Server Sent Events](http://dev.w3.org/html5/eventsource/) die als Basis für
|
1443
|
+
[Server Sent Events](http://dev.w3.org/html5/eventsource/), die als Basis für
|
1434
1444
|
[WebSockets](http://en.wikipedia.org/wiki/WebSocket) dienen. Ebenso können sie
|
1435
1445
|
verwendet werden, um den Durchsatz zu erhöhen, wenn ein Teil der Daten von
|
1436
1446
|
langsamen Ressourcen abhängig ist.
|
@@ -1987,6 +1997,7 @@ Schutzmechanismen zu deaktivieren:
|
|
1987
1997
|
```ruby
|
1988
1998
|
set :protection, :except => [:path_traversal, :session_hijacking]
|
1989
1999
|
```
|
2000
|
+
|
1990
2001
|
#### Mögliche Einstellungen
|
1991
2002
|
|
1992
2003
|
<dl>
|
@@ -2010,8 +2021,9 @@ set :protection, :except => [:path_traversal, :session_hijacking]
|
|
2010
2021
|
Inline-, View- und öffentliche Verzeichnis des Projekts festzustellen.</dd>
|
2011
2022
|
|
2012
2023
|
<dt>bind</dt>
|
2013
|
-
<dd>IP-Address, an die gebunden wird (Standardwert: <tt>0.0.0.0</tt>
|
2014
|
-
nur für den eingebauten Server
|
2024
|
+
<dd>IP-Address, an die gebunden wird (Standardwert: <tt>0.0.0.0</tt>
|
2025
|
+
<em>oder</em> <tt>localhost</tt>). Wird nur für den eingebauten Server
|
2026
|
+
verwendet.</dd>
|
2015
2027
|
|
2016
2028
|
<dt>default_encoding</dt>
|
2017
2029
|
<dd>Das Encoding, falls keines angegeben wurde. Standardwert ist
|
@@ -2080,8 +2092,8 @@ set :protection, :except => [:path_traversal, :session_hijacking]
|
|
2080
2092
|
|
2081
2093
|
<dt>server</dt>
|
2082
2094
|
<dd>Server oder Liste von Servern, die als eingebaute Server zur Verfügung
|
2083
|
-
stehen.
|
2084
|
-
|
2095
|
+
stehen. Die Reihenfolge gibt die Priorität vor, die Voreinstellung hängt von
|
2096
|
+
der verwendenten Ruby Implementierung ab.</dd>
|
2085
2097
|
|
2086
2098
|
<dt>sessions</dt>
|
2087
2099
|
<dd>Sessions auf Cookiebasis mittels
|
@@ -2134,7 +2146,7 @@ und `"test"` werden Templates automatisch gecached.
|
|
2134
2146
|
Um die Anwendung in einer anderen Umgebung auszuführen kann man die `-e`
|
2135
2147
|
Option verwenden:
|
2136
2148
|
|
2137
|
-
```
|
2149
|
+
```shell
|
2138
2150
|
ruby my_app.rb -e [ENVIRONMENT]
|
2139
2151
|
```
|
2140
2152
|
|
@@ -2187,7 +2199,7 @@ end
|
|
2187
2199
|
|
2188
2200
|
bekommt man dieses:
|
2189
2201
|
|
2190
|
-
```
|
2202
|
+
```shell
|
2191
2203
|
Au weia, etwas Schlimmes ist passiert
|
2192
2204
|
```
|
2193
2205
|
|
@@ -2426,7 +2438,7 @@ end
|
|
2426
2438
|
|
2427
2439
|
Starte mit:
|
2428
2440
|
|
2429
|
-
```
|
2441
|
+
```shell
|
2430
2442
|
ruby mein_app.rb
|
2431
2443
|
```
|
2432
2444
|
|
@@ -2441,7 +2453,7 @@ run MeineApp
|
|
2441
2453
|
|
2442
2454
|
Starte:
|
2443
2455
|
|
2444
|
-
```
|
2456
|
+
```shell
|
2445
2457
|
rackup -p 4567
|
2446
2458
|
```
|
2447
2459
|
|
@@ -2637,8 +2649,8 @@ end
|
|
2637
2649
|
|
2638
2650
|
Im Anfrage-Scope befindet man sich:
|
2639
2651
|
|
2640
|
-
* In get
|
2641
|
-
* In before
|
2652
|
+
* In get, head, post, put, delete, options, patch, link und unlink Blöcken
|
2653
|
+
* In before und after Filtern
|
2642
2654
|
* In Helfer-Methoden
|
2643
2655
|
* In Templates
|
2644
2656
|
|
@@ -2668,7 +2680,7 @@ eingebunden](http://github.com/sinatra/sinatra/blob/master/lib/sinatra/main.rb
|
|
2668
2680
|
|
2669
2681
|
Sinatra-Anwendungen können direkt von der Kommandozeile aus gestartet werden:
|
2670
2682
|
|
2671
|
-
```
|
2683
|
+
```shell
|
2672
2684
|
ruby myapp.rb [-h] [-x] [-e ENVIRONMENT] [-p PORT] [-h HOST] [-s HANDLER]
|
2673
2685
|
```
|
2674
2686
|
|
@@ -2688,67 +2700,52 @@ Die Optionen sind:
|
|
2688
2700
|
Die folgenden Versionen werden offiziell unterstützt:
|
2689
2701
|
|
2690
2702
|
<dl>
|
2691
|
-
|
2692
|
-
|
2693
|
-
|
2694
|
-
|
2695
|
-
|
2696
|
-
|
2697
|
-
|
2698
|
-
|
2699
|
-
|
2700
|
-
|
2701
|
-
|
2702
|
-
|
2703
|
-
|
2704
|
-
|
2705
|
-
|
2706
|
-
|
2707
|
-
|
2708
|
-
|
2709
|
-
|
2710
|
-
|
2711
|
-
|
2712
|
-
|
2713
|
-
|
2714
|
-
|
2715
|
-
Modus.</dd>
|
2716
|
-
|
2717
|
-
<dt>JRuby</dt>
|
2718
|
-
<dd>JRuby wird offiziell unterstützt (JRuby >= 1.6.7). Probleme mit
|
2719
|
-
Template- Bibliotheken Dritter sind nicht bekannt. Falls JRuby zum Einsatz
|
2720
|
-
kommt, sollte aber darauf geachtet werden, dass ein JRuby-Rack-Handler zum
|
2721
|
-
Einsatz kommt – die Thin und Mongrel Web-Server werden bisher nicht
|
2722
|
-
unterstütz. JRubys Unterstützung für C-Erweiterungen sind zur Zeit ebenfalls
|
2723
|
-
experimenteller Natur, betrifft im Moment aber nur die RDiscount, Redcarpet,
|
2724
|
-
RedCloth und [[Yajl]] Templates.</dd>
|
2703
|
+
<dt>Ruby 1.8.7</dt>
|
2704
|
+
<dd>1.8.7 wird vollständig unterstützt, ein Wechsel zu JRuby oder Rubinius wird
|
2705
|
+
aber empfohlen. Ruby 1.8.7 wird noch bis Sinatra 2.0 unterstützt werden. Frühere
|
2706
|
+
Versionen von Ruby sind nicht kompatibel mit Sinatra.</dd>
|
2707
|
+
|
2708
|
+
<dt>Ruby 1.9.2</dt>
|
2709
|
+
<dd>1.9.2 wird mindestens bis Sinatra 1.5 voll unterstützt. Version 1.9.2p0
|
2710
|
+
sollte nicht verwendet werden, da unter Sinatra immer wieder Segfaults
|
2711
|
+
auftreten.</dd>
|
2712
|
+
|
2713
|
+
<dt>Ruby 1.9.3</dt>
|
2714
|
+
<dd>1.9.3 wird vollständig unterstützt und empfohlen. Achtung, bei einem
|
2715
|
+
Upgrade von einer früheren Version von Ruby zu Ruby 1.9.3 werden alle Sessions
|
2716
|
+
ungültig. Ruby 1.9.3 wird bis Sinatra 2.0 unterstützt werden.</dd>
|
2717
|
+
|
2718
|
+
<dt>Rubinius</dt>
|
2719
|
+
<dd>Rubinius (Version >= 2.x) wird offiziell unterstützt. Es wird empfohlen, den
|
2720
|
+
<a href="http://puma.io">Puma Server</a> zu installieren (<tt>gem install puma
|
2721
|
+
</tt>)</dd>
|
2722
|
+
|
2723
|
+
<dt>JRuby</dt>
|
2724
|
+
<dd>Aktuelle JRuby Versionen werden offiziell unterstützt. Es wird empfohlen,
|
2725
|
+
keine C-Erweiterungen zu verwenden und als Server Trinidad zu verwenden
|
2726
|
+
(<tt>gem install trinidad</tt>).</dd>
|
2725
2727
|
</dl>
|
2726
2728
|
|
2727
|
-
Weiterhin werden wir die kommende Ruby-Versionen im Auge behalten.
|
2728
|
-
|
2729
2729
|
Die nachfolgend aufgeführten Ruby-Implementierungen werden offiziell nicht von
|
2730
2730
|
Sinatra unterstützt, funktionieren aber normalerweise:
|
2731
2731
|
|
2732
2732
|
* Ruby Enterprise Edition
|
2733
2733
|
* Ältere Versionen von JRuby und Rubinius
|
2734
|
-
* MacRuby, Maglev, IronRuby
|
2735
|
-
* Ruby 1.9.0 und 1.9.1
|
2736
|
-
|
2734
|
+
* MacRuby (<tt>gem install control_tower</tt> wird empfohlen), Maglev, IronRuby
|
2735
|
+
* Ruby 1.9.0 und 1.9.1
|
2737
2736
|
|
2738
2737
|
Nicht offiziell unterstützt bedeutet, dass wenn Sachen nicht funktionieren,
|
2739
2738
|
wir davon ausgehen, dass es nicht an Sinatra sondern an der jeweiligen
|
2740
|
-
|
2739
|
+
Implementierung liegt.
|
2741
2740
|
|
2742
2741
|
Im Rahmen unserer CI (Kontinuierlichen Integration) wird bereits ruby-head
|
2743
|
-
(das kommende Ruby 2.
|
2744
|
-
|
2745
|
-
dass Ruby 2.0.0p0 und 1.9.4p0 von Sinatra unterstützt werden wird.
|
2742
|
+
(das kommende Ruby 2.1.0) mit eingebunden. Es kann davon ausgegangen
|
2743
|
+
werden, dass Sinatra Ruby 2.1.0 vollständig unterstützen wird.
|
2746
2744
|
|
2747
|
-
Sinatra sollte auf jedem Betriebssystem laufen, dass
|
2748
|
-
Interpreter
|
2745
|
+
Sinatra sollte auf jedem Betriebssystem laufen, dass einen funktionierenden
|
2746
|
+
Ruby-Interpreter aufweist.
|
2749
2747
|
|
2750
|
-
Sinatra
|
2751
|
-
irgendeiner Version von Ruby vor 1.8.7 laufen.
|
2748
|
+
Sinatra läuft aktuell nicht unter Cardinal, SmallRuby, BlueRuby oder Ruby <= 1.8.7.
|
2752
2749
|
|
2753
2750
|
## Der neuste Stand (The Bleeding Edge)
|
2754
2751
|
|
@@ -2756,7 +2753,7 @@ Um auf dem neusten Stand zu bleiben, kann der Master-Branch verwendet werden.
|
|
2756
2753
|
Er sollte recht stabil sein. Ebenso gibt es von Zeit zu Zeit prerelease Gems,
|
2757
2754
|
die so installiert werden:
|
2758
2755
|
|
2759
|
-
```
|
2756
|
+
```shell
|
2760
2757
|
gem install sinatra --pre
|
2761
2758
|
```
|
2762
2759
|
|
@@ -2768,7 +2765,7 @@ nachfolgenden Weg.
|
|
2768
2765
|
|
2769
2766
|
Soweit Bundler noch nicht installiert ist:
|
2770
2767
|
|
2771
|
-
```
|
2768
|
+
```shell
|
2772
2769
|
gem install bundler
|
2773
2770
|
```
|
2774
2771
|
|
@@ -2790,16 +2787,16 @@ Gemfile von Sinatra hinzugefügt.
|
|
2790
2787
|
|
2791
2788
|
Jetzt kannst du deine Applikation starten:
|
2792
2789
|
|
2793
|
-
```
|
2790
|
+
```shell
|
2794
2791
|
bundle exec ruby myapp.rb
|
2795
2792
|
```
|
2796
2793
|
|
2797
2794
|
### Eigenes Repository
|
2798
2795
|
Um auf dem neuesten Stand von Sinatras Code zu sein, kann eine lokale Kopie
|
2799
|
-
angelegt werden. Gestartet wird in der Anwendung mit dem `sinatra/lib`-
|
2796
|
+
angelegt werden. Gestartet wird in der Anwendung mit dem `sinatra/lib`-Ordner
|
2800
2797
|
im `LOAD_PATH`:
|
2801
2798
|
|
2802
|
-
```
|
2799
|
+
```shell
|
2803
2800
|
cd myapp
|
2804
2801
|
git clone git://github.com/sinatra/sinatra.git
|
2805
2802
|
ruby -Isinatra/lib myapp.rb
|
@@ -2820,7 +2817,7 @@ end
|
|
2820
2817
|
|
2821
2818
|
Um Sinatra-Code von Zeit zu Zeit zu aktualisieren:
|
2822
2819
|
|
2823
|
-
```
|
2820
|
+
```shell
|
2824
2821
|
cd myproject/sinatra
|
2825
2822
|
git pull
|
2826
2823
|
```
|
@@ -2829,7 +2826,7 @@ git pull
|
|
2829
2826
|
|
2830
2827
|
Aus der eigenen lokalen Kopie kann nun auch ein globales Gem gebaut werden:
|
2831
2828
|
|
2832
|
-
```
|
2829
|
+
```shell
|
2833
2830
|
git clone git://github.com/sinatra/sinatra.git
|
2834
2831
|
cd sinatra
|
2835
2832
|
rake sinatra.gemspec
|
@@ -2839,7 +2836,7 @@ rake install
|
|
2839
2836
|
Falls Gems als Root installiert werden sollen, sollte die letzte Zeile
|
2840
2837
|
folgendermaßen lauten:
|
2841
2838
|
|
2842
|
-
```
|
2839
|
+
```shell
|
2843
2840
|
sudo rake install
|
2844
2841
|
```
|
2845
2842
|
|
@@ -2857,7 +2854,8 @@ SemVer und SemVerTag.
|
|
2857
2854
|
* [Issue-Tracker](http://github.com/sinatra/sinatra/issues)
|
2858
2855
|
* [Twitter](http://twitter.com/sinatra)
|
2859
2856
|
* [Mailing-Liste](http://groups.google.com/group/sinatrarb)
|
2860
|
-
* [
|
2857
|
+
* [#sinatra](irc://chat.freenode.net/#sinatra) auf http://freenode.net Es
|
2858
|
+
gibt dort auch immer wieder deutschsprachige Entwickler, die gerne weiterhelfen.
|
2861
2859
|
* [Sinatra Book](http://sinatra-book.gittr.com) Kochbuch Tutorial
|
2862
2860
|
* [Sinatra Recipes](http://recipes.sinatrarb.com/) Sinatra-Rezepte aus der
|
2863
2861
|
Community
|