Skip to content
Newer
Older
100644 2134 lines (1535 sloc) 67.5 KB
7623662 Markdown fix
Melvin Lammerts authored Jun 20, 2012
1 = Sinatra
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
2 <i>Attention : Ce document correspond à la traduction de la version anglaise et
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
3 il n'est peut être plus à jour.</i>
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
4
d29df75 @michelc Proofreading the section about Routes
michelc authored Jul 5, 2011
5 Sinatra est un DSL pour créer rapidement et facilement des applications web en
6 Ruby :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
7
8 # mon_application.rb
9 require 'sinatra'
d29df75 @michelc Proofreading the section about Routes
michelc authored Jul 5, 2011
10
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
11 get '/' do
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
12 'Bonjour le monde !'
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
13 end
14
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
15 Installez la gem et lancez avec :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
16
3a25d98 @rkh Adjust examples in French and Spanish READMEs.
rkh authored Sep 21, 2010
17 gem install sinatra
18 ruby -rubygems mon_application.rb
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
19
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
20 Le résultat est visible sur : http://localhost:4567
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
21
d29df75 @michelc Proofreading the section about Routes
michelc authored Jul 5, 2011
22 Il est recommandé d'exécuter également <tt>gem install thin</tt>, pour que
23 Sinatra utilise le server Thin quand il est disponible.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
24
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
25 == Routes
26
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
27 Dans Sinatra, une route est une méthode HTTP couplée à un masque (pattern)
d29df75 @michelc Proofreading the section about Routes
michelc authored Jul 5, 2011
28 URL. Chaque route est associée à un bloc :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
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
644c26e @sylvaindesve French README update.
sylvaindesve authored Apr 5, 2011
39 .. remplacer quelque chose ..
40 end
41
42 patch '/' do
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
43 .. changer quelque chose ..
44 end
45
46 delete '/' do
47 .. effacer quelque chose ..
48 end
49
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
50 options '/' do
51 .. apaiser quelquechose ..
52 end
53
d29df75 @michelc Proofreading the section about Routes
michelc authored Jul 5, 2011
54 Les routes sont évaluées dans l'ordre où elles ont été définies. La première
55 route qui correspond à la requête est appelée.
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
56
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
57 Les masques peuvent inclure des paramètres nommés, accessibles par
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
58 l'intermédiaire du hash <tt>params</tt> :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
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'
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
63 "Bonjour #{params[:nom]} !"
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
64 end
65
d29df75 @michelc Proofreading the section about Routes
michelc authored Jul 5, 2011
66 Vous pouvez aussi accéder aux paramètres nommés directement grâce aux
67 paramètres du bloc comme ceci :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
68
69 get '/bonjour/:nom' do |n|
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
70 "Bonjour #{n} !"
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
71 end
72
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
73 Une route peut contenir un splat (caractère joker), accessible par
d29df75 @michelc Proofreading the section about Routes
michelc authored Jul 5, 2011
74 l'intermédiaire du tableau <tt>params[:splat]</tt> :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
75
76 get '/dire/*/a/*' do
d29df75 @michelc Proofreading the section about Routes
michelc authored Jul 5, 2011
77 # répond à /dire/bonjour/a/monde
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
78 params[:splat] # => ["bonjour", "monde"]
79 end
80
81 get '/telecharger/*.*' do
d29df75 @michelc Proofreading the section about Routes
michelc authored Jul 5, 2011
82 # répond à /telecharger/chemin/vers/fichier.xml
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
83 params[:splat] # => ["chemin/vers/fichier", "xml"]
84 end
85
d29df75 @michelc Proofreading the section about Routes
michelc authored Jul 5, 2011
86 Ou par l'intermédiaire des paramètres du bloc :
87
88 get '/telecharger/*.*' do |chemin, ext|
89 [chemin, ext] # => ["path/to/file", "xml"]
90 end
91
92 Une route peut aussi être définie par une Expression Régulière :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
93
94 get %r{/bonjour/([\w]+)} do
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
95 "Bonjour, #{params[:captures].first} !"
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
96 end
97
d29df75 @michelc Proofreading the section about Routes
michelc authored Jul 5, 2011
98 Là encore on peut utiliser les paramètres de bloc :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
99
100 get %r{/bonjour/([\w]+)} do |c|
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
101 "Bonjour, #{c} !"
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
102 end
103
a8b5086 @michelc Added optional parameter info to the README.fr
michelc authored Aug 2, 2011
104 Les routes peuvent aussi comporter des paramètres optionnels :
105
106 get '/posts.?:format?' do
107 # répond à "GET /posts" et aussi à "GET /posts.json", "GET /posts.xml" etc...
108 end
109
93b72b8 @michelc Update readme.fr with inner references to attack protection
michelc authored Mar 3, 2012
110 A ce propos, à moins d'avoir désactivé la protection contre les attaques par
111 "path transversal" (voir plus loin), l'URL demandée peut avoir été modifiée
112 avant d'être comparée à vos routes.
113
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 7, 2010
114 === Conditions
115
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
116 Les routes peuvent définir toutes sortes de conditions, comme par exemple le
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
117 "user agent" :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
118
119 get '/foo', :agent => /Songbird (\d\.\d)[\d\/]*?/ do
120 "Vous utilisez Songbird version #{params[:agent][0]}"
121 end
122
123 get '/foo' do
124 # Correspond à tous les autres navigateurs
125 end
126
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
127 Les autres conditions disponibles sont +host_name+ et +provides+ :
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
128
129 get '/', :host_name => /^admin\./ do
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
130 "Zone Administrateur, Accès refusé !"
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
131 end
132
133 get '/', :provides => 'html' do
134 haml :index
135 end
136
137 get '/', :provides => ['rss', 'atom', 'xml'] do
138 builder :feed
139 end
140
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
141 Vous pouvez facilement définir vos propres conditions :
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
142
143 set(:probability) { |value| condition { rand <= value } }
144
145 get '/gagner_une_voiture', :probability => 0.1 do
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
146 "Vous avez gagné !"
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
147 end
148
149 get '/gagner_une_voiture' do
150 "Désolé, vous avez perdu."
151 end
152
9ca62c3 @michelc Added example for condition with array argument
michelc authored Sep 1, 2011
153 Utilisez un splat (caractère joker) dans le cas d'une condition qui prend
154 plusieurs valeurs :
155
156 set(:auth) do |*roles| # <- ici on utilise un splat
157 condition do
158 unless logged_in? && roles.any? {|role| current_user.in_role? role }
8b11212 @michelc Sync readme.fr for classic vs modular style
michelc authored Mar 6, 2012
159 redirect "/login/", 303
9ca62c3 @michelc Added example for condition with array argument
michelc authored Sep 1, 2011
160 end
161 end
162 end
163
164 get "/mon/compte/", :auth => [:user, :admin] do
165 "Informations sur votre compte"
166 end
167
f3b5008 @michelc Remove trailing spaces in readme.fr
michelc authored Mar 6, 2012
168 get "/reserve/aux/admins/", :auth => :admin do
9ca62c3 @michelc Added example for condition with array argument
michelc authored Sep 1, 2011
169 "Seuls les administrateurs sont acceptés ici !"
170 end
171
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
172 === Valeurs de retour
173
d29df75 @michelc Proofreading the section about Routes
michelc authored Jul 5, 2011
174 La valeur renvoyée par le bloc correspondant à une route constitue le corps de
175 la réponse qui sera transmise au client HTTP ou du moins au prochain middleware
176 dans la pile Rack. Le plus souvent, il s'agit d'une chaîne de caractères,
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
177 comme dans les exemples précédents. Cependant, d'autres valeurs sont
178 acceptées.
179
d29df75 @michelc Proofreading the section about Routes
michelc authored Jul 5, 2011
180 Vous pouvez renvoyer n'importe quel objet qu'il s'agisse d'une réponse Rack
181 valide, d'un corps de réponse Rack ou d'un code statut HTTP :
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
182
d29df75 @michelc Proofreading the section about Routes
michelc authored Jul 5, 2011
183 * Un tableau de 3 éléments : <tt>[code statut (Fixnum), entêtes (Hash), corps
184 de la réponse (répondant à #each)]</tt>
185 * Un tableau de 2 élements : <tt>[code statut (Fixnum), corps de la réponse
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
186 (répondant à #each)]</tt>
187 * Un objet qui répond à <tt>#each</tt> et qui ne transmet que des chaînes de
188 caractères au bloc fourni
d29df75 @michelc Proofreading the section about Routes
michelc authored Jul 5, 2011
189 * Un Fixnum représentant le code statut
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
190
d29df75 @michelc Proofreading the section about Routes
michelc authored Jul 5, 2011
191 Avec cela, on peut facilement implémenter un streaming par exemple :
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
192
193 class Stream
194 def each
195 100.times { |i| yield "#{i}\n" }
196 end
197 end
198
199 get('/') { Stream.new }
200
733d54a @michelc Add section about #stream helper
michelc authored Sep 1, 2011
201 Vous pouvez aussi utiliser le helper +stream+ (présenté un peu plus loin) pour
202 éviter la surcharge et intégrer le traitement relatif au streaming dans le bloc
203 de code de la route.
204
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
205 === Masques de route spécifiques
206
d29df75 @michelc Proofreading the section about Routes
michelc authored Jul 5, 2011
207 Comme cela a été vu auparavant, Sinatra offre la possibilité d'utiliser des
208 masques sous forme de chaines de caractères ou des expressions régulières
209 pour définir les routes. Mais il est possible de faire bien plus. Vous pouvez
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
210 facilement définir vos propres masques :
211
212 class MasqueToutSauf
213 Masque = Struct.new(:captures)
214
215 def initialize(except)
216 @except = except
86eaf06 @sylvaindesve Sync French readme.
sylvaindesve authored Mar 9, 2011
217 @captures = Masque.new([])
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
218 end
219
220 def match(str)
221 @caputres unless @except === str
222 end
223 end
224
225 def tout_sauf(masque)
226 MasqueToutSauf.new(masque)
227 end
228
229 get tout_sauf("/index") do
230 # ...
231 end
232
d29df75 @michelc Proofreading the section about Routes
michelc authored Jul 5, 2011
233 Notez que l'exemple ci-dessus est bien trop compliqué et que le même résultat
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
234 peut être obtenu avec :
235
236 get // do
237 pass if request.path_info == "/index"
238 # ...
239 end
240
241 Ou bien en utilisant la forme négative :
242
243 get %r{^(?!/index$)} do
244 # ...
245 end
246
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
247 == Fichiers statiques
248
0d37fe0 @michelc Proofreading the (short) section about static files
michelc authored Aug 2, 2011
249 Les fichiers du dossier <tt>./public</tt> sont servis de façon statique. Vous
250 avez la possibilité d'utiliser un autre répertoire en définissant le paramètre
d1ab58d @rkh rename public to public_folder, fixes #301
rkh authored Jun 16, 2011
251 <tt>:public_folder</tt> :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
252
d1ab58d @rkh rename public to public_folder, fixes #301
rkh authored Jun 15, 2011
253 set :public_folder, File.dirname(__FILE__) + '/statique'
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
254
0d37fe0 @michelc Proofreading the (short) section about static files
michelc authored Aug 2, 2011
255 Notez que le nom du dossier public n'apparait pas dans l'URL. Le fichier
f3b5008 @michelc Remove trailing spaces in readme.fr
michelc authored Mar 6, 2012
256 <tt>./public/css/style.css</tt> sera appelé via l'URL :
0d37fe0 @michelc Proofreading the (short) section about static files
michelc authored Aug 2, 2011
257 <tt>http://exemple.com/css/style.css</tt>.
258
259 Utilisez le paramètre <tt>:static_cache_control</tt> pour ajouter l'information
260 d'en-tête <tt>Cache-Control</tt> (voir plus loin).
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
261
262 == Vues / Templates
263
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
264 Chaqie langage de template est disponible via sa propre méthode de rendu,
265 lesquelles renvoient tout simplement une chaîne de caractères.
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
266
267 get '/' do
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
268 erb :index
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
269 end
270
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
271 Ceci effectue le rendu de la vue <tt>views/index.erb</tt>.
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
272
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
273 Plutôt que d'utiliser le nom d'un template, vous pouvez directement passer
274 le contenu du template :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
275
276 get '/' do
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
277 code = "<%= Time.now %>"
278 erb code
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
279 end
280
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
281 Les méthodes de templates acceptent un second paramètre, un hash d'options :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
282
283 get '/' do
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
284 erb :index, :layout => :post
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
285 end
286
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
287 Ceci effectuera le rendu de la vue <tt>views/index.erb</tt> en l'intégrant
288 au +layout+ <tt>views/post.erb</tt> (les vues Erb sont intégrées par défaut
289 au +layout+ <tt>views/layout.erb</tt> quand ce fichier existe).
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
290
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
291 Toute option que Sinatra ne comprend pas sera passée au moteur de rendu :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
292
293 get '/' do
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
294 haml :index, :format => :html5
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
295 end
296
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
297 Vous pouvez également définir des options par langage de template de façon
298 générale :
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
299
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
300 set :haml, :format => html5
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
301
302 get '/' do
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
303 haml :index
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
304 end
305
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
306 Les options passées à la méthode de rendu prennent le pas sur les options
307 définies au moyen de +set+.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
308
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
309 Options disponibles :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
310
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
311 [locals]
312 Liste de variables locales passées au document. Pratique pour les vues
313 partielles.
314 Exemple : <tt>erb "<%= foo %>", :locals => {:foo => "bar"}</tt>.
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
315
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
316 [default_encoding]
317 Encodage de caractères à utiliser en cas d'incertitude. Par défaut, c'est
318 <tt>settings.default_encoding</tt>.
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
319
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
320 [views]
321 Dossier de vues dans lequel chercher les templates. Par défaut
322 <tt>settings.views</tt>.
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
323
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
324 [layout]
325 S'il faut ou non utiliser un +layout+ (+true+ or +false+). Indique le
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
326 template à utiliser lorsque c'est un symbole. Exemple : <tt>erb :index,
327 :layout => !request.xhr?</tt>.
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
328
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
329 [content_type]
330 Content-Type que le template produit, dépend par défaut du langage de
331 template.
dd81da1 @rkh Add nokogiri helper method. Tilt supports Nokogiri for quite some tim…
rkh authored Oct 10, 2010
332
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
333 [scope]
334 Contexte sous lequel effectuer le rendu du template. Par défaut il s'agit
335 de l'instance de l'application. Si vous changez cela, les variables
336 d'instance et les méthodes utilitaires ne seront pas disponibles.
dd81da1 @rkh Add nokogiri helper method. Tilt supports Nokogiri for quite some tim…
rkh authored Oct 10, 2010
337
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
338 [layout_engine]
339 Moteur de rendu à utiliser pour le +layout+. Utile pour les langages ne
340 supportant pas les +layouts+. Il s'agit par défaut du moteur utilisé pour
341 le rendu du template. Exemple : <tt>set :rdoc, :layout_engine => :erb</tt>
dd81da1 @rkh Add nokogiri helper method. Tilt supports Nokogiri for quite some tim…
rkh authored Oct 10, 2010
342
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
343 Les templates sont supposés se trouver directement dans le dossier
344 <tt>./views</tt>. Pour utiliser un dossier de vues différent :
dd81da1 @rkh Add nokogiri helper method. Tilt supports Nokogiri for quite some tim…
rkh authored Oct 10, 2010
345
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
346 set :views, settings.root + '/templates'
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
347
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
348 Il est important de se souvenir que les templates sont toujours référencés
349 sous forme de symboles, même lorsqu'ils sont dans un sous-répertoire (dans
350 ce cas, utilisez <tt>:'sous_repertoire/template'</tt>). Il faut utiliser
351 un symbole car les méthodes de rendu évaluent le contenu des chaînes de
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
352 caractères au lieu de les considérer comme un chemin vers un fichier.
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
353
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
354 === Langages de template disponibles
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
355
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
356 Certains langages ont plusieurs implémentations. Pour préciser l'implémentation
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
357 à utiliser (et garantir l'aspect thread-safe), vous devez simplement l'avoir
358 chargée au préalable :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
359
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
360 require 'rdiscount' # ou require 'bluecloth'
361 get('/') { markdown :index }
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
362
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
363 === Templates Haml
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
364
f095019 @mattwildig Update README links to Haml
mattwildig authored May 30, 2012
365 Dépendances:: {haml}[http://haml.info/]
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
366 Extensions de fichier:: <tt>.haml</tt>
367 Exemple:: <tt>haml :index, :format => :html5</tt>
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
368
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
369 === Templates Erb
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
370
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
371 Dépendances:: {erubis}[http://www.kuwata-lab.com/erubis/] ou
372 erb (inclus avec Ruby)
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
373 Extensions de fichier:: <tt>.erb</tt>, <tt>.rhtml</tt> ou <tt>.erubis</tt>
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
374 (Erubis seulement)
375 Exemple:: <tt>erb :index</tt>
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
376
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
377 === Templates Builder
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
378
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
379 Dépendances:: {builder}[http://builder.rubyforge.org/]
380 Extensions de fichier:: <tt>.builder</tt>
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
381 Exemple:: <tt>builder { |xml| xml.em "salut" }</tt>
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
382
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
383 Ce moteur accepte également un bloc pour des templates en ligne (voir exemple).
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
384
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
385 === Templates Nokogiri
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
386
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
387 Dépendances:: {nokogiri}[http://nokogiri.org/]
388 Extensions de fichier:: <tt>.nokogiri</tt>
fb46ad0 @michelc Fix copy/paste error with nokogiri in french readme
michelc authored Sep 15, 2011
389 Exemple:: <tt>nokogiri { |xml| xml.em "salut" }</tt>
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
390
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
391 Ce moteur accepte également un bloc pour des templates en ligne (voir exemple).
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
392
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
393 === Templates Sass
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
394
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
395 Dépendances:: {sass}[http://sass-lang.com/]
396 Extensions de fichier:: <tt>.sass</tt>
397 Exemple:: <tt>sass :stylesheet, :style => :expanded</tt>
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
398
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
399 === Templates SCSS
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
400
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
401 Dépendances:: {sass}[http://sass-lang.com/]
402 Extensions de fichier:: <tt>.scss</tt>
403 Exemple:: <tt>scss :stylesheet, :style => :expanded</tt>
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
404
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
405 === Templates Less
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
406
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
407 Dépendances:: {less}[http://www.lesscss.org/]
408 Extensions de fichier:: <tt>.less</tt>
409 Exemple:: <tt>less :stylesheet</tt>
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
410
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
411 === Templates Liquid
412
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
413 Dépendances:: {liquid}[http://www.liquidmarkup.org/]
414 Extensions de fichier:: <tt>.liquid</tt>
415 Exemple:: <tt>liquid :index, :locals => { :key => 'value' }</tt>
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
416
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
417 Comme vous ne pouvez appeler de méthodes Ruby (autres que +yield+) dans un
418 template Liquid, vous aurez sûrement à lui passer des variables locales.
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
419
420 === Templates Markdown
421
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
422 Dépendances:: {rdiscount}[https://github.com/rtomayko/rdiscount],
423 {redcarpet}[https://github.com/tanoku/redcarpet],
424 {bluecloth}[http://deveiate.org/projects/BlueCloth],
425 {kramdown}[http://kramdown.rubyforge.org/] *ou*
426 {maruku}[http://maruku.rubyforge.org/]
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
427 Extensions de fichier:: <tt>.markdown</tt>, <tt>.mkd</tt> et <tt>.md</tt>
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
428 Exemple:: <tt>markdown :index, :layout_engine => :erb</tt>
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
429
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
430 Il n'est pas possible d'appeler des méthodes depuis markdown, ni de lui
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
431 passer des variables locales. Par conséquent, il sera souvent utilisé en
432 combinaison avec un autre moteur de rendu :
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
433
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
434 erb :overview, :locals => { :text => markdown(:introduction) }
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
435
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
436 Notez que vous pouvez également appeler la méthode +markdown+ au sein d'autres
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
437 templates :
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
438
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
439 %h1 Hello From Haml !
440 %p= markdown(:greetings)
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
441
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
442 Comme vous ne pouvez pas appeler de Ruby au sein de Markdown, vous ne pouvez
443 pas utiliser de +layouts+ écrits en Markdown. Toutefois, il est possible
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
444 d'utiliser un moteur de rendu différent pour le template et pour le +layout+
445 en utilisant l'option <tt>:layout_engine</tt>.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
446
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
447 === Templates Textile
448
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
449 Dépendances:: {RedCloth}[http://redcloth.org/]
450 Extensions de fichier:: <tt>.textile</tt>
451 Exemple:: <tt>textile :index, :layout_engine => :erb</tt>
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
452
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
453 Il n'est pas possible d'appeler des méthodes depuis textile, ni de lui
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
454 passer des variables locales. Par conséquent, il sera souvent utilisé en
455 combinaison avec un autre moteur de rendu :
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
456
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
457 erb :overview, :locals => { :text => textile(:introduction) }
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
458
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
459 Notez que vous pouvez également appeler la méthode +textile+ au sein d'autres
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
460 templates :
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
461
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
462 %h1 Hello From Haml !
463 %p= textile(:greetings)
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
464
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
465 Comme vous ne pouvez pas appeler de Ruby au sein de Textile, vous ne pouvez
466 pas utiliser de +layouts+ écrits en Textile. Toutefois, il est possible
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
467 d'utiliser un moteur de rendu différent pour le template et pour le +layout+
468 en utilisant l'option <tt>:layout_engine</tt>.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
469
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
470 === Templates RDoc
471
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
472 Dépendances:: {rdoc}[http://rdoc.rubyforge.org/]
473 Extensions de fichier:: <tt>.rdoc</tt>
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
474 Exemple:: <tt>rdoc :README, :layout_engine => :erb</tt>
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
475
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
476 Il n'est pas possible d'appeler des méthodes depuis rdoc, ni de lui
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
477 passer des variables locales. Par conséquent, il sera souvent utilisé en
478 combinaison avec un autre moteur de rendu :
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
479
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
480 erb :overview, :locals => { :text => rdoc(:introduction) }
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
481
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
482 Notez que vous pouvez également appeler la méthode +rdoc+ au sein d'autres
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
483 templates :
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
484
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
485 %h1 Hello From Haml !
486 %p= rdoc(:greetings)
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
487
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
488 Comme vous ne pouvez pas appeler de Ruby au sein de RDoc, vous ne pouvez
489 pas utiliser de +layouts+ écrits en RDoc. Toutefois, il est possible
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
490 d'utiliser un moteur de rendu différent pour le template et pour le +layout+
491 en utilisant l'option <tt>:layout_engine</tt>.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
492
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
493 === Templates Radius
494
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
495 Dépendances:: {radius}[http://radius.rubyforge.org/]
496 Extensions de fichier:: <tt>.radius</tt>
497 Exemple:: <tt>radius :index, :locals => { :key => 'value' }</tt>
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
498
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
499 Comme vous ne pouvez pas appeler de méthodes Ruby depuis un template Radius,
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
500 vous aurez sûrement à lui passer des variables locales.
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
501
502 === Templates Markaby
503
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
504 Dépendances:: {markaby}[http://markaby.github.com/]
505 Extensions de fichier:: <tt>.mab</tt>
506 Exemple:: <tt>markaby { h1 "Bienvenue !" }</tt>
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
507
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
508 Ce moteur accepte également un bloc pour des templates en ligne (voir exemple).
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
509
5bf54d5 @jc00ke Adding RABL support
jc00ke authored May 31, 2012
510 === Templates RABL
511
512 Dépendances:: {rabl}[https://github.com/nesquena/rabl]
513 Extensions de fichier:: <tt>.rabl</tt>
514 Exemple:: <tt>rabl :index</tt>
515
ca7fbe5 @rkh Add documentation for Slim templates.
rkh authored Nov 5, 2010
516 === Templates Slim
517
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
518 Dépendances:: {slim}[http://slim-lang.com/]
519 Extensions de fichier:: <tt>.slim</tt>
520 Exemple:: <tt>slim :index</tt>
ca7fbe5 @rkh Add documentation for Slim templates.
rkh authored Nov 5, 2010
521
9ce9e54 @rkh add support for creole templates
rkh authored Apr 15, 2011
522 === Templates Creole
523
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
524 Dépendances:: {creole}[https://github.com/minad/creole]
525 Extensions de fichier:: <tt>.creole</tt>
526 Exemple:: <tt>creole :wiki, :layout_engine => :erb</tt>
9ce9e54 @rkh add support for creole templates
rkh authored Apr 15, 2011
527
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
528 Il n'est pas possible d'appeler des méthodes depuis creole, ni de lui
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
529 passer des variables locales. Par conséquent, il sera souvent utilisé en
530 combinaison avec un autre moteur de rendu :
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
531
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
532 erb :overview, :locals => { :text => creole(:introduction) }
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
533
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
534 Notez que vous pouvez également appeler la méthode +creole+ au sein d'autres
535 templates :
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
536
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
537 %h1 Hello From Haml !
538 %p= creole(:greetings)
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
539
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
540 Comme vous ne pouvez pas appeler de Ruby au sein de Creole, vous ne pouvez
541 pas utiliser de +layouts+ écrits en Creole. Toutefois, il est possible
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
542 d'utiliser un moteur de rendu différent pour le template et pour le +layout+
543 en utilisant l'option <tt>:layout_engine</tt>.
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
544
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
545 === Templates CoffeeScript
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
546
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
547 Dépendances:: {coffee-script}[https://github.com/josh/ruby-coffee-script]
548 et un {moyen d'exécuter javascript}[https://github.com/sstephenson/execjs/blob/master/README.md#readme]
549 Extensions de fichier:: <tt>.coffee</tt>
550 Exemple:: <tt>coffee :index</tt>
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
551
fe58004 @michelc sync readmefr with Yajl templates
michelc authored Mar 3, 2012
552 === Templates Yajl
553
554 Dépendances:: {yajl-ruby}[https://github.com/brianmario/yajl-ruby]
555 Extensions de fichier:: <tt>.yajl</tt>
556 Exemple:: <tt>yajl :index, :locals => { :key => 'qux' }, :callback => 'present', :variable => 'resource'</tt>
557
558 Le source du template est évalué en tant que chaine Ruby, puis la variable json
559 obtenue est convertie avec #to_json.
560
561 json = { :foo => 'bar' }
562 json[:baz] = key
563
564 Les options <tt>:callback</tt> et <tt>:variable</tt> peuvent être utilisées
565 pour décorer l'objet retourné.
566
567 var resource = {"foo":"bar","baz":"qux"}; present(resource);
568
4334871 @blambeau Add french and english doc about wlang in README.
blambeau authored Jun 12, 2012
569 === Templates WLang
570
571 Dependency:: {wlang}[https://github.com/blambeau/wlang/]
572 File Extensions:: <tt>.wlang</tt>
573 Example:: <tt>wlang :index, :locals => { :key => 'value' }</tt>
574
575 L'appel de code ruby au sein des templates n'est pas idiomatique en wlang. L'écriture de
576 templates sans logique est encouragé, via le passage de variables locales. Il est néanmoins
577 possible d'écrire un +layout+ en wlang et d'y utiliser +yield+.
578
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
579 === Templates embarqués
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
580
581 get '/' do
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
582 haml '%div.title Bonjour le monde'
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
583 end
584
ddd75e8 @michelc Proofreading the section about Views and Templates
michelc authored Aug 2, 2011
585 Générera le code du template spécifié dans la chaîne de caractères.
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
586
587 === Accéder aux variables dans un Template
588
589 Un template est évalué dans le même contexte que l'endroit d'où il a été
590 appelé (gestionnaire de route). Les variables d'instance déclarées dans le
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
591 gestionnaire de route sont directement accessibles dans le template :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
592
593 get '/:id' do
594 @foo = Foo.find(params[:id])
595 haml '%h1= @foo.nom'
596 end
597
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
598 Alternativement, on peut passer un hash contenant des variables locales :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
599
600 get '/:id' do
601 foo = Foo.find(params[:id])
602 haml '%h1= foo.nom', :locals => { :foo => foo }
603 end
604
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
605 Ceci est généralement utilisé lorsque l'on veut utiliser un template comme
606 partiel (depuis un autre template) et qu'il est donc nécessaire d'adapter les
607 noms de variables.
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
608
609 === Templates dans le fichier source
610
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
611 Des templates peuvent être définis dans le fichier source comme ceci :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
612
613 require 'sinatra'
614
615 get '/' do
616 haml :index
617 end
618
619 __END__
620
621 @@ layout
622 %html
623 = yield
624
625 @@ index
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
626 %div.title Bonjour le monde !
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
627
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
628 NOTE : Les templates du fichier source qui contient <tt>require 'sinatra'</tt>
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
629 sont automatiquement chargés. Si vous avez des templates dans d'autres
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
630 fichiers source, il faut explicitement les déclarer avec
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
631 <tt>enable :inline_templates</tt>.
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
632
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
633 === Templates nommés
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
634
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
635 Les templates peuvent aussi être définis grâce à la méthode de haut niveau
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
636 <tt>template</tt> :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
637
638 template :layout do
639 "%html\n =yield\n"
640 end
641
642 template :index do
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
643 '%div.title Bonjour le monde !'
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
644 end
645
646 get '/' do
647 haml :index
648 end
649
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
650 Si un template nommé "layout" existe, il sera utilisé à chaque fois qu'un
651 template sera affiché. Vous pouvez désactivez les layouts au cas par cas en
652 passant <tt>:layout => false</tt> ou bien les désactiver par défaut au moyen
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
653 de <tt>set :haml, :layout => false</tt> :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
654
655 get '/' do
656 haml :index, :layout => !request.xhr?
657 end
658
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
659 === Associer des extensions de fichier
660
661 Pour associer une extension de fichier avec un moteur de rendu, utilisez
662 <tt>Tilt.register</tt>. Par exemple, si vous désirez utiliser l'extension
663 de fichier +tt+ pour les templates Textile, vous pouvez faire comme suit :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
664
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
665 Tilt.register :tt, Tilt[:textile]
666
667 === Ajouter son propre moteur de rendu
668
669 En premier lieu, déclarez votre moteur de rendu avec Tilt, ensuite créez
670 votre méthode de rendu :
671
672 Tilt.register :monmoteur, MonMerveilleurMoteurDeRendu
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
673
674 helpers do
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
675 def monmoteur(*args) render(:monmoteur, *args) end
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
676 end
677
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
678 get '/' do
679 monmoteur :index
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
680 end
681
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
682 Utilisera <tt>./views/index.monmoteur</tt>. Voir
683 https://github.com/rtomayko/tilt pour en savoir plus sur Tilt.
684
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
685 == Filtres
686
d0aa1a5 @michelc Proofreading filter section on French Readme.
michelc authored Sep 2, 2011
687 Les filtres before sont exécutés avant chaque requête, dans le même contexte
688 que les routes, et permettent de modifier la requête et sa réponse. Les
689 variables d'instance déclarées dans les filtres sont accessibles au niveau
690 des routes et des templates :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
691
692 before do
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
693 @note = 'Coucou !'
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
694 request.path_info = '/foo/bar/baz'
695 end
696
697 get '/foo/*' do
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
698 @note #=> 'Coucou !'
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
699 params[:splat] #=> 'bar/baz'
700 end
701
d0aa1a5 @michelc Proofreading filter section on French Readme.
michelc authored Sep 2, 2011
702 Les filtres after sont exécutés après chaque requête à l'intérieur du même
703 contexte et permettent de modifier la requête et sa réponse. Les variables
704 d'instance déclarées dans les filtres before ou les routes sont accessibles
705 au niveau des filtres after :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
706
707 after do
708 puts response.status
709 end
710
d0aa1a5 @michelc Proofreading filter section on French Readme.
michelc authored Sep 2, 2011
711 Note : Le corps de la réponse n'est pas disponible au niveau du filtre after
712 car il ne sera généré que plus tard (sauf dans le cas où vous utilisez la
713 méthode +body+ au lieu de simplement renvoyer une chaine depuis vos routes).
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
714
d0aa1a5 @michelc Proofreading filter section on French Readme.
michelc authored Sep 2, 2011
715 Les filtres peuvent être associés à un masque, ce qui permet de limiter leur
716 exécution aux cas où la requête correspond à ce masque :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
717
718 before '/secret/*' do
719 authentification!
720 end
721
722 after '/faire/:travail' do |travail|
723 session[:dernier_travail] = travail
724 end
725
d0aa1a5 @michelc Proofreading filter section on French Readme.
michelc authored Sep 2, 2011
726 Tout comme les routes, les filtres acceptent également des conditions :
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
727
728 before :agent => /Songbird/ do
729 # ...
730 end
731
732 after '/blog/*', :host_name => 'example.com' do
733 # ...
734 end
735
736 == Helpers
737
738 Utilisez la méthode de haut niveau <tt>helpers</tt> pour définir des routines
739 qui seront accessibles dans vos gestionnaires de route et dans vos templates :
740
741 helpers do
742 def bar(nom)
743 "#{nom}bar"
744 end
745 end
746
747 get '/:nom' do
748 bar(params[:nom])
749 end
750
82c6ea5 @michelc Show how to define helper functions in a separate 'module' for readme.fr
michelc authored Mar 6, 2012
751 Vous pouvez aussi définir les méthodes helper dans un module séparé :
752
753 module FooUtils
754 def foo(nom) "#{nom}foo" end
755 end
756
757 module BarUtils
758 def bar(nom) "#{nom}bar" end
759 end
760
761 helpers FooUtils, BarUtils
762
763 Cela a le même résultat que d'inclure les modules dans la classe de
764 l'application.
765
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
766 === Utiliser les sessions
767
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
768 Une session est utilisée pour conserver un état entre les requêtes. Une fois
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
769 activées, vous avez un +hash+ de session par session utilisateur :
770
771 enable :sessions
772
773 get '/' do
774 "valeur = " << session[:valeur].inspect
775 end
776
777 get '/:value' do
778 session[:valeur] = params[:valeur]
779 end
780
781 Notez que <tt>enable :sessions</tt> enregistre en fait toutes les données dans
782 un +cookie+. Ce n'est pas toujours ce que vous voulez (enregistrer beaucoup de
783 données va augmenter le traffic par exemple). Vous pouvez utiliser n'importe
784 quel +middleware+ Rack de session afin d'éviter cela. N'utiliser *pas*
785 <tt>enable :sessions</tt> dans ce cas mais charger le +middleware+ de votre
786 choix comme vous le feriez pour n'importe quel autre +middleware+ :
787
788 use Rack::Session::Pool, :expire_after => 2592000
789
790 get '/' do
791 "valeur = " << session[:valeur].inspect
792 end
793
794 get '/:value' do
795 session[:valeur] = params[:valeur]
796 end
797
644c26e @sylvaindesve French README update.
sylvaindesve authored Apr 5, 2011
798 Pour renforcer la sécurité, les données de session dans le cookie sont signées
799 avec une clé secrète de session. Une clé secrète est générée pour vous au
800 hasard par Sinatra. Toutefois, comme cette clé change à chaque démarrage de
801 votre application, vous pouvez définir cette clé vous-même afin que toutes
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
802 les instances de votre application la partage :
644c26e @sylvaindesve French README update.
sylvaindesve authored Apr 5, 2011
803
804 set :session_secret, 'super secret'
805
806 Si vous souhaitez avoir plus de contrôle, vous pouvez également enregistrer un
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
807 +hash+ avec des options lors de la configuration de +sessions+ :
644c26e @sylvaindesve French README update.
sylvaindesve authored Apr 5, 2011
808
809 set :sessions, :domain => 'foo.com'
810
f221fd3 @michelc Synchronized levels of some titles
michelc authored Jul 5, 2011
811 === Halt
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
812
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
813 Pour arrêter immédiatement la requête dans un filtre ou un gestionnaire de
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
814 route :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
815
816 halt
817
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
818 Vous pouvez aussi passer le code retour ...
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
819
820 halt 410
821
822 Ou le texte ...
823
824 halt 'Ceci est le texte'
825
826 Ou les deux ...
827
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
828 halt 401, 'Partez !'
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
829
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
830 Ainsi que les entêtes ...
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
831
832 halt 402, {'Content-Type' => 'text/plain'}, 'revanche'
833
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
834 Bien sûr il est possible de combiner un template avec +halt+ :
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
835
836 halt erb(:erreur)
837
f221fd3 @michelc Synchronized levels of some titles
michelc authored Jul 5, 2011
838 === Passer
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
839
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
840 Une route peut passer le relais aux autres routes qui correspondent également
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
841 avec <tt>pass</tt> :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
842
843 get '/devine/:qui' do
844 pass unless params[:qui] == 'Frank'
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
845 "Tu m'as eu !"
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
846 end
847
848 get '/devine/*' do
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
849 'Manqué !'
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
850 end
851
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
852 On sort donc immédiatement de ce gestionnaire et on continue à chercher,
853 dans les masques suivants, le prochain qui correspond à la requête.
854 Si aucun des masques suivants ne correspond, un code 404 est retourné.
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
855
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
856 === Déclencher une autre route
857
858 Parfois, +pass+ n'est pas ce que vous recherchez, au lieu de cela vous
859 souhaitez obtenir le résultat d'une autre route. Pour cela, utilisez
860 simplement +call+ :
861
862 get '/foo' do
66f1256 @rkh env is accessable directly, no need to use request.env
rkh authored Apr 17, 2011
863 status, headers, body = call env.merge("PATH_INFO" => '/bar')
039675f @rkh test and fix #call example
rkh authored Apr 17, 2011
864 [status, headers, body.map(&:upcase)]
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
865 end
866
867 get '/bar' do
868 "bar"
869 end
870
871 Notez que dans l'exemple ci-dessus, vous faciliterez les tests et améliorerez
872 la performance en déplaçant simplement <tt>"bar"</tt> dans un +helper+
873 utilisé à la fois par <tt>/foo</tt> et <tt>/bar</tt>.
874
875 Si vous souhiatez que la requête soit envoyée à la même instance de
876 l'application plutôt qu'à une copie, utilisez <tt>call!</tt> au lieu de
877 <tt>call</tt>.
878
879 Lisez la spécification Rack si vous souhaitez en savoir plus sur
880 <tt>call</tt>.
881
882 === Définir le corps, le code retour et les entêtes
883
884 Il est possible et recommandé de définir le code retour et le corps de la
885 réponse au moyen de la valeur de retour d'un bloc définissant une route.
886 Quoiqu'il en soit, dans certains cas vous pourriez avoir besoin de définir
887 le coprs de la réponse à un moment arbitraire de l'exécution. Vous pouvez le
888 faire au moyen de la méthode +body+. Si vous faites ainsi, vous pouvez alors
889 utiliser cette même méthode pour accéder au corps de la réponse :
890
891 get '/foo' do
892 body "bar"
893 end
894
895 after do
896 puts body
897 end
898
899 Il est également possible de passer un bloc à +body+, qui sera exécuté par le
900 gestionnaire Rack (ceci peut être utilisé pour implémenter un +streaming+,
901 voir "Valeurs de retour").
902
903 Pareillement au corps de la réponse, vous pouvez également définir le code
904 retour et les entêtes :
905
906 get '/foo' do
907 status 418
908 headers \
9f69232 @rkh fix teapot example
rkh authored Aug 9, 2011
909 "Allow" => "BREW, POST, GET, PROPFIND, WHEN",
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
910 "Refresh" => "Refresh: 20; http://www.ietf.org/rfc/rfc2324.txt"
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
911 body "Je suis une théière !"
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
912 end
913
914 Comme +body+, +headers+ et +status+ peuvent être utilisés sans arguments
915 pour accéder à leurs valeurs.
916
733d54a @michelc Add section about #stream helper
michelc authored Sep 1, 2011
917 === Faire du streaming
918
919 Il y a des cas où vous voulez commencer à renvoyer des données pendant que
920 vous êtes en train de générer le reste de la réponse. Dans les cas les plus
921 extrèmes, vous souhaitez continuer à envoyer des données tant que le client
922 n'abandonne pas la connection. Vous pouvez alors utiliser le helper +stream+
923 pour éviter de créer votre propre système :
924
925 get '/' do
926 stream do |out|
927 out << "Ca va être hallu -\n"
928 sleep 0.5
929 out << " (attends la suite) \n"
930 sleep 1
931 out << "- cinant !\n"
932 end
933 end
934
935 Cela permet d'implémenter des API de streaming ou de
936 {Server Sent Events}[http://dev.w3.org/html5/eventsource/] et peut servir de
937 base pour des {WebSockets}[http://en.wikipedia.org/wiki/WebSocket]. Vous
938 pouvez aussi l'employer pour augmenter le débit quand une partie du contenu
939 provient d'une resource lente.
940
941 Le fonctionnement du streaming, notamment le nombre de requêtes simultanées,
942 dépend énormément du serveur web utilisé. Certains ne prennent pas du tout en
943 charge le streaming (WEBRick par exemple). Lorsque le serveur ne gère pas le
944 streaming, la partie body de la réponse sera envoyée au client en une seule
def3455 @michelc Add note about Shotgun and streaming in readme.fr
michelc authored Mar 3, 2012
945 fois, après que l'exécution du bloc passé au helper +stream+ sera terminée. Le
946 streaming ne fonctionne pas du tout avec Shotgun.
733d54a @michelc Add section about #stream helper
michelc authored Sep 1, 2011
947
53d8013 @rkh adjust streaming docs in frensh readme
rkh authored Sep 1, 2011
948 En utilisant le helper +stream+ avec le paramètre +keep_open+, il n'appelera
949 pas la méthode +close+ du flux, vous laissant la possibilité de le fermer à
950 tout moment au cours de l'exécution. Ceci ne fonctionne qu'avec les serveurs
733d54a @michelc Add section about #stream helper
michelc authored Sep 1, 2011
951 evented (ie non threadés) tels que Thin et Rainbows. Les autres serveurs
00db6c8 @michelc Consistent colon in French Readme.
michelc authored Sep 2, 2011
952 fermeront malgré tout le flux :
733d54a @michelc Add section about #stream helper
michelc authored Sep 1, 2011
953
954 set :server, :thin
955 connections = []
956
957 get '/' do
958 # conserve le flux ouvert
53d8013 @rkh adjust streaming docs in frensh readme
rkh authored Sep 1, 2011
959 stream(:keep_open) { |out| connections << out }
733d54a @michelc Add section about #stream helper
michelc authored Sep 1, 2011
960 end
961
962 post '/' do
963 # écrit dans tous les flux ouverts
964 connections.each { |out| out << params[:message] << "\n" }
965 "message sent"
966 end
967
644c26e @sylvaindesve French README update.
sylvaindesve authored Apr 5, 2011
968 === Journalisation (Logging)
969
970 Dans le contexte de la requête, la méthode utilitaire +logger+ expose une
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
971 instance de +logger+ :
644c26e @sylvaindesve French README update.
sylvaindesve authored Apr 5, 2011
972
973 get '/' do
974 logger.info "chargement des données"
975 # ...
976 end
977
978 Ce +logger+ va automatiquement prendre en compte les paramètres de
979 configuration pour la journalisation de votre gestionnaire Rack. Si la
980 journalisation est désactivée, cette méthode renverra un objet factice et
981 vous n'avez pas à vous en inquiéter dans vos routes en le filtrant.
982
983 Notez que la journalisation est seulement activée par défaut pour
984 <tt>Sinatra::Application</tt>, donc si vous héritez de <tt>Sinatra::Base</tt>,
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
985 vous aurez à l'activer vous-même :
644c26e @sylvaindesve French README update.
sylvaindesve authored Apr 5, 2011
986
987 class MonApp < Sinatra::Base
6ae2b8a @michelc Sync readme.fr with remove unnecessary parens from example
michelc authored Mar 3, 2012
988 configure :production, :development do
644c26e @sylvaindesve French README update.
sylvaindesve authored Apr 5, 2011
989 enable :logging
990 end
991 end
992
5af6f12 @michelc Documents logging set to nil in readme.fr
michelc authored Mar 6, 2012
993 Si vous souhaitez utiliser votre propre logger, vous devez définir le paramètre
994 +logging+ à +nil+ pour être certain qu'aucun middleware de logging ne sera
995 installé (notez toutefois que +logger+ renverra alors +nil+). Dans ce cas,
996 Sinatra utilisera ce qui sera présent dans <tt>env['rack.logger']</tt>.
997
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
998 === Types Mime
999
1000 Quand vous utilisez <tt>send_file</tt> ou des fichiers statiques, vous
1001 pouvez rencontrer des types mime que Sinatra ne connaît pas. Utilisez
1002 +mime_type+ pour les déclarer par extension de fichier :
1003
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
1004 configure do
1005 mime_type :foo, 'text/foo'
1006 end
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1007
1008 Vous pouvez également les utiliser avec la méthode +content_type+ :
1009
1010 get '/' do
1011 content_type :foo
1012 "foo foo foo"
1013 end
1014
1015 === Former des URLs
1016
1017 Pour former des URLs, vous devriez utiliser la méthode +url+, par exemple en
1018 Haml :
1019
1020 %a{:href => url('/foo')} foo
1021
1022 Cela prend en compte les proxy inverse et les routeurs Rack, s'ils existent.
1023
1024 Cette méthode est également disponible sous l'alias +to+ (voir ci-dessous
1025 pour un exemple).
1026
1027 === Redirection du navigateur
1028
1029 Vous pouvez déclencher une redirection du navigateur avec la méthode
1030 +redirect+ :
1031
1032 get '/foo' do
1033 redirect to('/bar')
1034 end
1035
1036 Tout paramètre additionnel est géré comme des arguments pour la méthode
1037 +halt+ :
1038
1039 redirect to('/bar'), 303
1040 redirect 'http://google.com', 'mauvais endroit mon pote'
1041
1042 Vous pouvez aussi rediriger vers la page dont l'utilisateur venait au moyen de
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
1043 <tt>redirect back</tt> :
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1044
1045 get '/foo' do
1046 "<a href='/bar'>faire quelque chose</a>"
1047 end
1048
1049 get '/bar' do
1050 faire_quelque_chose
1051 redirect back
1052 end
1053
1054 Pour passer des arguments à une redirection, ajoutez-les soit à la requête :
1055
1056 redirect to('/bar?sum=42')
1057
1058 Ou bien utilisez une session :
1059
e6ab1e8 @Igneous fix readme: enable :session => enable :sessions
Igneous authored Aug 23, 2011
1060 enable :sessions
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1061
1062 get '/foo' do
1063 session[:secret] = 'foo'
1064 redirect to('/bar')
1065 end
1066
1067 get '/bar' do
1068 session[:secret]
1069 end
1070
1071 === Contrôle du cache
1072
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
1073 Définir correctement vos entêtes à la base pour un bon cache HTTP.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1074
1075 Vous pouvez facilement définir l'entête Cache-Control de la manière suivante :
1076
1077 get '/' do
1078 cache_control :public
1079 "met le en cache !"
1080 end
1081
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
1082 Conseil de pro : définir le cache dans un filtre +before+ :
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1083
1084 before do
1085 cache_control :public, :must_revalidate, :max_age => 60
1086 end
1087
1088 Si vous utilisez la méthode +expires+ pour définir l'entête correspondant,
1089 <tt>Cache-Control</tt> sera alors défini automatiquement :
1090
1091 before do
1092 expires 500, :public, :must_revalidate
1093 end
1094
40c0003 @michelc Slight changes to wording regarding caching.
michelc authored Sep 1, 2011
1095 Pour utiliser correctement les caches, vous devriez utiliser +etag+ ou
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1096 +last_modified+. Il est recommandé d'utiliser ces méthodes *avant* de faire
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
1097 d'importantes modifications, car elles vont immédiatement déclencher la réponse
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
1098 si le client a déjà la version courante dans son cache :
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1099
1100 get '/article/:id' do
1101 @article = Article.find params[:id]
1102 last_modified @article.updated_at
1103 etag @article.sha1
1104 erb :article
1105 end
1106
1107 Il est également possible d'utiliser un
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
1108 {weak ETag}[http://en.wikipedia.org/wiki/HTTP_ETag#Strong_and_weak_validation] :
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1109
1110 etag @article.sha1, :weak
1111
1112 Ces méthodes ne sont pas chargées de mettre des données en cache, mais elles
1113 fournissent les informations nécessaires pour votre cache. Si vous êtes à la
40c0003 @michelc Slight changes to wording regarding caching.
michelc authored Sep 1, 2011
1114 recherche de solutions rapides pour un reverse-proxy de cache, essayez
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
1115 {rack-cache}[http://rtomayko.github.com/rack-cache/] :
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1116
1117 require "rack/cache"
1118 require "sinatra"
1119
1120 use Rack::Cache
1121
1122 get '/' do
1123 cache_control :public, :max_age => 36000
1124 sleep 5
1125 "hello"
1126 end
1127
976b3ff @michelc Update french readme for :static_cache_control setting
michelc authored Sep 15, 2011
1128 Utilisez le paramètre <tt>:static_cache_control</tt> pour ajouter l'information
1129 d'en-tête <tt>Cache-Control</tt> (voir plus loin).
1130
1d2b0d5 @michelc Sync readme.fr with If-Matches according to RFC 2616
michelc authored Mar 3, 2012
1131 D'après la RFC 2616, votre application devrait se comporter différement lorsque
1132 l'en-tête If-Match ou If-None-Match est défini à <tt>*</tt> en tenant compte du
1133 fait que la resource demandée existe déjà ou pas. Sinatra considère que les
1134 requêtes portant sur des resources sûres (tel que get) ou idempotentes (tel que
1135 put) existent déjà et pour les autres resources (par exemple dans le cas
1136 de requêtes post) qu'il s'agit de nouvelles resources. Vous pouvez modifier ce
1137 comportement en passant une option <tt>:new_resource</tt> :
1138
1139 get '/create' do
1140 etag '', :new_resource => true
1141 Article.create
1142 erb :new_article
1143 end
1144
1145 Si vous souhaitez utilisez un ETag faible, utilisez l'option <tt>:kind</tt> :
1146
1147 etag '', :new_resource => true, :kind => :weak
1148
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1149 === Envoyer des fichiers
1150
1151 Pour envoyer des fichiers, vous pouvez utiliser la méthode
1152 <tt>send_file</tt> :
1153
1154 get '/' do
1155 send_file 'foo.png'
1156 end
1157
1158 Quelques options sont également acceptées :
1159
1160 send_file 'foo.png', :type => :jpg
1161
1162 Les options sont :
1163
1164 [filename]
1165 le nom du fichier dans la réponse, par défaut le nom du fichier envoyé.
1166
1167 [last_modified]
1168 valeur pour l'entête Last-Modified, par défaut la date de modification du
1169 fichier
1170
1171 [type]
1172 type de contenu à utiliser, deviné à partir de l'extension de fichier si
1173 absent
1174
1175 [disposition]
1176 utilisé pour Content-Disposition, les valuers possibles étant : +nil+ (par
1177 défaut), <tt>:attachment</tt> et <tt>:inline</tt>
1178
1179 [length]
1180 entête Content-Length, par défaut la taille du fichier
1181
f19b43a @michelc Add :status option support to send_file in readme.fr
michelc authored Mar 6, 2012
1182 [status]
1183 code état à renvoyer. Utile quand un fichier statique sert de page d'erreur.
1184
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1185 Si le gestionnaire Rack le supporte, d'autres moyens que le +streaming+ via le
1186 processus Ruby seront utilisés. Si vous utilisez cette méthode, Sinatra gérera
1187 automatiquement les requêtes de type +range+.
1188
f221fd3 @michelc Synchronized levels of some titles
michelc authored Jul 5, 2011
1189 === Accéder à l'objet requête
3feef2d @sylvaindesve Updated French README with request object documentation.
sylvaindesve authored Oct 12, 2010
1190
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1191 L'objet correspondant à la requête envoyée peut être récupéré dans le contexte
1192 de la requête (filtres, routes, gestionnaires d'erreur) au moyen de la méthode
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
1193 +request+ :
3feef2d @sylvaindesve Updated French README with request object documentation.
sylvaindesve authored Oct 12, 2010
1194
1195 # application tournant à l'adresse http://exemple.com/exemple
1196 get '/foo' do
644c26e @sylvaindesve French README update.
sylvaindesve authored Apr 5, 2011
1197 t = %w[text/css text/html application/javascript]
1198 request.accept # ['text/html', '*/*']
1199 request.accept? 'text/xml' # true
1200 request.preferred_type(t) # 'text/html'
1201 request.body # corps de la requête envoyée par le client
1202 # (voir ci-dessous)
1203 request.scheme # "http"
1204 request.script_name # "/exemple"
1205 request.path_info # "/foo"
1206 request.port # 80
1207 request.request_method # "GET"
1208 request.query_string # ""
1209 request.content_length # taille de request.body
1210 request.media_type # type de média pour request.body
1211 request.host # "exemple.com"
1212 request.get? # true (méthodes similaires pour les autres
1213 # verbes HTTP)
1214 request.form_data? # false
1215 request["UN_ENTETE"] # valeur de l'entête UN_ENTETE
1216 request.referer # référant du client ou '/'
1217 request.user_agent # user agent (utilisé par la condition :agent)
1218 request.cookies # tableau contenant les cookies du navigateur
1219 request.xhr? # requête AJAX ?
1220 request.url # "http://exemple.com/exemple/foo"
1221 request.path # "/exemple/foo"
1222 request.ip # adresse IP du client
1223 request.secure? # false
1224 request.forwarded? # vrai (si on est derrière un proxy inverse)
1225 request.env # tableau brut de l'environnement fourni par
1226 # Rack
3feef2d @sylvaindesve Updated French README with request object documentation.
sylvaindesve authored Oct 12, 2010
1227 end
1228
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1229 Certaines options, telles que <tt>script_name</tt> ou <tt>path_info</tt>
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
1230 peuvent également être modifiées :
3feef2d @sylvaindesve Updated French README with request object documentation.
sylvaindesve authored Oct 12, 2010
1231
1232 before { request.path_info = "/" }
1233
1234 get "/" do
1235 "toutes les requêtes arrivent ici"
1236 end
1237
9b77a2d @sylvaindesve Updated French README and fixed typography.
sylvaindesve authored May 3, 2011
1238 <tt>request.body</tt> est un objet IO ou StringIO :
3feef2d @sylvaindesve Updated French README with request object documentation.
sylvaindesve authored Oct 12, 2010
1239
1240 post "/api" do
1241 request.body.rewind # au cas où il a déjà été lu
1242 donnees = JSON.parse request.body.read
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
1243 "Bonjour #{donnees['nom']} !"
3feef2d @sylvaindesve Updated French README with request object documentation.
sylvaindesve authored Oct 12, 2010
1244 end
1245
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1246 === Fichiers joints
1247
1248 Vous pouvez utiliser la méthode +attachment+ pour indiquer au navigateur que
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
1249 la réponse devrait être stockée sur le disque plutôt qu'affichée :
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1250
1251 get '/' do
1252 attachment
1253 "enregistre-le !"
1254 end
1255
1256 Vous pouvez également lui passer un nom de fichier :
1257
1258 get '/' do
1259 attachment "info.txt"
1260 "enregistre-le !"
1261 end
1262
5a23b36 @michelc Make time_for part of the API.
michelc authored Sep 1, 2011
1263 === Gérer Date et Time
1264
1265 Sinatra fourni un helper +time_for+ pour convertir une valeur donnée en
1266 objet +Time+. Il peut aussi faire la conversion à partir d'objets +DateTime+,
00db6c8 @michelc Consistent colon in French Readme.
michelc authored Sep 2, 2011
1267 +Date+ ou de classes similaires :
5a23b36 @michelc Make time_for part of the API.
michelc authored Sep 1, 2011
1268
1269 get '/' do
1270 pass if Time.now > time_for('Dec 23, 2012')
1271 "encore temps"
1272 end
1273
1274 Cette méthode est utilisée en interne par +expires+, +last_modified+ et
1275 consorts. Par conséquent, vous pouvez très facilement étendre le
1276 fonctionnement de ces méthodes en surchargeant le helper +time_for+ dans
1277 votre application :
1278
1279 helpers do
1280 def time_for(value)
1281 case value
1282 when :yesterday then Time.now - 24*60*60
1283 when :tomorrow then Time.now + 24*60*60
1284 else super
1285 end
1286 end
1287 end
1288
1289 get '/' do
1290 last_modified :yesterday
1291 expires :tomorrow
1292 "salut"
1293 end
1294
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1295 === Chercher les fichiers de templates
1296
1297 La méthode <tt>find_template</tt> est utilisée pour trouver les fichiers de
1298 templates à générer :
1299
1300 find_template settings.views, 'foo', Tilt[:haml] do |file|
1301 puts "pourrait être #{file}"
1302 end
1303
1304 Ce n'est pas très utilise. En revanche, il est utile de pouvoir surcharger
1305 cette méthode afin de définir son propre mécanisme de recherche. Par exemple,
1306 vous pouvez utiliser plus d'un répertoire de vues :
1307
1308 set :views, ['views', 'templates']
1309
1310 helpers do
1311 def find_template(views, name, engine, &block)
1312 Array(views).each { |v| super(v, name, engine, &block) }
1313 end
1314 end
1315
1316 Un autre exemple est d'utiliser des répertoires différents pour des moteurs
1317 de rendu différents :
1318
1319 set :views, :sass => 'views/sass', :haml => 'templates', :default => 'views'
1320
1321 helpers do
1322 def find_template(views, name, engine, &block)
1323 _, folder = views.detect { |k,v| engine == Tilt[k] }
1324 folder ||= views[:default]
1325 super(folder, name, engine, &block)
1326 end
1327 end
1328
1329 Vous pouvez également écrire cela dans une extension et la partager avec
1330 d'autres !
1331
1332 Notez que <tt>find_template</tt> ne vérifie pas que le fichier existe mais
1333 va plutôt exécuter le bloc pour tous les chemins possibles. Cela n'induit pas
1334 un problème de performance dans le sens où +render+ va utiliser +break+ dès
1335 qu'un fichier est trouvé. De plus, l'emplacement des templates (et leur
1336 contenu) est mis en cache si vous n'êtes pas en mode développement. Vous
1337 devriez garder cela en tête si vous écrivez une méthode vraiment dingue.
1338
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
1339 == Configuration
1340
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
1341 Lancé une seule fois au démarrage de tous les environnements :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
1342
1343 configure do
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1344 # définir un paramètre
1345 set :option, 'value'
1346
1347 # définir plusieurs paramètre
1348 set :a => 1, :b => 2
1349
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
1350 # identique à "set :option, true"
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1351 enable :option
1352
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
1353 # identique à "set :option, false""
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1354 disable :option
1355
1356 # vous pouvez également avoir des paramètres dynamiques avec des blocs
1357 set(:css_dir) { File.join(views, 'css') }
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
1358 end
1359
4d87a59 @sylvaindesve Updated the French README to include changes made to the English vers…
sylvaindesve authored Oct 6, 2010
1360 Lancé si l'environnement (variable d'environnement RACK_ENV) est défini comme
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
1361 <tt>:production</tt> :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
1362
1363 configure :production do
1364 ...
1365 end
1366
1367 Lancé si l'environnement est <tt>:production</tt> ou
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
1368 <tt>:test</tt> :
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
1369
1370 configure :production, :test do
1371 ...
1372 end
1373
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1374 Vous pouvez accéder à ces paramètres via <tt>settings</tt> :
1375
1376 configure do
1377 set :foo, 'bar'
1378 end
1379
1380 get '/' do
1381 settings.foo? # => true
1382 settings.foo # => 'bar'
1383 ...
1384 end
1385
2431c57 @michelc Sync readme.fr with attack protection
michelc authored Mar 3, 2012
1386 === Se protéger des attaques
1387
1388 Sinatra utilise {Rack::Protection}[https://github.com/rkh/rack-protection#readme]
1389 pour protéger votre application contre les principales attaques opportunistes.
c452938 @GordonDiggs Add note about disabling protection to readme.fr
GordonDiggs authored Apr 25, 2012
1390 Vous pouvez très simplement désactiver cette fonctionnalité (ce qui exposera
1391 votre application à beaucoup de vulnerabilités courantes) :
2431c57 @michelc Sync readme.fr with attack protection
michelc authored Mar 3, 2012
1392
1393 disable :protection
1394
1395 Pour désactiver seulement un type de protection, vous pouvez définir +protection+
f3b5008 @michelc Remove trailing spaces in readme.fr
michelc authored Mar 6, 2012
1396 avec un hash d'options :
2431c57 @michelc Sync readme.fr with attack protection
michelc authored Mar 3, 2012
1397
1398 set :protection, :except => :path_traversal
1399
1400 Vous pouvez également lui passer un tableau pour désactiver plusieurs types de
1401 protection :
1402
1403 set :protection, :except => [:path_traversal, :session_hijacking]
1404
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1405 === Paramètres disponibles
1406
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1407 [absolute_redirects] Si désactivé, Sinatra permettra les redirections
1408 relatives. Toutefois, Sinatra ne sera plus conforme à la
1409 RFC 2616 (HTTP 1.1), qui n'autorise que les redirections
1410 absolues.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1411
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1412 Activez si votre application tourne derrière un proxy
1413 inverse qui n'a pas été correctement configuré. Notez
1414 que la méthode +url+ continuera de produire des URLs
1415 absolues, sauf si vous lui passez +false+ comme second
1416 argument.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1417
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1418 Désactivé par défaut.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1419
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1420 [add_charsets] types mime pour lesquels la méthode
1421 <tt>content_type</tt> va automatiquement ajouter
1422 l'information du +charset+.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1423
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1424 Vous devriez lui ajouter des valeurs plutôt que de
1425 l'écraser :
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1426
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1427 settings.add_charsets << "application/foobar"
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1428
dcf7148 @michelc Improve settings description in readme.fr
michelc authored Mar 4, 2012
1429 [app_file] chemin pour le fichier de l'application principale,
1430 utilisé pour détecter la racine du projet, les dossiers
1431 public et vues, et les templates en ligne.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1432
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1433 [bind] adresse IP sur laquelle se brancher
1434 (par défaut : 0.0.0.0).
1435 Utiliser seulement pour le serveur intégré.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1436
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1437 [default_encoding] encodage à utiliser si inconnu (par défaut
1438 <tt>"utf-8"</tt>).
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1439
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1440 [dump_errors] afficher les erreurs dans le +log+.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1441
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1442 [environment] environnement courant, par défaut
1443 <tt>ENV['RACK_ENV']</tt>, ou
1444 <tt>"development"</tt> si absent.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1445
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1446 [logging] utiliser le +logger+.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1447
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1448 [lock] Place un +lock+ autour de chaque requête, n'exécutant
1449 donc qu'une seule requête par processus Ruby.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1450
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1451 Activé si votre application n'est pas +thread-safe+.
1452 Désactivé par défaut.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1453
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1454 [method_override] utilise la magie de <tt>_method</tt> afin de permettre
1455 des formulaires put/delete dans des navigateurs qui ne
1456 le permettent pas.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1457
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1458 [port] port à écouter. Utiliser seulement pour le serveur
1459 intégré.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1460
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1461 [prefixed_redirects] si oui ou non <tt>request.script_name</tt> doit être
1462 inséré dans les redirections si un chemin non absolu
1463 est utilisé. Ainsi, <tt>redirect '/foo'</tt> se
1464 comportera comme <tt>redirect to('/foo')</tt>.
1465 Désactivé par défaut.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1466
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1467 [protection] défini s'il faut activer ou non la protection contre
93b72b8 @michelc Update readme.fr with inner references to attack protection
michelc authored Mar 3, 2012
1468 les attaques web. Voir la section protection précédente.
976b3ff @michelc Update french readme for :static_cache_control setting
michelc authored Sep 15, 2011
1469
4562b02 @michelc Add public_dir alias in readme.fr
michelc authored Mar 15, 2012
1470 [public_dir] alias pour <tt>public_folder</tt>. Voir ci-dessous.
1471
dcf7148 @michelc Improve settings description in readme.fr
michelc authored Mar 4, 2012
1472 [public_folder] chemin pour le dossier à partir duquel les fichiers
1473 publics sont servis. Utilisé seulement si les fichiers
1474 statiques doivent être servis (voir le paramètre
1475 <tt>static</tt>). Si non défini, il découle du paramètre
1476 <tt>app_file</tt>.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1477
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1478 [reload_templates] si oui ou non les templates doivent être rechargés
1479 entre les requêtes. Activé en mode développement.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1480
dcf7148 @michelc Improve settings description in readme.fr
michelc authored Mar 4, 2012
1481 [root] chemin pour le dossier racine du projet. Si non défini,
1482 il découle du paramètre <tt>app_file</tt>.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1483
f3b5008 @michelc Remove trailing spaces in readme.fr
michelc authored Mar 6, 2012
1484 [raise_errors] soulever les erreurs (ce qui arrêtera l'application).
46fb068 @michelc 'env' is actually 'environment' in readme.fr too
michelc authored Mar 4, 2012
1485 Désactivé par défaut sauf lorsque <tt>environment</tt>
1486 est défini à <tt>"test"</tt>.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1487
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1488 [run] si activé, Sinatra s'occupera de démarrer le serveur,
1489 ne pas activer si vous utiliser rackup ou autres.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1490
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1491 [running] est-ce que le serveur intégré est en marche ?
1492 ne changez pas ce paramètre !
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1493
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1494 [server] serveur ou liste de serveurs à utiliser pour le serveur
1495 intégré.
1496 Par défaut ['thin', 'mongrel', 'webrick'], l'ordre
1497 indiquant la priorité.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1498
dcf7148 @michelc Improve settings description in readme.fr
michelc authored Mar 4, 2012
1499 [sessions] active le support des sessions basées sur les cookies, en
1500 utilisant <tt>Rack::Session::Cookie</tt>. Reportez-vous
1501 à la section 'Utiliser les sessions' pour plus
1502 d'informations.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1503
dcf7148 @michelc Improve settings description in readme.fr
michelc authored Mar 4, 2012
1504 [show_exceptions] affiche la trace de l'erreur dans le navigateur lorsqu'une
1505 exception se produit. Désactivé par défaut sauf lorsque
46fb068 @michelc 'env' is actually 'environment' in readme.fr too
michelc authored Mar 4, 2012
1506 <tt>environment</tt> est défini à <tt>"development"</tt>.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1507
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1508 [static] Si oui ou non Sinatra doit s'occuper de servir les
1509 fichiers statiques.
1510 Désactivez si vous utilisez un serveur capable de le
1511 gérer lui même. Le désactiver augmentera la performance.
1512 Activé par défaut pour le style classique, désactivé pour
1513 le style modulaire.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1514
976b3ff @michelc Update french readme for :static_cache_control setting
michelc authored Sep 15, 2011
1515 [static_cache_control] A définir quand Sinatra rend des fichiers statiques pour
1516 ajouter les en-têtes <tt>Cache-Control</tt>. Utilise le
1517 helper +cache_control+. Désactivé par défaut.
1518 Utiliser un array explicite pour définir des plusieurs
1519 valeurs :
1520 <tt>set :static_cache_control, [:public, :max_age => 300]</tt>
1521
cf4e7dd @michelc Add one space to align all parameters in french readme.
michelc authored Sep 15, 2011
1522 [threaded] à définir à +true+ pour indiquer à Thin d'utiliser
1523 <tt>EventMachine.defer</tt> pour traiter la requête.
733d54a @michelc Add section about #stream helper
michelc authored Sep 1, 2011
1524
dcf7148 @michelc Improve settings description in readme.fr
michelc authored Mar 4, 2012
1525 [views] chemin pour le dossier des vues. Si non défini, il
1526 découle du paramètre <tt>app_file</tt>.
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1527
c6acabc @michelc Sync readme.fr with environments
michelc authored Mar 3, 2012
1528 == Environements
1529
1530 Il existe trois environnements prédéfinis : <tt>"development"</tt>,
1531 <tt>"production"</tt> et <tt>"test"</tt>. Les environements peuvent être
1532 sélectionné via la variable d'environnement +RACK_ENV+. Sa valeur par défaut
1533 est <tt>"development"</tt>. Dans ce mode, tous les templates sont rechargés à
1534 chaque requête. Des handlers spécifiques pour <tt>not_found</tt> et
1535 <tt>error</tt> sont installés pour vous permettre d'avoir une pile de trace
1536 dans votre navigateur. En mode <tt>"production"</tt> et <tt>"test"</tt> les
1537 templates sont mis en cache par défaut.
1538
1539 Pour exécuter votre application dans un environnement différent, utilisez
1540 l'option <tt>-e</tt> de Ruby :
1541
1542 ruby mon_application.rb -e [ENVIRONMENT]
1543
1544 Vous pouvez utiliser une des méthodes +development?+, +test?+ et +production?+
1545 pour déterminer quel est l'environnement en cours.
1546
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
1547 == Gérer les erreurs
1548
95924e3 @sylvaindesve Updated the French README.
sylvaindesve authored Mar 6, 2011
1549 Les gestionnaires d'erreur s'exécutent dans le même contexte que les routes ou
1550 les filtres, ce qui veut dire que vous avez accès (entre autres) aux bons
1551 vieux <tt>haml</tt>, <tt>erb</tt>, <tt>halt</tt>, etc.
945a1f8 @mig-hub Add README's French translation.
mig-hub authored Sep 21, 2010
1552
d8f46b5 @rymai Typography update: added whitespace before "?", "!", ";" and ":", cha…
rymai authored May 2, 2011
1553