Skip to content
This repository
Newer
Older
100644 1857 lines (1322 sloc) 57.836 kb
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1 = Sinatra
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
2 <i>Attention : Ce document correspond à la traduction de la version anglaise et
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
3 il n'est peut être plus à jour.</i>
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
4
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
5 Sinatra est un DSL pour créer rapidement des applications web en Ruby et sans
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
6 effort :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
7
8 # mon_application.rb
9 require 'sinatra'
10 get '/' do
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
11 'Bonjour le monde !'
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
12 end
13
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
14 Installez la gem et lancez avec :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
15
3a25d987 » rkh
2010-09-21 Adjust examples in French and Spanish READMEs.
16 gem install sinatra
17 ruby -rubygems mon_application.rb
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
18
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
19 Le résultat est visible sur : http://localhost:4567
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
20
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
21 Il est également recommandé d'exécuter <tt>gem install thin</tt>, que Sinatra
22 utilisera si disponible.
23
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
24 == Routes
25
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
26 Dans Sinatra, une route est une méthode HTTP couplée à un masque (pattern)
27 URL.
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
28 Chaque route est associée à un bloc :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
29
30 get '/' do
31 .. montrer quelque chose ..
32 end
33
34 post '/' do
35 .. créer quelque chose ..
36 end
37
38 put '/' do
644c26e2 » sylvaindesve
2011-04-05 French README update.
39 .. remplacer quelque chose ..
40 end
41
42 patch '/' do
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
43 .. changer quelque chose ..
44 end
45
46 delete '/' do
47 .. effacer quelque chose ..
48 end
49
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
50 options '/' do
51 .. apaiser quelquechose ..
52 end
53
54 Les routes sont comparées dans l'ordre où elles ont été définies. La première
55 route qui correspond à la requête est invoquée.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
56
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
57 Les masques peuvent inclure des paramètres nommés, accessibles par
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
58 l'intermédiaire du hash <tt>params</tt> :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
59
60 get '/bonjour/:nom' do
61 # répond aux requêtes "GET /bonjour/foo" et "GET /bonjour/bar"
62 # params[:nom] est 'foo' ou 'bar'
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
63 "Bonjour #{params[:nom]} !"
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
64 end
65
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
66 Vous pouvez aussi les nommer directement dans les paramètres du bloc comme
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
67 ceci :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
68
69 get '/bonjour/:nom' do |n|
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
70 "Bonjour #{n} !"
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
71 end
72
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
73 Une route peut contenir un splat (caractère joker), accessible par
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
74 l'intermédiaire de la liste <tt>params[:splat]</tt> :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
75
76 get '/dire/*/a/*' do
77 # répondrait à /dire/bonjour/a/monde
78 params[:splat] # => ["bonjour", "monde"]
79 end
80
81 get '/telecharger/*.*' do
82 # répondrait à /telecharger/chemin/vers/fichier.xml
83 params[:splat] # => ["chemin/vers/fichier", "xml"]
84 end
85
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
86 Une route peut s'exprimer avec une Expression Régulière :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
87
88 get %r{/bonjour/([\w]+)} do
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
89 "Bonjour, #{params[:captures].first} !"
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
90 end
91
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
92 Là aussi on peut utiliser les paramètres de bloc :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
93
94 get %r{/bonjour/([\w]+)} do |c|
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
95 "Bonjour, #{c} !"
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
96 end
97
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
98 === Conditions
99
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
100 Les routes peuvent définir toutes sortes de conditions, comme par exemple le
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
101 "user agent" :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
102
103 get '/foo', :agent => /Songbird (\d\.\d)[\d\/]*?/ do
104 "Vous utilisez Songbird version #{params[:agent][0]}"
105 end
106
107 get '/foo' do
108 # Correspond à tous les autres navigateurs
109 end
110
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
111 Les autres conditions disponibles sont +host_name+ et +provides+ :
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
112
113 get '/', :host_name => /^admin\./ do
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
114 "Zone Administrateur, Accès refusé !"
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
115 end
116
117 get '/', :provides => 'html' do
118 haml :index
119 end
120
121 get '/', :provides => ['rss', 'atom', 'xml'] do
122 builder :feed
123 end
124
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
125 Vous pouvez facilement définir vos propres conditions :
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
126
127 set(:probability) { |value| condition { rand <= value } }
128
129 get '/gagner_une_voiture', :probability => 0.1 do
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
130 "Vous avez gagné !"
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
131 end
132
133 get '/gagner_une_voiture' do
134 "Désolé, vous avez perdu."
135 end
136
137 === Valeurs de retour
138
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
139 La valeur de retour d'un bloc définissant une route détermine le corps de la
140 réponse qui sera transmise au client HTTP ou du moins au prochain middleware
141 dans la pile Rack. Le plus généralement, il s'agit d'une chaîne de caractères,
142 comme dans les exemples précédents. Cependant, d'autres valeurs sont
143 acceptées.
144
145 Vous pouvez renvoyer n'importe quel objet qui soit une réponse Rack valide, un
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
146 corps de réponse Rack ou un code retour HTTP :
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
147
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
148 * Un tableau de 3 éléments : <tt>[code retour (Fixnum), entêtes (Hash), corps
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
149 de réponse (répondant à #each)]</tt>
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
150 * Un tableau de 2 élements : <tt>[code retour (Fixnum), corps de réponse
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
151 (répondant à #each)]</tt>
152 * Un objet qui répond à <tt>#each</tt> et qui ne transmet que des chaînes de
153 caractères au bloc fourni
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
154 * Un Fixnum représentant le code retour
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
155
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
156 Ainsi, on peut facilement implémenter un streaming par exemple :
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
157
158 class Stream
159 def each
160 100.times { |i| yield "#{i}\n" }
161 end
162 end
163
164 get('/') { Stream.new }
165
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
166 === Masques de route spécifiques
167
168 Comme montré plus haut, Sinatra embarque le support pour l'utilisation de
169 masques utilisant des chaînes de caractères ou des expressions régulières
170 pour définir les routes. Toutefois, cela ne s'arrête pas là. Vous pouvez
171 facilement définir vos propres masques :
172
173 class MasqueToutSauf
174 Masque = Struct.new(:captures)
175
176 def initialize(except)
177 @except = except
86eaf06b » sylvaindesve
2011-03-09 Sync French readme.
178 @captures = Masque.new([])
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
179 end
180
181 def match(str)
182 @caputres unless @except === str
183 end
184 end
185
186 def tout_sauf(masque)
187 MasqueToutSauf.new(masque)
188 end
189
190 get tout_sauf("/index") do
191 # ...
192 end
193
194 Notez que l'exemple ci-dessus est bien trop compliqué et le même résultat
195 peut être obtenu avec :
196
197 get // do
198 pass if request.path_info == "/index"
199 # ...
200 end
201
202 Ou bien en utilisant la forme négative :
203
204 get %r{^(?!/index$)} do
205 # ...
206 end
207
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
208 == Fichiers statiques
209
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
210 Par défaut, le dossier <tt>./public</tt> est utilisé pour servir les fichiers
211 statiques. Vous pouvez changer ce dossier pour un autre nom grâce au paramètre
d1ab58de » rkh
2011-06-16 rename public to public_folder, fixes #301
212 <tt>:public_folder</tt> :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
213
d1ab58de » rkh
2011-06-16 rename public to public_folder, fixes #301
214 set :public_folder, File.dirname(__FILE__) + '/statique'
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
215
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
216 Notez que le nom du dossier public n'est pas inclus dans l'URL. Un fichier
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
217 sous <tt>./public/css/style.css</tt> est appelé avec l'URL : <tt>http://exemple.com/css/style.css</tt>.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
218
219 == Vues / Templates
220
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
221 Chaque langage de template est exposé via sa propre méthode de rendu.
222 Ces méthodes retournent tout simplement une chaîne de caractères.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
223
224 get '/' do
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
225 erb :index
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
226 end
227
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
228 Ceci effectue le rendu de <tt>views/index.erb</tt>.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
229
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
230 Plutôt que le nom d'un template, vous pouvez directement passer le contenu du
231 template :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
232
233 get '/' do
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
234 code = "<%= Time.now %>"
235 erb code
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
236 end
237
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
238 Les templates prennent un second paramètre, un hash d'options :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
239
240 get '/' do
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
241 erb :index, :layout => :post
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
242 end
243
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
244 Cecie effectue le rendu de <tt>views/index.erb</tt> embarqué dans
245 <tt>views/post.erb</tt> (<tt>views/layout.erb</tt> est la valeur par défaut
246 si ce fichier existe).
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
247
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
248 Toute option que Sinatra ne comprends pas sera passée au moteur de rendu :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
249
250 get '/' do
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
251 haml :index, :format => :html5
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
252 end
253
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
254 Vous pouvez également définir des options par langage de template de façon
255 générale :
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
256
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
257 set :haml, :format => html5
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
258
259 get '/' do
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
260 haml :index
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
261 end
262
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
263 Les options passées à la méthode de rendu prennent le pas sur les options
264 définies au moyen de +set+.
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
265
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
266 Options disponibles :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
267
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
268 [locals]
269 Liste de variables locales passées au document. Pratique pour les vues
270 partielles.
271 Exemple : <tt>erb "<%= foo %>", :locals => {:foo => "bar"}</tt>.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
272
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
273 [default_encoding]
274 Encodage de caractères à utiliser en cas d'incertitude. Par défaut, c'est
275 <tt>settings.default_encoding</tt>.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
276
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
277 [views]
278 Dossier de vues dans lequel chercher les templates. Par défaut
279 <tt>settings.views</tt>.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
280
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
281 [layout]
282 S'il faut ou non utiliser un +layout+ (+true+ or +false+). Indique le
283 template à utiliser lorsque c'est un Symbol. Exemple : <tt>erb :index,
284 :layout => request.xhr?</tt>.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
285
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
286 [content_type]
287 Content-Type que le template produit, dépend par défaut du langage de
288 template.
dd81da11 » rkh
2010-10-10 Add nokogiri helper method. Tilt supports Nokogiri for quite some tim…
289
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
290 [scope]
291 Contexte sous lequel effectuer le rendu du template. Par défaut il s'agit
292 de l'instance de l'application. Si vous changez cela, les variables
293 d'instance et les méthodes utilitaires ne seront pas disponibles.
dd81da11 » rkh
2010-10-10 Add nokogiri helper method. Tilt supports Nokogiri for quite some tim…
294
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
295 [layout_engine]
296 Moteur de rendu à utiliser pour le +layout+. Utile pour les langages ne
297 supportant pas les +layouts+. Il s'agit par défaut du moteur utilisé pour
298 le rendu du template. Exemple : <tt>set :rdoc, :layout_engine => :erb</tt>
dd81da11 » rkh
2010-10-10 Add nokogiri helper method. Tilt supports Nokogiri for quite some tim…
299
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
300 Les templates sont supposés se trouver directement dans le dossier
301 <tt>./views</tt>. Pour utiliser un dossier de vues différent :
dd81da11 » rkh
2010-10-10 Add nokogiri helper method. Tilt supports Nokogiri for quite some tim…
302
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
303 set :views, settings.root + '/templates'
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
304
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
305 Il est important de noter que les templates sont toujours référencés
306 sous forme de symboles, même s'il s'agit d'un sous-répertoire (dans ce
307 cas, utilisez <tt>:'sous_repertoire/template'</tt>). Vous devez utiliser un
308 symbole car les méthodes de rendu évalueront le contenu des chaînes de
309 caractères au lieu de les considérer comme un chemin vers un fichier.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
310
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
311 === Langages de template disponibles
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
312
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
313 Certains langages ont plusieurs implémentations. Pour préciser l'implémentation
314 à utiliser (et garantir l'aspect thread-safe), vous devriez simplement la
315 charger au préalable :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
316
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
317 require 'rdiscount' # ou require 'bluecloth'
318 get('/') { markdown :index }
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
319
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
320 === Templates Haml
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
321
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
322 Dépendances:: {haml}[http://haml-lang.com/]
323 Extensions de fichier:: <tt>.haml</tt>
324 Exemple:: <tt>haml :index, :format => :html5</tt>
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
325
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
326 === Templates Erb
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
327
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
328 Dépendances:: {erubis}[http://www.kuwata-lab.com/erubis/] ou
329 erb (inclus avec Ruby)
330 Extensions de fichier:: <tt>.erb</tt>, <tt>.rhtml</tt> or <tt>.erubis</tt>
331 (Erubis seulement)
332 Exemple:: <tt>erb :index</tt>
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
333
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
334 === Templates Builder
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
335
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
336 Dépendances:: {builder}[http://builder.rubyforge.org/]
337 Extensions de fichier:: <tt>.builder</tt>
338 Exemple:: <tt>builder { |xml| xml.em "hi" }</tt>
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
339
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
340 Ce moteur accepte également un bloc pour des templates en ligne (voir exemple).
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
341
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
342 === Templates Nokogiri
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
343
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
344 Dépendances:: {nokogiri}[http://nokogiri.org/]
345 Extensions de fichier:: <tt>.nokogiri</tt>
346 Exemple:: <tt>builder { |xml| xml.em "hi" }</tt>
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
347
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
348 Ce moteur accepte également un bloc pour des templates en ligne (voir exemple).
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
349
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
350 === Templates Sass
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
351
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
352 Dépendances:: {sass}[http://sass-lang.com/]
353 Extensions de fichier:: <tt>.sass</tt>
354 Exemple:: <tt>sass :stylesheet, :style => :expanded</tt>
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
355
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
356 === Templates SCSS
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
357
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
358 Dépendances:: {sass}[http://sass-lang.com/]
359 Extensions de fichier:: <tt>.scss</tt>
360 Exemple:: <tt>scss :stylesheet, :style => :expanded</tt>
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
361
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
362 === Templates Less
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
363
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
364 Dépendances:: {less}[http://www.lesscss.org/]
365 Extensions de fichier:: <tt>.less</tt>
366 Exemple:: <tt>less :stylesheet</tt>
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
367
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
368 === Templates Liquid
369
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
370 Dépendances:: {liquid}[http://www.liquidmarkup.org/]
371 Extensions de fichier:: <tt>.liquid</tt>
372 Exemple:: <tt>liquid :index, :locals => { :key => 'value' }</tt>
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
373
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
374 Comme vous ne pouvez appeler de méthodes Ruby (autres que +yield+) dans un
375 template Liquid, vous aurez sûrement à lui passer des variables locales.
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
376
377 === Templates Markdown
378
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
379 Dépendances:: {rdiscount}[https://github.com/rtomayko/rdiscount],
380 {redcarpet}[https://github.com/tanoku/redcarpet],
381 {bluecloth}[http://deveiate.org/projects/BlueCloth],
382 {kramdown}[http://kramdown.rubyforge.org/] *ou*
383 {maruku}[http://maruku.rubyforge.org/]
384 Extensions de fichier:: <tt>.markdown</tt>, <tt>.mkd</tt> and <tt>.md</tt>
385 Exemple:: <tt>markdown :index, :layout_engine => :erb</tt>
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
386
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
387 Il n'est pas possible d'appeler des méthodes depuis markdown, ni même de lui
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
388 passer des variables locales. Par conséquent, il sera souvent utilisé en
389 combinaison avec un autre moteur de rendu :
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
390
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
391 erb :overview, :locals => { :text => markdown(:introduction) }
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
392
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
393 Notez que vous pouvez également appeler la méthode +markdown+ au sein d'autres
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
394 templates :
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
395
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
396 %h1 Hello From Haml !
397 %p= markdown(:greetings)
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
398
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
399 Comme vous ne pouvez pas appeler de Ruby au sein de Markdown, vous ne pouvez
400 pas utiliser de +layouts+ écrits en Markdown. Toutefois, il est possible
401 d'utiliser un autre moteur de rendu pour le template que pour le +layout+ en
402 utilisant l'option <tt>:layout_engine</tt>.
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
403
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
404 === Templates Textile
405
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
406 Dépendances:: {RedCloth}[http://redcloth.org/]
407 Extensions de fichier:: <tt>.textile</tt>
408 Exemple:: <tt>textile :index, :layout_engine => :erb</tt>
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
409
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
410 Il n'est pas possible d'appeler des méthodes depuis textile, ni même de lui
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
411 passer des variables locales. Par conséquent, il sera souvent utilisé en
412 combinaison avec un autre moteur de rendu :
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
413
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
414 erb :overview, :locals => { :text => textile(:introduction) }
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
415
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
416 Notez que vous pouvez également appeler la méthode +textile+ au sein d'autres
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
417 templates :
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
418
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
419 %h1 Hello From Haml !
420 %p= textile(:greetings)
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
421
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
422 Comme vous ne pouvez pas appeler de Ruby au sein de Textile, vous ne pouvez
423 pas utiliser de +layouts+ écrits en Textile. Toutefois, il est possible
424 d'utiliser un autre moteur de rendu pour le template que pour le +layout+ en
425 utilisant l'option <tt>:layout_engine</tt>.
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
426
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
427 === Templates RDoc
428
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
429 Dépendances:: {rdoc}[http://rdoc.rubyforge.org/]
430 Extensions de fichier:: <tt>.rdoc</tt>
431 Exemple:: <tt>textile :README, :layout_engine => :erb</tt>
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
432
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
433 Il n'est pas possible d'appeler des méthodes depuis rdoc, ni même de lui
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
434 passer des variables locales. Par conséquent, il sera souvent utilisé en
435 combinaison avec un autre moteur de rendu :
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
436
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
437 erb :overview, :locals => { :text => rdoc(:introduction) }
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
438
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
439 Notez que vous pouvez également appeler la méthode +rdoc+ au sein d'autres
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
440 templates :
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
441
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
442 %h1 Hello From Haml !
443 %p= rdoc(:greetings)
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
444
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
445 Comme vous ne pouvez pas appeler de Ruby au sein de RDoc, vous ne pouvez
446 pas utiliser de +layouts+ écrits en RDoc. Toutefois, il est possible
447 d'utiliser un autre moteur de rendu pour le template que pour le +layout+ en
448 utilisant l'option <tt>:layout_engine</tt>.
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
449
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
450 === Templates Radius
451
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
452 Dépendances:: {radius}[http://radius.rubyforge.org/]
453 Extensions de fichier:: <tt>.radius</tt>
454 Exemple:: <tt>radius :index, :locals => { :key => 'value' }</tt>
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
455
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
456 Comme vous ne pouvez pas appeler de méthodes Ruby depuis un template Radius,
457 vous aurez sûrement à lui passer des variables locales
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
458
459 === Templates Markaby
460
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
461 Dépendances:: {markaby}[http://markaby.github.com/]
462 Extensions de fichier:: <tt>.mab</tt>
463 Exemple:: <tt>markaby { h1 "Bienvenue !" }</tt>
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
464
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
465 Ce moteur accepte également un bloc pour des templates en ligne (voir exemple).
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
466
ca7fbe54 » rkh
2010-11-05 Add documentation for Slim templates.
467 === Templates Slim
468
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
469 Dépendances:: {slim}[http://slim-lang.com/]
470 Extensions de fichier:: <tt>.slim</tt>
471 Exemple:: <tt>slim :index</tt>
ca7fbe54 » rkh
2010-11-05 Add documentation for Slim templates.
472
9ce9e543 » rkh
2011-04-15 add support for creole templates
473 === Templates Creole
474
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
475 Dépendances:: {creole}[https://github.com/minad/creole]
476 Extensions de fichier:: <tt>.creole</tt>
477 Exemple:: <tt>creole :wiki, :layout_engine => :erb</tt>
9ce9e543 » rkh
2011-04-15 add support for creole templates
478
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
479 Il n'est pas possible d'appeler des méthodes depuis creole, ni même de lui
480 passer des variables locales. Par conséquent, il sera souvent utilisé en
481 combinaison avec un autre moteur de rendu :
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
482
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
483 erb :overview, :locals => { :text => creole(:introduction) }
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
484
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
485 Notez que vous pouvez également appeler la méthode +creole+ au sein d'autres
486 templates :
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
487
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
488 %h1 Hello From Haml !
489 %p= creole(:greetings)
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
490
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
491 Comme vous ne pouvez pas appeler de Ruby au sein de Creole, vous ne pouvez
492 pas utiliser de +layouts+ écrits en Creole. Toutefois, il est possible
493 d'utiliser un autre moteur de rendu pour le template que pour le +layout+ en
494 utilisant l'option <tt>:layout_engine</tt>.
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
495
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
496 === Templates CoffeeScript
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
497
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
498 Dépendances:: {coffee-script}[https://github.com/josh/ruby-coffee-script]
499 et un {moyen d'exécuter javascript}[https://github.com/sstephenson/execjs/blob/master/README.md#readme]
500 Extensions de fichier:: <tt>.coffee</tt>
501 Exemple:: <tt>coffee :index</tt>
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
502
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
503 === Templates embarqués
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
504
505 get '/' do
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
506 haml '%div.title Bonjour le monde'
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
507 end
508
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
509 Générera le template embarqué spécifié dans la chaîne de caractères.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
510
511 === Accéder aux variables dans un Template
512
513 Un template est évalué dans le même contexte que l'endroit d'où il a été
514 appelé (gestionnaire de route). Les variables d'instance déclarées dans le
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
515 gestionnaire de route sont directement accessibles dans le template :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
516
517 get '/:id' do
518 @foo = Foo.find(params[:id])
519 haml '%h1= @foo.nom'
520 end
521
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
522 Alternativement, on peut passer un hash contenant des variables locales :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
523
524 get '/:id' do
525 foo = Foo.find(params[:id])
526 haml '%h1= foo.nom', :locals => { :foo => foo }
527 end
528
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
529 Ceci est généralement utilisé lorsque l'on veut utiliser un template comme
530 partiel (depuis un autre template) et qu'il est donc nécessaire d'adapter les
531 noms de variables.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
532
533 === Templates dans le fichier source
534
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
535 Des templates peuvent être définis dans le fichier source comme ceci :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
536
537 require 'sinatra'
538
539 get '/' do
540 haml :index
541 end
542
543 __END__
544
545 @@ layout
546 %html
547 = yield
548
549 @@ index
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
550 %div.title Bonjour le monde !
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
551
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
552 NOTE : Les templates du fichier source qui contient <tt>require 'sinatra'</tt>
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
553 sont automatiquement chargés. Si vous avez des templates dans d'autres
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
554 fichiers source, il faut explicitement les déclarer avec
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
555 <tt>enable :inline_templates</tt>.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
556
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
557 === Templates nommés
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
558
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
559 Les templates peuvent aussi être définis grâce à la méthode de haut niveau
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
560 <tt>template</tt> :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
561
562 template :layout do
563 "%html\n =yield\n"
564 end
565
566 template :index do
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
567 '%div.title Bonjour le monde !'
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
568 end
569
570 get '/' do
571 haml :index
572 end
573
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
574 Si un template nommé "layout" existe, il sera utilisé à chaque fois qu'un
575 template sera affiché. Vous pouvez désactivez les layouts au cas par cas en
576 passant <tt>:layout => false</tt> ou bien les désactiver par défaut au moyen
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
577 de <tt>set :haml, :layout => false</tt> :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
578
579 get '/' do
580 haml :index, :layout => !request.xhr?
581 end
582
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
583 === Associer des extensions de fichier
584
585 Pour associer une extension de fichier avec un moteur de rendu, utilisez
586 <tt>Tilt.register</tt>. Par exemple, si vous désirez utiliser l'extension
587 de fichier +tt+ pour les templates Textile, vous pouvez faire comme suit :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
588
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
589 Tilt.register :tt, Tilt[:textile]
590
591 === Ajouter son propre moteur de rendu
592
593 En premier lieu, déclarez votre moteur de rendu avec Tilt, ensuite créez
594 votre méthode de rendu :
595
596 Tilt.register :monmoteur, MonMerveilleurMoteurDeRendu
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
597
598 helpers do
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
599 def monmoteur(*args) render(:monmoteur, *args) end
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
600 end
601
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
602 get '/' do
603 monmoteur :index
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
604 end
605
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
606 Utilisera <tt>./views/index.monmoteur</tt>. Voir
607 https://github.com/rtomayko/tilt pour en savoir plus sur Tilt.
608
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
609 == Filtres
610
611 Un filtre <tt>before</tt> est évalué avant n'importe quelle requête, dans le
612 contexte de celle-ci, et peut modifier la requête ou la réponse. Les variables
613 d'instance déclarées dans le filtre sont accessibles au gestionnaire de route
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
614 et au template :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
615
616 before do
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
617 @note = 'Coucou !'
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
618 request.path_info = '/foo/bar/baz'
619 end
620
621 get '/foo/*' do
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
622 @note #=> 'Coucou !'
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
623 params[:splat] #=> 'bar/baz'
624 end
625
626 Un filtre <tt>after</tt> est évalué après chaque requête, dans le contexte
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
627 de celle-ci et peut également modifier la requête et/ou la réponse. Toutes les
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
628 variables d'instance déclarées dans un filtre <tt>before</tt> et dans le
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
629 gestionnaire de route sont accessibles dans le filtre <tt>after</tt> :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
630
631 after do
632 puts response.status
633 end
634
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
635 Note : Sauf si vous utilisez la méthode +body+ au lieu de renvoyer une chaîne
636 de caractères dans vos gestionnaires de routes, le corps de la réponse ne sera
637 pas disponible dans le filtre <tt>after</tt>, étant donné qu'il est généré
638 plus tard.
639
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
640 En option, on peut passer un masque au filtre, ce qui le rend actif uniquement
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
641 si la requête correspond au masque en question :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
642
643 before '/secret/*' do
644 authentification!
645 end
646
647 after '/faire/:travail' do |travail|
648 session[:dernier_travail] = travail
649 end
650
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
651 Tout comme les routes, les filtres acceptent également les conditions :
652
653 before :agent => /Songbird/ do
654 # ...
655 end
656
657 after '/blog/*', :host_name => 'example.com' do
658 # ...
659 end
660
661 == Helpers
662
663 Utilisez la méthode de haut niveau <tt>helpers</tt> pour définir des routines
664 qui seront accessibles dans vos gestionnaires de route et dans vos templates :
665
666 helpers do
667 def bar(nom)
668 "#{nom}bar"
669 end
670 end
671
672 get '/:nom' do
673 bar(params[:nom])
674 end
675
676 === Utiliser les sessions
677
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
678 Une session est utilisée pour conserver un état entre les requêtes. Une fois
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
679 activées, vous avez un +hash+ de session par session utilisateur :
680
681 enable :sessions
682
683 get '/' do
684 "valeur = " << session[:valeur].inspect
685 end
686
687 get '/:value' do
688 session[:valeur] = params[:valeur]
689 end
690
691 Notez que <tt>enable :sessions</tt> enregistre en fait toutes les données dans
692 un +cookie+. Ce n'est pas toujours ce que vous voulez (enregistrer beaucoup de
693 données va augmenter le traffic par exemple). Vous pouvez utiliser n'importe
694 quel +middleware+ Rack de session afin d'éviter cela. N'utiliser *pas*
695 <tt>enable :sessions</tt> dans ce cas mais charger le +middleware+ de votre
696 choix comme vous le feriez pour n'importe quel autre +middleware+ :
697
698 use Rack::Session::Pool, :expire_after => 2592000
699
700 get '/' do
701 "valeur = " << session[:valeur].inspect
702 end
703
704 get '/:value' do
705 session[:valeur] = params[:valeur]
706 end
707
644c26e2 » sylvaindesve
2011-04-05 French README update.
708 Pour renforcer la sécurité, les données de session dans le cookie sont signées
709 avec une clé secrète de session. Une clé secrète est générée pour vous au
710 hasard par Sinatra. Toutefois, comme cette clé change à chaque démarrage de
711 votre application, vous pouvez définir cette clé vous-même afin que toutes
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
712 les instances de votre application la partage :
644c26e2 » sylvaindesve
2011-04-05 French README update.
713
714 set :session_secret, 'super secret'
715
716 Si vous souhaitez avoir plus de contrôle, vous pouvez également enregistrer un
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
717 +hash+ avec des options lors de la configuration de +sessions+ :
644c26e2 » sylvaindesve
2011-04-05 French README update.
718
719 set :sessions, :domain => 'foo.com'
720
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
721 == Halt
722
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
723 Pour arrêter immédiatement la requête dans un filtre ou un gestionnaire de
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
724 route :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
725
726 halt
727
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
728 Vous pouvez aussi passer le code retour ...
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
729
730 halt 410
731
732 Ou le texte ...
733
734 halt 'Ceci est le texte'
735
736 Ou les deux ...
737
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
738 halt 401, 'Partez !'
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
739
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
740 Ainsi que les entêtes ...
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
741
742 halt 402, {'Content-Type' => 'text/plain'}, 'revanche'
743
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
744 Bien sûr il est possible de combiner un template avec +halt+ :
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
745
746 halt erb(:erreur)
747
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
748 == Passer
749
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
750 Une route peut passer le relais aux autres routes qui correspondent également
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
751 avec <tt>pass</tt> :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
752
753 get '/devine/:qui' do
754 pass unless params[:qui] == 'Frank'
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
755 "Tu m'as eu !"
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
756 end
757
758 get '/devine/*' do
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
759 'Manqué !'
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
760 end
761
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
762 On sort donc immédiatement de ce gestionnaire et on continue à chercher,
763 dans les masques suivants, le prochain qui correspond à la requête.
764 Si aucun des masques suivants ne correspond, un code 404 est retourné.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
765
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
766 === Déclencher une autre route
767
768 Parfois, +pass+ n'est pas ce que vous recherchez, au lieu de cela vous
769 souhaitez obtenir le résultat d'une autre route. Pour cela, utilisez
770 simplement +call+ :
771
772 get '/foo' do
66f12561 » rkh
2011-04-17 env is accessable directly, no need to use request.env
773 status, headers, body = call env.merge("PATH_INFO" => '/bar')
039675f4 » rkh
2011-04-17 test and fix #call example
774 [status, headers, body.map(&:upcase)]
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
775 end
776
777 get '/bar' do
778 "bar"
779 end
780
781 Notez que dans l'exemple ci-dessus, vous faciliterez les tests et améliorerez
782 la performance en déplaçant simplement <tt>"bar"</tt> dans un +helper+
783 utilisé à la fois par <tt>/foo</tt> et <tt>/bar</tt>.
784
785 Si vous souhiatez que la requête soit envoyée à la même instance de
786 l'application plutôt qu'à une copie, utilisez <tt>call!</tt> au lieu de
787 <tt>call</tt>.
788
789 Lisez la spécification Rack si vous souhaitez en savoir plus sur
790 <tt>call</tt>.
791
792 === Définir le corps, le code retour et les entêtes
793
794 Il est possible et recommandé de définir le code retour et le corps de la
795 réponse au moyen de la valeur de retour d'un bloc définissant une route.
796 Quoiqu'il en soit, dans certains cas vous pourriez avoir besoin de définir
797 le coprs de la réponse à un moment arbitraire de l'exécution. Vous pouvez le
798 faire au moyen de la méthode +body+. Si vous faites ainsi, vous pouvez alors
799 utiliser cette même méthode pour accéder au corps de la réponse :
800
801 get '/foo' do
802 body "bar"
803 end
804
805 after do
806 puts body
807 end
808
809 Il est également possible de passer un bloc à +body+, qui sera exécuté par le
810 gestionnaire Rack (ceci peut être utilisé pour implémenter un +streaming+,
811 voir "Valeurs de retour").
812
813 Pareillement au corps de la réponse, vous pouvez également définir le code
814 retour et les entêtes :
815
816 get '/foo' do
817 status 418
818 headers \
819 "Allow" => "BREW, POST, GET, PROPFIND, WHEN"
820 "Refresh" => "Refresh: 20; http://www.ietf.org/rfc/rfc2324.txt"
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
821 body "Je suis une théière !"
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
822 end
823
824 Comme +body+, +headers+ et +status+ peuvent être utilisés sans arguments
825 pour accéder à leurs valeurs.
826
644c26e2 » sylvaindesve
2011-04-05 French README update.
827 === Journalisation (Logging)
828
829 Dans le contexte de la requête, la méthode utilitaire +logger+ expose une
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
830 instance de +logger+ :
644c26e2 » sylvaindesve
2011-04-05 French README update.
831
832 get '/' do
833 logger.info "chargement des données"
834 # ...
835 end
836
837 Ce +logger+ va automatiquement prendre en compte les paramètres de
838 configuration pour la journalisation de votre gestionnaire Rack. Si la
839 journalisation est désactivée, cette méthode renverra un objet factice et
840 vous n'avez pas à vous en inquiéter dans vos routes en le filtrant.
841
842 Notez que la journalisation est seulement activée par défaut pour
843 <tt>Sinatra::Application</tt>, donc si vous héritez de <tt>Sinatra::Base</tt>,
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
844 vous aurez à l'activer vous-même :
644c26e2 » sylvaindesve
2011-04-05 French README update.
845
846 class MonApp < Sinatra::Base
847 configure(:production, :development) do
848 enable :logging
849 end
850 end
851
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
852 === Types Mime
853
854 Quand vous utilisez <tt>send_file</tt> ou des fichiers statiques, vous
855 pouvez rencontrer des types mime que Sinatra ne connaît pas. Utilisez
856 +mime_type+ pour les déclarer par extension de fichier :
857
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
858 configure do
859 mime_type :foo, 'text/foo'
860 end
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
861
862 Vous pouvez également les utiliser avec la méthode +content_type+ :
863
864 get '/' do
865 content_type :foo
866 "foo foo foo"
867 end
868
869 === Former des URLs
870
871 Pour former des URLs, vous devriez utiliser la méthode +url+, par exemple en
872 Haml :
873
874 %a{:href => url('/foo')} foo
875
876 Cela prend en compte les proxy inverse et les routeurs Rack, s'ils existent.
877
878 Cette méthode est également disponible sous l'alias +to+ (voir ci-dessous
879 pour un exemple).
880
881 === Redirection du navigateur
882
883 Vous pouvez déclencher une redirection du navigateur avec la méthode
884 +redirect+ :
885
886 get '/foo' do
887 redirect to('/bar')
888 end
889
890 Tout paramètre additionnel est géré comme des arguments pour la méthode
891 +halt+ :
892
893 redirect to('/bar'), 303
894 redirect 'http://google.com', 'mauvais endroit mon pote'
895
896 Vous pouvez aussi rediriger vers la page dont l'utilisateur venait au moyen de
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
897 <tt>redirect back</tt> :
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
898
899 get '/foo' do
900 "<a href='/bar'>faire quelque chose</a>"
901 end
902
903 get '/bar' do
904 faire_quelque_chose
905 redirect back
906 end
907
908 Pour passer des arguments à une redirection, ajoutez-les soit à la requête :
909
910 redirect to('/bar?sum=42')
911
912 Ou bien utilisez une session :
913
914 enable :session
915
916 get '/foo' do
917 session[:secret] = 'foo'
918 redirect to('/bar')
919 end
920
921 get '/bar' do
922 session[:secret]
923 end
924
925 === Contrôle du cache
926
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
927 Définir correctement vos entêtes à la base pour un bon cache HTTP.
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
928
929 Vous pouvez facilement définir l'entête Cache-Control de la manière suivante :
930
931 get '/' do
932 cache_control :public
933 "met le en cache !"
934 end
935
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
936 Conseil de pro : définir le cache dans un filtre +before+ :
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
937
938 before do
939 cache_control :public, :must_revalidate, :max_age => 60
940 end
941
942 Si vous utilisez la méthode +expires+ pour définir l'entête correspondant,
943 <tt>Cache-Control</tt> sera alors défini automatiquement :
944
945 before do
946 expires 500, :public, :must_revalidate
947 end
948
949 Pour utiliser correctement les caches, vous devriez utiliser +etag+ et
950 +last_modified+. Il est recommandé d'utiliser ces méthodes *avant* de faire
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
951 d'importantes modifications, car elles vont immédiatement déclencher la réponse
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
952 si le client a déjà la version courante dans son cache :
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
953
954 get '/article/:id' do
955 @article = Article.find params[:id]
956 last_modified @article.updated_at
957 etag @article.sha1
958 erb :article
959 end
960
961 Il est également possible d'utiliser un
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
962 {weak ETag}[http://en.wikipedia.org/wiki/HTTP_ETag#Strong_and_weak_validation] :
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
963
964 etag @article.sha1, :weak
965
966 Ces méthodes ne sont pas chargées de mettre des données en cache, mais elles
967 fournissent les informations nécessaires pour votre cache. Si vous êtes à la
968 recherche de solutions rapides de cache, essayez
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
969 {rack-cache}[http://rtomayko.github.com/rack-cache/] :
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
970
971 require "rack/cache"
972 require "sinatra"
973
974 use Rack::Cache
975
976 get '/' do
977 cache_control :public, :max_age => 36000
978 sleep 5
979 "hello"
980 end
981
982 === Envoyer des fichiers
983
984 Pour envoyer des fichiers, vous pouvez utiliser la méthode
985 <tt>send_file</tt> :
986
987 get '/' do
988 send_file 'foo.png'
989 end
990
991 Quelques options sont également acceptées :
992
993 send_file 'foo.png', :type => :jpg
994
995 Les options sont :
996
997 [filename]
998 le nom du fichier dans la réponse, par défaut le nom du fichier envoyé.
999
1000 [last_modified]
1001 valeur pour l'entête Last-Modified, par défaut la date de modification du
1002 fichier
1003
1004 [type]
1005 type de contenu à utiliser, deviné à partir de l'extension de fichier si
1006 absent
1007
1008 [disposition]
1009 utilisé pour Content-Disposition, les valuers possibles étant : +nil+ (par
1010 défaut), <tt>:attachment</tt> et <tt>:inline</tt>
1011
1012 [length]
1013 entête Content-Length, par défaut la taille du fichier
1014
1015 Si le gestionnaire Rack le supporte, d'autres moyens que le +streaming+ via le
1016 processus Ruby seront utilisés. Si vous utilisez cette méthode, Sinatra gérera
1017 automatiquement les requêtes de type +range+.
1018
3feef2d0 » sylvaindesve
2010-10-12 Updated French README with request object documentation.
1019 == Accéder à l'objet requête
1020
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1021 L'objet correspondant à la requête envoyée peut être récupéré dans le contexte
1022 de la requête (filtres, routes, gestionnaires d'erreur) au moyen de la méthode
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1023 +request+ :
3feef2d0 » sylvaindesve
2010-10-12 Updated French README with request object documentation.
1024
1025 # application tournant à l'adresse http://exemple.com/exemple
1026 get '/foo' do
644c26e2 » sylvaindesve
2011-04-05 French README update.
1027 t = %w[text/css text/html application/javascript]
1028 request.accept # ['text/html', '*/*']
1029 request.accept? 'text/xml' # true
1030 request.preferred_type(t) # 'text/html'
1031 request.body # corps de la requête envoyée par le client
1032 # (voir ci-dessous)
1033 request.scheme # "http"
1034 request.script_name # "/exemple"
1035 request.path_info # "/foo"
1036 request.port # 80
1037 request.request_method # "GET"
1038 request.query_string # ""
1039 request.content_length # taille de request.body
1040 request.media_type # type de média pour request.body
1041 request.host # "exemple.com"
1042 request.get? # true (méthodes similaires pour les autres
1043 # verbes HTTP)
1044 request.form_data? # false
1045 request["UN_ENTETE"] # valeur de l'entête UN_ENTETE
1046 request.referer # référant du client ou '/'
1047 request.user_agent # user agent (utilisé par la condition :agent)
1048 request.cookies # tableau contenant les cookies du navigateur
1049 request.xhr? # requête AJAX ?
1050 request.url # "http://exemple.com/exemple/foo"
1051 request.path # "/exemple/foo"
1052 request.ip # adresse IP du client
1053 request.secure? # false
1054 request.forwarded? # vrai (si on est derrière un proxy inverse)
1055 request.env # tableau brut de l'environnement fourni par
1056 # Rack
3feef2d0 » sylvaindesve
2010-10-12 Updated French README with request object documentation.
1057 end
1058
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1059 Certaines options, telles que <tt>script_name</tt> ou <tt>path_info</tt>
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1060 peuvent également être modifiées :
3feef2d0 » sylvaindesve
2010-10-12 Updated French README with request object documentation.
1061
1062 before { request.path_info = "/" }
1063
1064 get "/" do
1065 "toutes les requêtes arrivent ici"
1066 end
1067
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
1068 <tt>request.body</tt> est un objet IO ou StringIO :
3feef2d0 » sylvaindesve
2010-10-12 Updated French README with request object documentation.
1069
1070 post "/api" do
1071 request.body.rewind # au cas où il a déjà été lu
1072 donnees = JSON.parse request.body.read
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1073 "Bonjour #{donnees['nom']} !"
3feef2d0 » sylvaindesve
2010-10-12 Updated French README with request object documentation.
1074 end
1075
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1076 === Fichiers joints
1077
1078 Vous pouvez utiliser la méthode +attachment+ pour indiquer au navigateur que
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1079 la réponse devrait être stockée sur le disque plutôt qu'affichée :
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1080
1081 get '/' do
1082 attachment
1083 "enregistre-le !"
1084 end
1085
1086 Vous pouvez également lui passer un nom de fichier :
1087
1088 get '/' do
1089 attachment "info.txt"
1090 "enregistre-le !"
1091 end
1092
1093 === Chercher les fichiers de templates
1094
1095 La méthode <tt>find_template</tt> est utilisée pour trouver les fichiers de
1096 templates à générer :
1097
1098 find_template settings.views, 'foo', Tilt[:haml] do |file|
1099 puts "pourrait être #{file}"
1100 end
1101
1102 Ce n'est pas très utilise. En revanche, il est utile de pouvoir surcharger
1103 cette méthode afin de définir son propre mécanisme de recherche. Par exemple,
1104 vous pouvez utiliser plus d'un répertoire de vues :
1105
1106 set :views, ['views', 'templates']
1107
1108 helpers do
1109 def find_template(views, name, engine, &block)
1110 Array(views).each { |v| super(v, name, engine, &block) }
1111 end
1112 end
1113
1114 Un autre exemple est d'utiliser des répertoires différents pour des moteurs
1115 de rendu différents :
1116
1117 set :views, :sass => 'views/sass', :haml => 'templates', :default => 'views'
1118
1119 helpers do
1120 def find_template(views, name, engine, &block)
1121 _, folder = views.detect { |k,v| engine == Tilt[k] }
1122 folder ||= views[:default]
1123 super(folder, name, engine, &block)
1124 end
1125 end
1126
1127 Vous pouvez également écrire cela dans une extension et la partager avec
1128 d'autres !
1129
1130 Notez que <tt>find_template</tt> ne vérifie pas que le fichier existe mais
1131 va plutôt exécuter le bloc pour tous les chemins possibles. Cela n'induit pas
1132 un problème de performance dans le sens où +render+ va utiliser +break+ dès
1133 qu'un fichier est trouvé. De plus, l'emplacement des templates (et leur
1134 contenu) est mis en cache si vous n'êtes pas en mode développement. Vous
1135 devriez garder cela en tête si vous écrivez une méthode vraiment dingue.
1136
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1137 == Configuration
1138
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1139 Lancé une seule fois au démarrage de tous les environnements :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1140
1141 configure do
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1142 # définir un paramètre
1143 set :option, 'value'
1144
1145 # définir plusieurs paramètre
1146 set :a => 1, :b => 2
1147
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1148 # identique à "set :option, true"
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1149 enable :option
1150
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1151 # identique à "set :option, false""
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1152 disable :option
1153
1154 # vous pouvez également avoir des paramètres dynamiques avec des blocs
1155 set(:css_dir) { File.join(views, 'css') }
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1156 end
1157
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1158 Lancé si l'environnement (variable d'environnement RACK_ENV) est défini comme
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1159 <tt>:production</tt> :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1160
1161 configure :production do
1162 ...
1163 end
1164
1165 Lancé si l'environnement est <tt>:production</tt> ou
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1166 <tt>:test</tt> :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1167
1168 configure :production, :test do
1169 ...
1170 end
1171
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1172 Vous pouvez accéder à ces paramètres via <tt>settings</tt> :
1173
1174 configure do
1175 set :foo, 'bar'
1176 end
1177
1178 get '/' do
1179 settings.foo? # => true
1180 settings.foo # => 'bar'
1181 ...
1182 end
1183
1184 === Paramètres disponibles
1185
1186 [absolute_redirects] Si désactivé, Sinatra permettra les redirections
1187 relatives. Toutefois, Sinatra ne sera plus conforme à la
1188 RFC 2616 (HTTP 1.1), qui n'autorise que les redirections
1189 absolues.
1190
1191 Activez si votre application tourne derrière un proxy
1192 inverse qui n'a pas été correctement configuré. Notez
1193 que la méthode +url+ continuera de produire des URLs
1194 absolues, sauf si vous lui passez +false+ comme second
1195 argument.
1196
1197 Désactivé par défaut.
1198
1199 [add_charsets] types mime pour lesquels la méthode
1200 <tt>content_type</tt> va automatiquement ajouter
1201 l'information du +charset+.
1202
1203 Vous devriez lui ajouter des valeurs plutôt que de
1204 l'écraser :
1205
1206 settings.add_charsets << "application/foobar"
1207
1208 [app_file] fichier de l'application principale, utilisé pour
1209 détecterla racine du projet, le dossier public et le
1210 dossier de vues ainsi que pour les templates en ligne.
1211
1212 [bind] adresse IP sur laquelle se brancher
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
1213 (par défaut : 0.0.0.0).
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1214 Utiliser seulement pour le serveur intégré.
1215
1216 [default_encoding] encodage à utiliser si inconnu (par défaut
1217 <tt>"utf-8"</tt>).
1218
1219 [dump_errors] afficher les erreurs dans le +log+.
1220
1221 [environment] environnement courant, par défaut
1222 <tt>ENV['RACK_ENV']</tt>, ou
1223 <tt>"development"</tt> si absent.
1224
1225 [logging] utiliser le +logger+.
1226
1227 [lock] Place un +lock+ autour de chaque requête, n'exécutant
1228 donc qu'une seule requête par processus Ruby.
1229
1230 Activé si votre application n'est pas +thread-safe+.
1231 Désactivé par défaut.
1232
1233 [method_override] utilise la magie de <tt>_method</tt> afin de permettre
1234 des formulaires put/delete dans des navigateurs qui ne
1235 le permettent pas.
1236
1237 [port] port à écouter. Utiliser seulement pour le serveur
1238 intégré.
1239
1240 [prefixed_redirects] si oui ou non <tt>request.script_name</tt> doit être
1241 inséré dans les redirections si un chemin non absolu
1242 est utilisé. Ainsi, <tt>redirect '/foo'</tt> se
1243 comportera comme <tt>redirect to('/foo')</tt>.
1244 Désactivé par défaut.
1245
d1ab58de » rkh
2011-06-16 rename public to public_folder, fixes #301
1246 [public_folder] dossier duquel les fichiers publics sont servis
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1247
1248 [reload_templates] si oui ou non les templates doivent être rechargés
644c26e2 » sylvaindesve
2011-04-05 French README update.
1249 entre les requêtes. Activé en mode développement.
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1250
1251 [root] dossier racine du projet.
1252
1253 [raise_errors] soulever les erreurs (ce qui arrêtera l'application).
1254
1255 [run] si activé, Sinatra s'occupera de démarrer le serveur,
1256 ne pas activer si vous utiliser rackup ou autres.
1257
1258 [running] est-ce que le serveur intégré est en marche ?
1259 ne changez pas ce paramètre !
1260
1261 [server] serveur ou liste de serveurs à utiliser pour le serveur
1262 intégré.
1263 Par défaut ['thin', 'mongrel', 'webrick'], l'ordre
1264 indiquant la priorité.
1265
1266 [sessions] active l'enregistrement des sessions en utilisant les
1267 cookies.
1268
1269 [show_exceptions] affiche la trace de l'erreur dans le navigateur.
1270
1271 [static] Si oui ou non Sinatra doit s'occuper de servir les
1272 fichiers statiques.
1273 Désactivez si vous utilisez un serveur capable de le
1274 gérer lui même. Le désactiver augmentera la performance.
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
1275 Activé par défaut pour le style classique, désactivé pour
1276 le style modulaire.
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1277
1278 [views] dossier des vues.
1279
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1280 == Gérer les erreurs
1281
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1282 Les gestionnaires d'erreur s'exécutent dans le même contexte que les routes ou
1283 les filtres, ce qui veut dire que vous avez accès (entre autres) aux bons
1284 vieux <tt>haml</tt>, <tt>erb</tt>, <tt>halt</tt>, etc.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1285
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1286 === NotFound
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1287
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1288 Quand une exception <tt>Sinatra::NotFound</tt> est soulevée, ou que le code
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1289 retour est 404, le gestionnaire <tt>not_found</tt> est invoqué :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1290
1291 not_found do
1292 'Pas moyen de trouver ce que vous cherchez'
1293 end
1294
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1295 === Error
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1296
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1297 Le gestionnaire +error+ est invoqué à chaque fois qu'une exception est
1298 soulevée dans une route ou un filtre. L'objet exception est accessible via la
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1299 variable Rack <tt>sinatra.error</tt> :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1300
1301 error do
1302 'Désolé mais une méchante erreur est survenue - ' + env['sinatra.error'].name
1303 end
1304
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1305 Erreur sur mesure :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1306
1307 error MonErreurSurMesure do
66f12561 » rkh
2011-04-17 env is accessable directly, no need to use request.env
1308 'Donc il est arrivé ceci...' + env['sinatra.error'].message
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1309 end
1310
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1311 Donc si ceci arrive :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1312
1313 get '/' do
1314 raise MonErreurSurMesure, 'quelque chose de mal'
1315 end
1316
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1317 Vous obtenez ça :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1318
1319 Donc il est arrivé ceci... quelque chose de mal
1320
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1321 Alternativement, vous pouvez avoir un gestionnaire d'erreur associé à un code
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1322 particulier :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1323
1324 error 403 do
1325 'Accès interdit'
1326 end
1327
1328 get '/secret' do
1329 403
1330 end
1331
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
1332 Ou un intervalle :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1333
1334 error 400..510 do
1335 'Boom'
1336 end
1337
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1338 Sinatra installe pour vous quelques gestionnaires <tt>not_found</tt> et
1339 <tt>error</tt> génériques lorsque vous êtes en environnement
1340 <tt>development</tt>.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1341
1342 == Les Middlewares Rack
1343
1344 Sinatra tourne avec Rack[http://rack.rubyforge.org/], une interface standard
1345 et minimale pour les web frameworks Ruby. Un des points forts de Rack est le
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1346 support de ce que l'on appelle des "middlewares" -- composant qui vient se
1347 situer entre le serveur et votre application, et dont le but est de
1348 visualiser/manipuler la requête/réponse HTTP, et d'offrir diverses
1349 fonctionnalités classiques.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1350
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1351 Sinatra permet de construire facilement des middlewares Rack via la méthode de
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1352 haut niveau +use+ :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1353
1354 require 'sinatra'
1355 require 'mon_middleware_perso'
1356
1357 use Rack::Lint
1358 use MonMiddlewarePerso
1359
1360 get '/bonjour' do
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1361 'Bonjour le monde'
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1362 end
1363
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1364 La sémantique de +use+ est identique à celle définie dans le DSL de
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1365 Rack::Builder[http://rack.rubyforge.org/doc/classes/Rack/Builder.html]
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1366 (le plus souvent utilisé dans un fichier rackup). Par exemple, la méthode
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1367 +use+ accepte divers arguments ainsi que des blocs :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1368
1369 use Rack::Auth::Basic do |login, password|
1370 login == 'admin' && password == 'secret'
1371 end
1372
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1373 Rack est distribué avec une bonne variété de middlewares standards pour les
1374 logs, débuguer, faire du routage URL, de l'authentification, gérer des
1375 sessions. Sinatra utilise beaucoup de ces composants automatiquement via la
1376 configuration, donc pour ceux-ci vous n'aurez pas à utiliser la méthode +use+.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1377
1378 == Tester
1379
1380 Les tests pour Sinatra peuvent être écrit avec n'importe quelle bibliothèque
1381 basée sur Rack. {Rack::Test}[http://gitrdoc.com/brynary/rack-test] est
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1382 recommandé :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1383
1384 require 'mon_application_sinatra'
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1385 require 'test/unit'
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1386 require 'rack/test'
1387
1388 class MonTest < Test::Unit::TestCase
1389 include Rack::Test::Methods
1390
1391 def app
1392 Sinatra::Application
1393 end
1394
1395 def test_ma_racine
1396 get '/'
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1397 assert_equal 'Bonjour le monde !', last_response.body
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1398 end
1399
1400 def test_avec_des_parametres
1401 get '/rencontrer', :name => 'Frank'
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1402 assert_equal 'Salut Frank !', last_response.body
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1403 end
1404
1405 def test_avec_rack_env
1406 get '/', {}, 'HTTP_USER_AGENT' => 'Songbird'
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1407 assert_equal "Vous utilisez Songbird !", last_response.body
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1408 end
1409 end
1410
1411 == Sinatra::Base - Les Middlewares, les Bibliothèques, et les Applications Modulaires
1412
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1413 Définir votre application au niveau supérieur fonctionne bien pour les
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1414 micro-applications, mais peut s'avérer moins pratique lorsqu'il s'agit
1415 de créer des composants réutilisables comme des middlewares Rack, faire
1416 du Rails metal, ou de simples bibliothèques avec un composant serveur, ou
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1417 même une extension pour Sinatra. Le DSL de haut niveau pollue l'espace de noms
1418 et est une configuration adaptée à une micro-application (un fichier unique
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
1419 pour l'application, les dossiers <tt>./public</tt> et <tt>./views</tt>, les
1420 logs, pages d'erreur, etc.). C'est là que <tt>Sinatra::Base</tt> entre en jeu :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1421
1422 require 'sinatra/base'
1423
1424 class MonApplication < Sinatra::Base
1425 set :sessions, true
1426 set :foo, 'bar'
1427
1428 get '/' do
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1429 'Bonjour le monde !'
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1430 end
1431 end
1432
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
1433 Les méthodes disponibles dans <tt>Sinatra::Base</tt> sont exactement identiques
1434 à celles disponibles dans le DSL de haut niveau. La plupart des applications
1435 de haut niveau peuvent être converties en composant <tt>Sinatra::Base</tt> avec
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1436 deux modifications :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1437
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1438 * Votre fichier doit charger +sinatra/base+ au lieu de +sinatra+ ;
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1439 autrement, toutes les méthodes de la DSL seront chargées dans l'espace
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1440 de noms.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1441 * Mettre vos gestionnaires de route, vos gestionnaires d'erreur, vos filtres
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
1442 et options dans une sous-classe de <tt>Sinatra::Base</tt>.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1443
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1444 <tt>Sinatra::Base</tt> est plutôt épuré. La plupart des options sont
1445 désactivées par défaut, ceci inclus le serveur. Voir {Options et
1446 Configuration}[http://sinatra.github.com/configuration.html]
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1447 pour plus de détails sur les options et leur comportement.
1448
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1449 === Style modulaire vs. style classique
1450
1451 Contrairement aux croyanaces, le style classique n'a rien de mauvais. Si cela
1452 convient à votre application, vous n'avez pas à changer pour une application
1453 modulaire.
1454
1455 Il n'y a que deux inconvénient au style classique comparé au style modulaire :
1456
1457 * Vous ne pouvez avoir qu'une seule application Sinatra par processus Ruby. Si
1458 vous envisagez d'en utiliser plus, passez au style modulaire
1459
1460 * Le style classique pollue la classe Object avec des méthodes déléguantes.
1461 Si vous prévoyez de diffuser votre application dans une bibliothèque/gem,
1462 passez au style modulaire.
1463
1464 Il n'y pas d'empêchement à mélanger style classic et style modulaire.
1465
1466 Si vous passez d'un style à l'autre, vous devriez être vigilant à quelques
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
1467 légères différences dans les paramètres par défaut :
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1468
1469 Paramètre Classique Modulaire
1470
1471 app_file fichier chargeant sinatra nil
1472 run $0 == app_file false
1473 logging true false
1474 method_override true false
1475 inline_templates true false
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
1476 static true false
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1477
1478
1479 === Servir une application modulaire
1480
1481 Il y a deux façons de faire pour démarrer une application modulaire, démarrez
1482 avec <tt>run!</tt> :
1483
1484 # my_app.rb
1485 require 'sinatra/base'
1486
1487 class MyApp < Sinatra::Base
1488 # ... code de l'application ici ...
1489
1490 # démarre le serveur si ce fichier est directement exécuté
1491 run! if app_file == $0
1492 end
1493
1494 Démarrez ensuite avec :
1495
1496 ruby my_app.rb
1497
1498 Ou alors avec un fichier <tt>config.ru</tt>, qui permet d'utiliser n'importe
1499 quel gestionnaire Rack :
1500
1501 # config.ru
b6d589e5 » rkh
2011-06-01 adjust readme examples so they work with 1.9.2 even if pwd is not on …
1502 require './my_app'
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1503 run MyApp
1504
1505 Exécutez :
1506
1507 rackup -p 4567
1508
1509 === Utiliser une application de style classique avec un fichier config.ru
1510
1511 Ecrivez votre application :
1512
1513 # app.rb
1514 require 'sinatra'
1515
1516 get '/' do
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1517 'Bonjour le monde !'
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1518 end
1519
1520 Et un fichier <tt>config.ru</tt> correspondant :
1521
b6d589e5 » rkh
2011-06-01 adjust readme examples so they work with 1.9.2 even if pwd is not on …
1522 require './app'
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1523 run Sinatra::Application
1524
1525 === Quand utiliser un fichier config.ru ?
1526
1527 Quelques cas où vous devriez utiliser un fichier <tt>config.ru</tt> :
1528
1529 * Vous souhaitez déployer avec un autre gestionnaire Rack (Passenger, Unicorn,
1530 Heroku, ...).
1531 * Vous souhaitez utiliser plus d'une sous-classe de <tt>Sinatra::Base</tt>.
1532 * Vous voulez utiliser Sinatra comme un +middleware+, non en tant que
1533 +endpoint+.
1534
1535 <b>Il n'est pas nécessaire de passer par un fichier <tt>config.ru</tt> pour la
1536 seule raison que vous êtes passé au style modulaire, et vous n'avez pas besoin
1537 de passer au style modulaire pour utiliser un fichier <tt>config.ru</tt>.</b>
1538
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1539 === Utiliser Sinatra comme Middleware
1540
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1541 Non seulement Sinatra peut utiliser d'autres middlewares Rack, il peut
1542 également être à son tour utilisé au-dessus de n'importe quel +endpoint+ Rack
1543 en tant que middleware. Ce +endpoint+ peut très bien être une autre
1544 application Sinatra, ou n'importe quelle application basée sur Rack
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1545 (Rails/Ramaze/Camping/...) :
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1546
1547 require 'sinatra/base'
1548
1549 class EcranDeConnexion < Sinatra::Base
e6887fe4 » andrewhampton
2010-11-07 Fix typo in middleware example.
1550 enable :sessions
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1551
1552 get('/connexion') { haml :connexion }
1553
1554 post('/connexion') do
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
1555 if params[:nom] = 'admin' && params[:motdepasse] = 'admin'
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1556 session['nom_utilisateur'] = params[:nom]
1557 else
1558 redirect '/connexion'
1559 end
1560 end
1561 end
1562
1563 class MonApp < Sinatra::Base
1564 # le middleware sera appelé avant les filtres
1565 use EcranDeConnexion
1566
1567 before do
1568 unless session['nom_utilisateur']
1569 halt "Accès refusé, merci de vous <a href='/connexion'>connecter</a>."
1570 end
1571 end
1572
1573 get('/') { "Bonjour #{session['nom_utilisateur']}." }
1574 end
1575
644c26e2 » sylvaindesve
2011-04-05 French README update.
1576 === Création dynamique d'applications
1577
1578 Il se peut que vous ayez besoin de créer une nouvelle application à l'exécution
1579 sans avoir à les assigner à une constante, vous pouvez le faire grâce à
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1580 <tt>Sinatra.new</tt> :
644c26e2 » sylvaindesve
2011-04-05 French README update.
1581
1582 require 'sinatra/base'
1583 mon_app = Sinatra.new { get('/') { "salut" } }
1584 mon_app.run!
1585
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1586 L'application dont elle hérite peut être passé en argument optionnel :
644c26e2 » sylvaindesve
2011-04-05 French README update.
1587
fd18d026 » gnandretta
2011-07-01 point out that the example is a config.ru in the other readmes
1588 # config.ru
644c26e2 » sylvaindesve
2011-04-05 French README update.
1589 require 'sinatra/base'
1590
1591 controleur = Sinatra.new do
1592 enable :logging
1593 helpers MyHelpers
1594 end
1595
1596 map('/a') do
1597 run Sinatra.new(controleur) { get('/') { 'a' } }
1598 end
1599
1600 map('/b') do
1601 run Sinatra.new(controleur) { get('/') { 'b' } }
1602 end
1603
1604 C'est notamment utile pour tester des extensions à Sinatra ou bien pour
1605 utiliser Sinatra dans votre propre bibliothèque.
1606
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1607 Cela permet également d'utiliser très facilement Sinatra comme middleware :
644c26e2 » sylvaindesve
2011-04-05 French README update.
1608
1609 require 'sinatra/base'
1610
1611 use Sinatra do
1612 get('/') { ... }
1613 end
1614
1615 run RailsProject::Application
1616
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1617 == Contextes et Binding
1618
1619 Le contexte dans lequel vous êtes détermine les méthodes et variables
1620 disponibles.
1621
1622 === Contexte de l'application/classe
1623
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
1624 Toute application Sinatra correspond à une sous-classe de <tt>Sinatra::Base</tt>.
1625 Si vous utilisez le DSL haut niveau (<tt>require 'sinatra'</tt>), alors cette
1626 classe est <tt>Sinatra::Application</tt>, sinon il s'agit de la sous-classe que
1627 vous avez définie. Dans le contexte de la classe, vous avez accès aux méthodes
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1628 telles que +get+ ou +before+, mais vous n'avez pas accès aux objets +request+
1629 ou +session+ car c'est la même classe d'application qui traitera toutes les
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1630 requêtes.
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1631
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
1632 Les options définies au moyen de +set+ deviennent des méthodes de classe :
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1633
796d62a4 » kryzhovnik
2010-11-10 README.* fixed typos
1634 class MonApp < Sinatra::Base
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1635 # Eh, je suis dans le contexte de l'application !
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1636 set :foo, 42
1637 foo # => 42
1638
1639 get '/foo' do
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1640 # Eh, je ne suis plus dans le contexte de l'application !
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1641 end
1642 end
1643
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
1644 Vous avez le binding du contexte de l'application dans :
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1645
1646 * Le corps de la classe d'application
1647 * Les méthodes définies par les extensions
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1648 * Le bloc passé à +helpers+
1649 * Les procs/blocs utilisés comme argument pour +set+
644c26e2 » sylvaindesve
2011-04-05 French README update.
1650 * Le bloc passé à <tt>Sinatra.new</tt>
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1651
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
1652 Vous pouvez atteindre ce contexte (donc la classe) de la façon suivante :
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1653
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1654 * Via l'objet passé dans les blocs +configure+ (<tt>configure { |c| ... }</tt>)
1655 * En utilisant +settings+ dans le contexte de la requête
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1656
1657 === Contexte de la requête/instance
1658
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1659 Pour tout traitement d'une requête, une nouvelle instance de votre classe
1660 d'application est créée et tous vos gestionnaires sont exécutés dans ce
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1661 contexte. Dans ce dernier, vous pouvez accéder aux objets +request+ et
1662 +session+ et faire appel aux fonctions de rendu telles que +erb+ ou +haml+.
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1663 Vous pouvez accéder au contexte de l'application depuis le contexte de la
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1664 requête au moyen de +settings+ :
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1665
796d62a4 » kryzhovnik
2010-11-10 README.* fixed typos
1666 class MonApp < Sinatra::Base
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1667 # Eh, je suis dans le contexte de l'application !
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1668 get '/ajouter_route/:nom' do
1669 # Contexte de la requête pour '/ajouter_route/:nom'
1670 @value = 42
1671
1672 settings.get("/#{params[:nom]}") do
1673 # Contexte de la requête pour "/#{params[:nom]}"
1674 @value # => nil (on est pas au sein de la même requête)
1675 end
1676
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1677 "Route ajoutée !"
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1678 end
1679 end
1680
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1681 Vous avez le binding du contexte de la requête dans :
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1682
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1683 * les blocs get/head/post/put/delete/options
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1684 * les filtres before/after
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1685 * les méthodes utilitaires (définies au moyen de +helpers+)
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1686 * les vues/templates
1687
1688 === Le contexte de délégation
1689
1690 Le contexte de délégation se contente de transmettre les appels de méthodes au
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1691 contexte de classe. Toutefois, il ne se comporte pas à 100% comme le contexte
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
1692 de classe car vous n'avez pas le binding de la classe : seules les méthodes
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1693 spécifiquement déclarées pour délégation sont disponibles et il n'est pas
1694 possible de partager des variables/états avec le contexte de classe
9b77a2de » sylvaindesve
2011-05-03 Updated French README and fixed typography.
1695 (comprenez : +self+ n'est pas le même). Vous pouvez ajouter des délégation de
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1696 méthodes en appelant <tt>Sinatra::Delegator.delegate :method_name</tt>.
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1697
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1698 Vous avez le binding du contexte de délégation dans :
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1699
1700 * Le binding de haut niveau, si vous avez utilisé <tt>require "sinatra"</tt>
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1701 * Un objet qui inclut le module +Sinatra::Delegator+
4d87a59b » sylvaindesve
2010-10-07 Updated the French README to include changes made to the English vers…
1702
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1703 Jetez un oeil pour vous faire une idée : voici le mixin
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1704 {Sinatra::Delegator}[http://github.com/sinatra/sinatra/blob/ceac46f0bc129a6e994a06100aa854f606fe5992/lib/sinatra/base.rb#L1128]
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1705 qui est {inclus dans l'espace de noms principal}[http://github.com/sinatra/sinatra/blob/ceac46f0bc129a6e994a06100aa854f606fe5992/lib/sinatra/main.rb#L28]
1706
1707 == Ligne de commande
1708
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1709 Les applications en Sinatra peuvent être lancées directement :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1710
1711 ruby mon_application.rb [-h] [-x] [-e ENVIRONNEMENT] [-p PORT] [-o HOTE] [-s SERVEUR]
1712
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1713 Les options sont :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1714
1715 -h # aide
1716 -p # déclare le port (4567 par défaut)
1717 -o # déclare l'hôte (0.0.0.0 par défaut)
1718 -e # déclare l'environnement (+development+ par défaut)
1719 -s # déclare le serveur/gestionnaire à utiliser (thin par défaut)
1720 -x # active le mutex lock (off par défaut)
1721
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1722 == Configuration nécessaire
1723
1724 Les versions suivantes de Ruby sont officiellement supportées :
1725
1726 [ Ruby 1.8.7 ]
1727 1.8.7 est complètement supporté, toutefois si rien ne vous y retient, nous
1728 vous recommandons de passer à 1.9.2 ou bien de passer à JRuby ou Rubinius.
1729
1730 [ Ruby 1.9.2 ]
1731 1.9.2 est supporté et recommandé. Notez que Radius et Markaby ne sont
1732 actuellement pas compatible avec 1.9. N'utilisez pas 1.9.2p0 qui est
1733 réputé causer des erreurs de segmentation lorque Sinatra est utilisé.
1734
1735 [ Rubinius ]
644c26e2 » sylvaindesve
2011-04-05 French README update.
1736 Rubinius est officiellement supporté (Rubinius >= 1.2.3), tout fonctionne,
1737 y compris tous les langages de template.
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1738
1739 [ JRuby ]
8dc9e35f » rkh
2011-05-17 jruby 1.6.1 now is able to gem install cexts out of the box
1740 JRuby est officiellement supporté (JRuby >= 1.6.1). Aucune anomalie avec
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1741 des bibliothèques de templates tierces ne sont connues. Toutefois, si vous
1742 choisissez JRuby, alors tournez vous vers des gestionnaires Rack JRuby car
644c26e2 » sylvaindesve
2011-04-05 French README update.
1743 le serveur Thin n'est pas complètement supporté par JRuby. Le support des
1744 extensions C dans JRuby est encore expérimental, ce qui n'affecte que
1745 RDiscount.
1746
1747 <b>Ruby 1.8.6 n'est plus supporté.</b>
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1748
1749 Nous gardons également un oeil sur les versions Ruby à venir.
1750
1751 Les implémentations Ruby suivantes ne sont pas officiellement supportées mais
1752 sont toujours connues comme permettant à Sinatra de fonctionner :
1753
1754 * Plus anciennes versions de JRuby et Rubinius
644c26e2 » sylvaindesve
2011-04-05 French README update.
1755 * MacRuby, Maglev, IronRuby
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1756 * Ruby 1.9.0 et 1.9.1
1757
1758 Ne pas être officiellement supporté signifie que si les choses se passent mal
1759 sur ces plateformes et non sur celles supportées, nous considérons que
1760 l'anomalie est de le ressort, pas du nôtre.
1761
644c26e2 » sylvaindesve
2011-04-05 French README update.
1762 Nous faisons également notre intégration continue (CI) avec ruby-head (la
1763 future 1.9.3), mais nous ne pouvons rien garantir étant donné que c'est
1764 constant mouvement. Vous pouvez vous attendre à ce que 1.9.3p0 soit supporté.
1765
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1766 Sinatra devrait fonctionner sur n'importe quel système d'exploitation
1767 supportant l'implémentation Ruby choisie.
1768
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1769 == Essuyer les plâtres
1770
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1771 Si vous voulez utiliser la toute dernière version de Sinatra, n'ayez pas peur
1772 de faire tourner votre application sur la branche master, cela devrait être
1773 stable.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1774
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1775 Nous publions également une gem de +prerelease+ de temps en temps que vous
1776 pouvez installer comme suit :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1777
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1778 gem install sinatra --pre
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1779
d8f46b5c » rymai
2011-05-02 Typography update: added whitespace before "?", "!", ";" and ":", cha…
1780 afin d'avoir les toutes dernières fonctionnalités.
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1781
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1782 === Avec Bundler
1783
1784 Si vous voulez faire tourner votre application avec le tout dernier
1785 Sinatra, {Bundler}[http://gembundler.com/] est recommandé.
1786
1787 Tout d'abord, installer bundler si vous ne l'avez pas :
1788
1789 gem install bundler
1790
1791 Ensuite, dans le dossier de votre projet, créez un fichier +Gemfile+ :
1792
1793 source :rubygems
1794 gem 'sinatra', :git => "git://github.com/sinatra/sinatra.git"
1795
1796 # autres dépendances
1797 gem 'haml' # par exemple, si vous utilisez haml
1798 gem 'activerecord', '~> 3.0' # peut-être que vous avez également besoin
1799 # de ActiveRecord 3.x
1800
1801 Notez que vous aurez à lister toutes les dépendances de votre application dans
1802 ce fichier. Les dépendances directes de Sinatra (Rack et Tilt) seront
1803 automatiquement téléchargées et ajoutées par Bundler.
1804
1805 Maintenant, vous pouvez faire tourner votre application de la façon suivante :
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1806
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1807 bundle exec ruby myapp.rb
945a1f8d » mig-hub
2010-09-21 Add README's French translation.
1808
95924e30 » sylvaindesve
2011-03-06 Updated the French README.
1809 === Faites le vous-même
1810
1811 Créez un clone local et démarrez votre application avec le dossier
1812 <tt>sinatra/lib</tt> dans le <tt>$LOAD_PATH</tt> :
1813
1814 cd myapp
1815 git clone git://github.com/sinatra/sinatra.git
1816 ruby -Isinatra/lib myapp.rb
1817
1818 A l'avenir, pour mettre à jour le code source de Sinatra :
1819
1820 cd myapp/sinatra
945a1f8d » mig-hub
2010-09-21 Add README's French translation.