sinatra 1.1.4 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/AUTHORS +5 -1
- data/CHANGES +47 -2
- data/Gemfile +53 -0
- data/README.de.rdoc +732 -85
- data/README.es.rdoc +725 -75
- data/README.fr.rdoc +29 -16
- data/README.hu.rdoc +4 -4
- data/README.jp.rdoc +29 -16
- data/README.pt-br.rdoc +6 -6
- data/README.rdoc +664 -91
- data/README.ru.rdoc +257 -75
- data/README.zh.rdoc +889 -111
- data/Rakefile +7 -32
- data/lib/sinatra/base.rb +133 -66
- data/lib/sinatra/showexceptions.rb +25 -0
- data/sinatra.gemspec +10 -18
- data/test/builder_test.rb +6 -0
- data/test/coffee_test.rb +1 -1
- data/test/encoding_test.rb +4 -3
- data/test/erubis_test.rb +6 -0
- data/test/filter_test.rb +105 -1
- data/test/haml_test.rb +2 -1
- data/test/helper.rb +2 -0
- data/test/helpers_test.rb +105 -13
- data/test/less_test.rb +6 -0
- data/test/liquid_test.rb +2 -1
- data/test/markaby_test.rb +23 -1
- data/test/markdown_test.rb +3 -2
- data/test/nokogiri_test.rb +2 -1
- data/test/radius_test.rb +3 -2
- data/test/rdoc_test.rb +3 -2
- data/test/routing_test.rb +38 -1
- data/test/sass_test.rb +1 -1
- data/test/scss_test.rb +1 -1
- data/test/slim_test.rb +98 -0
- data/test/templates_test.rb +53 -0
- data/test/textile_test.rb +2 -1
- data/test/views/a/in_a.str +1 -0
- data/test/views/{ascii.haml → ascii.erb} +1 -1
- data/test/views/b/in_b.str +1 -0
- data/test/views/hello.slim +1 -0
- data/test/views/layout2.slim +3 -0
- data/test/views/{utf8.haml → utf8.erb} +1 -1
- metadata +42 -161
data/test/templates_test.rb
CHANGED
|
@@ -208,11 +208,64 @@ class TemplatesTest < Test::Unit::TestCase
|
|
|
208
208
|
assert_equal 'template in subclass', body
|
|
209
209
|
end
|
|
210
210
|
|
|
211
|
+
it "is possible to use a different engine for the layout than for the template itself explicitely" do
|
|
212
|
+
render_app do
|
|
213
|
+
settings.template(:layout) { 'Hello <%= yield %>!' }
|
|
214
|
+
render :str, "<%= 'World' %>", :layout_engine => :erb
|
|
215
|
+
end
|
|
216
|
+
assert_equal "Hello <%= 'World' %>!", body
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
it "is possible to use a different engine for the layout than for the template itself globally" do
|
|
220
|
+
render_app :str => { :layout_engine => :erb } do
|
|
221
|
+
settings.template(:layout) { 'Hello <%= yield %>!' }
|
|
222
|
+
render :str, "<%= 'World' %>"
|
|
223
|
+
end
|
|
224
|
+
assert_equal "Hello <%= 'World' %>!", body
|
|
225
|
+
end
|
|
226
|
+
|
|
211
227
|
it "is possible to register another template" do
|
|
212
228
|
Tilt.register "html.erb", Tilt[:erb]
|
|
213
229
|
render_app { render :erb, :calc }
|
|
214
230
|
assert_equal '2', body
|
|
215
231
|
end
|
|
232
|
+
|
|
233
|
+
it "passes scope to the template" do
|
|
234
|
+
mock_app do
|
|
235
|
+
template :scoped do
|
|
236
|
+
'Hello <%= foo %>'
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
get '/' do
|
|
240
|
+
some_scope = Object.new
|
|
241
|
+
def some_scope.foo() 'World!' end
|
|
242
|
+
erb :scoped, :scope => some_scope
|
|
243
|
+
end
|
|
244
|
+
end
|
|
245
|
+
|
|
246
|
+
get '/'
|
|
247
|
+
assert ok?
|
|
248
|
+
assert_equal 'Hello World!', body
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
it "is possible to use custom logic for finding template files" do
|
|
252
|
+
mock_app do
|
|
253
|
+
set :views, ["a", "b"].map { |d| File.dirname(__FILE__) + '/views/' + d }
|
|
254
|
+
def find_template(views, name, engine, &block)
|
|
255
|
+
Array(views).each { |v| super(v, name, engine, &block) }
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
get('/:name') do
|
|
259
|
+
render :str, params[:name].to_sym
|
|
260
|
+
end
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
get '/in_a'
|
|
264
|
+
assert_body 'Gimme an A!'
|
|
265
|
+
|
|
266
|
+
get '/in_b'
|
|
267
|
+
assert_body 'Gimme a B!'
|
|
268
|
+
end
|
|
216
269
|
end
|
|
217
270
|
|
|
218
271
|
# __END__ : this is not the real end of the script.
|
data/test/textile_test.rb
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Gimme an A!
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
This file has no unicode in it!
|
|
2
|
-
|
|
2
|
+
<%= value %>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Gimme a B!
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
h1 Hello From Slim
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
<h1><%= value %></h1>
|
|
2
2
|
Ingen vill veta var du köpt din tröja.
|
metadata
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sinatra
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
+
hash: 31
|
|
4
5
|
prerelease:
|
|
5
|
-
|
|
6
|
+
segments:
|
|
7
|
+
- 1
|
|
8
|
+
- 2
|
|
9
|
+
- 0
|
|
10
|
+
version: 1.2.0
|
|
6
11
|
platform: ruby
|
|
7
12
|
authors:
|
|
8
13
|
- Blake Mizerany
|
|
@@ -13,7 +18,7 @@ autorequire:
|
|
|
13
18
|
bindir: bin
|
|
14
19
|
cert_chain: []
|
|
15
20
|
|
|
16
|
-
date: 2011-
|
|
21
|
+
date: 2011-03-03 00:00:00 +01:00
|
|
17
22
|
default_executable:
|
|
18
23
|
dependencies:
|
|
19
24
|
- !ruby/object:Gem::Dependency
|
|
@@ -24,6 +29,10 @@ dependencies:
|
|
|
24
29
|
requirements:
|
|
25
30
|
- - ~>
|
|
26
31
|
- !ruby/object:Gem::Version
|
|
32
|
+
hash: 13
|
|
33
|
+
segments:
|
|
34
|
+
- 1
|
|
35
|
+
- 1
|
|
27
36
|
version: "1.1"
|
|
28
37
|
type: :runtime
|
|
29
38
|
version_requirements: *id001
|
|
@@ -35,177 +44,36 @@ dependencies:
|
|
|
35
44
|
requirements:
|
|
36
45
|
- - ">="
|
|
37
46
|
- !ruby/object:Gem::Version
|
|
47
|
+
hash: 27
|
|
48
|
+
segments:
|
|
49
|
+
- 1
|
|
50
|
+
- 2
|
|
51
|
+
- 2
|
|
38
52
|
version: 1.2.2
|
|
39
53
|
- - <
|
|
40
54
|
- !ruby/object:Gem::Version
|
|
55
|
+
hash: 3
|
|
56
|
+
segments:
|
|
57
|
+
- 2
|
|
58
|
+
- 0
|
|
41
59
|
version: "2.0"
|
|
42
60
|
type: :runtime
|
|
43
61
|
version_requirements: *id002
|
|
44
|
-
- !ruby/object:Gem::Dependency
|
|
45
|
-
name: rake
|
|
46
|
-
prerelease: false
|
|
47
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
|
48
|
-
none: false
|
|
49
|
-
requirements:
|
|
50
|
-
- - ">="
|
|
51
|
-
- !ruby/object:Gem::Version
|
|
52
|
-
version: "0"
|
|
53
|
-
type: :development
|
|
54
|
-
version_requirements: *id003
|
|
55
62
|
- !ruby/object:Gem::Dependency
|
|
56
63
|
name: shotgun
|
|
57
64
|
prerelease: false
|
|
58
|
-
requirement: &
|
|
65
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
|
59
66
|
none: false
|
|
60
67
|
requirements:
|
|
61
68
|
- - ~>
|
|
62
69
|
- !ruby/object:Gem::Version
|
|
70
|
+
hash: 7
|
|
71
|
+
segments:
|
|
72
|
+
- 0
|
|
73
|
+
- 6
|
|
63
74
|
version: "0.6"
|
|
64
75
|
type: :development
|
|
65
|
-
version_requirements: *
|
|
66
|
-
- !ruby/object:Gem::Dependency
|
|
67
|
-
name: rack-test
|
|
68
|
-
prerelease: false
|
|
69
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
|
70
|
-
none: false
|
|
71
|
-
requirements:
|
|
72
|
-
- - ">="
|
|
73
|
-
- !ruby/object:Gem::Version
|
|
74
|
-
version: 0.5.6
|
|
75
|
-
type: :development
|
|
76
|
-
version_requirements: *id005
|
|
77
|
-
- !ruby/object:Gem::Dependency
|
|
78
|
-
name: haml
|
|
79
|
-
prerelease: false
|
|
80
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
|
81
|
-
none: false
|
|
82
|
-
requirements:
|
|
83
|
-
- - ">="
|
|
84
|
-
- !ruby/object:Gem::Version
|
|
85
|
-
version: "3.0"
|
|
86
|
-
type: :development
|
|
87
|
-
version_requirements: *id006
|
|
88
|
-
- !ruby/object:Gem::Dependency
|
|
89
|
-
name: builder
|
|
90
|
-
prerelease: false
|
|
91
|
-
requirement: &id007 !ruby/object:Gem::Requirement
|
|
92
|
-
none: false
|
|
93
|
-
requirements:
|
|
94
|
-
- - ">="
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: "0"
|
|
97
|
-
type: :development
|
|
98
|
-
version_requirements: *id007
|
|
99
|
-
- !ruby/object:Gem::Dependency
|
|
100
|
-
name: erubis
|
|
101
|
-
prerelease: false
|
|
102
|
-
requirement: &id008 !ruby/object:Gem::Requirement
|
|
103
|
-
none: false
|
|
104
|
-
requirements:
|
|
105
|
-
- - ">="
|
|
106
|
-
- !ruby/object:Gem::Version
|
|
107
|
-
version: "0"
|
|
108
|
-
type: :development
|
|
109
|
-
version_requirements: *id008
|
|
110
|
-
- !ruby/object:Gem::Dependency
|
|
111
|
-
name: less
|
|
112
|
-
prerelease: false
|
|
113
|
-
requirement: &id009 !ruby/object:Gem::Requirement
|
|
114
|
-
none: false
|
|
115
|
-
requirements:
|
|
116
|
-
- - ">="
|
|
117
|
-
- !ruby/object:Gem::Version
|
|
118
|
-
version: "0"
|
|
119
|
-
type: :development
|
|
120
|
-
version_requirements: *id009
|
|
121
|
-
- !ruby/object:Gem::Dependency
|
|
122
|
-
name: liquid
|
|
123
|
-
prerelease: false
|
|
124
|
-
requirement: &id010 !ruby/object:Gem::Requirement
|
|
125
|
-
none: false
|
|
126
|
-
requirements:
|
|
127
|
-
- - ">="
|
|
128
|
-
- !ruby/object:Gem::Version
|
|
129
|
-
version: "0"
|
|
130
|
-
type: :development
|
|
131
|
-
version_requirements: *id010
|
|
132
|
-
- !ruby/object:Gem::Dependency
|
|
133
|
-
name: rdiscount
|
|
134
|
-
prerelease: false
|
|
135
|
-
requirement: &id011 !ruby/object:Gem::Requirement
|
|
136
|
-
none: false
|
|
137
|
-
requirements:
|
|
138
|
-
- - ">="
|
|
139
|
-
- !ruby/object:Gem::Version
|
|
140
|
-
version: "0"
|
|
141
|
-
type: :development
|
|
142
|
-
version_requirements: *id011
|
|
143
|
-
- !ruby/object:Gem::Dependency
|
|
144
|
-
name: RedCloth
|
|
145
|
-
prerelease: false
|
|
146
|
-
requirement: &id012 !ruby/object:Gem::Requirement
|
|
147
|
-
none: false
|
|
148
|
-
requirements:
|
|
149
|
-
- - ">="
|
|
150
|
-
- !ruby/object:Gem::Version
|
|
151
|
-
version: "0"
|
|
152
|
-
type: :development
|
|
153
|
-
version_requirements: *id012
|
|
154
|
-
- !ruby/object:Gem::Dependency
|
|
155
|
-
name: radius
|
|
156
|
-
prerelease: false
|
|
157
|
-
requirement: &id013 !ruby/object:Gem::Requirement
|
|
158
|
-
none: false
|
|
159
|
-
requirements:
|
|
160
|
-
- - ">="
|
|
161
|
-
- !ruby/object:Gem::Version
|
|
162
|
-
version: "0"
|
|
163
|
-
type: :development
|
|
164
|
-
version_requirements: *id013
|
|
165
|
-
- !ruby/object:Gem::Dependency
|
|
166
|
-
name: markaby
|
|
167
|
-
prerelease: false
|
|
168
|
-
requirement: &id014 !ruby/object:Gem::Requirement
|
|
169
|
-
none: false
|
|
170
|
-
requirements:
|
|
171
|
-
- - ">="
|
|
172
|
-
- !ruby/object:Gem::Version
|
|
173
|
-
version: "0"
|
|
174
|
-
type: :development
|
|
175
|
-
version_requirements: *id014
|
|
176
|
-
- !ruby/object:Gem::Dependency
|
|
177
|
-
name: coffee-script
|
|
178
|
-
prerelease: false
|
|
179
|
-
requirement: &id015 !ruby/object:Gem::Requirement
|
|
180
|
-
none: false
|
|
181
|
-
requirements:
|
|
182
|
-
- - ">="
|
|
183
|
-
- !ruby/object:Gem::Version
|
|
184
|
-
version: "2.0"
|
|
185
|
-
type: :development
|
|
186
|
-
version_requirements: *id015
|
|
187
|
-
- !ruby/object:Gem::Dependency
|
|
188
|
-
name: rdoc
|
|
189
|
-
prerelease: false
|
|
190
|
-
requirement: &id016 !ruby/object:Gem::Requirement
|
|
191
|
-
none: false
|
|
192
|
-
requirements:
|
|
193
|
-
- - ">="
|
|
194
|
-
- !ruby/object:Gem::Version
|
|
195
|
-
version: "0"
|
|
196
|
-
type: :development
|
|
197
|
-
version_requirements: *id016
|
|
198
|
-
- !ruby/object:Gem::Dependency
|
|
199
|
-
name: nokogiri
|
|
200
|
-
prerelease: false
|
|
201
|
-
requirement: &id017 !ruby/object:Gem::Requirement
|
|
202
|
-
none: false
|
|
203
|
-
requirements:
|
|
204
|
-
- - ">="
|
|
205
|
-
- !ruby/object:Gem::Version
|
|
206
|
-
version: "0"
|
|
207
|
-
type: :development
|
|
208
|
-
version_requirements: *id017
|
|
76
|
+
version_requirements: *id003
|
|
209
77
|
description: Classy web-development dressed in a DSL
|
|
210
78
|
email: sinatrarb@googlegroups.com
|
|
211
79
|
executables: []
|
|
@@ -224,6 +92,7 @@ extra_rdoc_files:
|
|
|
224
92
|
files:
|
|
225
93
|
- AUTHORS
|
|
226
94
|
- CHANGES
|
|
95
|
+
- Gemfile
|
|
227
96
|
- LICENSE
|
|
228
97
|
- README.de.rdoc
|
|
229
98
|
- README.es.rdoc
|
|
@@ -275,10 +144,13 @@ files:
|
|
|
275
144
|
- test/server_test.rb
|
|
276
145
|
- test/settings_test.rb
|
|
277
146
|
- test/sinatra_test.rb
|
|
147
|
+
- test/slim_test.rb
|
|
278
148
|
- test/static_test.rb
|
|
279
149
|
- test/templates_test.rb
|
|
280
150
|
- test/textile_test.rb
|
|
281
|
-
- test/views/
|
|
151
|
+
- test/views/a/in_a.str
|
|
152
|
+
- test/views/ascii.erb
|
|
153
|
+
- test/views/b/in_b.str
|
|
282
154
|
- test/views/calc.html.erb
|
|
283
155
|
- test/views/error.builder
|
|
284
156
|
- test/views/error.erb
|
|
@@ -301,6 +173,7 @@ files:
|
|
|
301
173
|
- test/views/hello.rdoc
|
|
302
174
|
- test/views/hello.sass
|
|
303
175
|
- test/views/hello.scss
|
|
176
|
+
- test/views/hello.slim
|
|
304
177
|
- test/views/hello.str
|
|
305
178
|
- test/views/hello.test
|
|
306
179
|
- test/views/hello.textile
|
|
@@ -312,10 +185,11 @@ files:
|
|
|
312
185
|
- test/views/layout2.mab
|
|
313
186
|
- test/views/layout2.nokogiri
|
|
314
187
|
- test/views/layout2.radius
|
|
188
|
+
- test/views/layout2.slim
|
|
315
189
|
- test/views/layout2.str
|
|
316
190
|
- test/views/layout2.test
|
|
317
191
|
- test/views/nested.str
|
|
318
|
-
- test/views/utf8.
|
|
192
|
+
- test/views/utf8.erb
|
|
319
193
|
has_rdoc: true
|
|
320
194
|
homepage: http://sinatra.rubyforge.org
|
|
321
195
|
licenses: []
|
|
@@ -335,17 +209,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
335
209
|
requirements:
|
|
336
210
|
- - ">="
|
|
337
211
|
- !ruby/object:Gem::Version
|
|
212
|
+
hash: 3
|
|
213
|
+
segments:
|
|
214
|
+
- 0
|
|
338
215
|
version: "0"
|
|
339
216
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
340
217
|
none: false
|
|
341
218
|
requirements:
|
|
342
219
|
- - ">="
|
|
343
220
|
- !ruby/object:Gem::Version
|
|
221
|
+
hash: 3
|
|
222
|
+
segments:
|
|
223
|
+
- 0
|
|
344
224
|
version: "0"
|
|
345
225
|
requirements: []
|
|
346
226
|
|
|
347
227
|
rubyforge_project: sinatra
|
|
348
|
-
rubygems_version: 1.
|
|
228
|
+
rubygems_version: 1.5.2
|
|
349
229
|
signing_key:
|
|
350
230
|
specification_version: 2
|
|
351
231
|
summary: Classy web-development dressed in a DSL
|
|
@@ -379,6 +259,7 @@ test_files:
|
|
|
379
259
|
- test/server_test.rb
|
|
380
260
|
- test/settings_test.rb
|
|
381
261
|
- test/sinatra_test.rb
|
|
262
|
+
- test/slim_test.rb
|
|
382
263
|
- test/static_test.rb
|
|
383
264
|
- test/templates_test.rb
|
|
384
265
|
- test/textile_test.rb
|