sinatra 0.9.1.1 → 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of sinatra might be problematic. Click here for more details.
- data/CHANGES +81 -0
- data/LICENSE +1 -1
- data/README.rdoc +63 -23
- data/Rakefile +25 -23
- data/compat/haml_test.rb +7 -4
- data/compat/helper.rb +3 -0
- data/compat/sass_test.rb +10 -0
- data/lib/sinatra/base.rb +240 -148
- data/lib/sinatra/compat.rb +16 -0
- data/lib/sinatra/main.rb +2 -14
- data/lib/sinatra/showexceptions.rb +303 -0
- data/lib/sinatra/test.rb +2 -0
- data/sinatra.gemspec +13 -4
- data/test/base_test.rb +123 -93
- data/test/builder_test.rb +2 -1
- data/test/contest.rb +64 -0
- data/test/erb_test.rb +1 -1
- data/test/extensions_test.rb +17 -1
- data/test/filter_test.rb +1 -1
- data/test/haml_test.rb +25 -3
- data/test/helper.rb +43 -48
- data/test/helpers_test.rb +446 -440
- data/test/mapped_error_test.rb +138 -143
- data/test/middleware_test.rb +2 -2
- data/test/options_test.rb +241 -248
- data/test/render_backtrace_test.rb +145 -0
- data/test/request_test.rb +1 -1
- data/test/response_test.rb +2 -2
- data/test/result_test.rb +1 -1
- data/test/route_added_hook_test.rb +59 -0
- data/test/routing_test.rb +94 -22
- data/test/sass_test.rb +44 -1
- data/test/server_test.rb +5 -3
- data/test/sinatra_test.rb +1 -1
- data/test/static_test.rb +2 -2
- data/test/templates_test.rb +16 -4
- data/test/test_test.rb +15 -7
- data/test/views/error.builder +3 -0
- data/test/views/error.erb +3 -0
- data/test/views/error.haml +3 -0
- data/test/views/error.sass +2 -0
- metadata +32 -4
- data/test/reload_test.rb +0 -68
data/test/server_test.rb
CHANGED
@@ -14,8 +14,8 @@ class Rack::Handler::Mock
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
-
|
18
|
-
|
17
|
+
class ServerTest < Test::Unit::TestCase
|
18
|
+
setup do
|
19
19
|
mock_app {
|
20
20
|
set :server, 'mock'
|
21
21
|
set :host, 'foo.local'
|
@@ -24,7 +24,9 @@ describe 'Sinatra::Base.run!' do
|
|
24
24
|
$stdout = File.open('/dev/null', 'wb')
|
25
25
|
end
|
26
26
|
|
27
|
-
|
27
|
+
def teardown
|
28
|
+
$stdout = STDOUT
|
29
|
+
end
|
28
30
|
|
29
31
|
it "locates the appropriate Rack handler and calls ::run" do
|
30
32
|
@app.run!
|
data/test/sinatra_test.rb
CHANGED
data/test/static_test.rb
CHANGED
data/test/templates_test.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/helper'
|
2
2
|
|
3
|
-
|
3
|
+
class TemplatesTest < Test::Unit::TestCase
|
4
4
|
def render_app(&block)
|
5
5
|
mock_app {
|
6
|
-
def render_test(template, data, options, &block)
|
6
|
+
def render_test(template, data, options, locals, &block)
|
7
7
|
inner = block ? block.call : ''
|
8
8
|
data + inner
|
9
9
|
end
|
@@ -72,11 +72,23 @@ describe 'Templating' do
|
|
72
72
|
mock_app {
|
73
73
|
use_in_file_templates!
|
74
74
|
}
|
75
|
-
assert_equal "this is foo\n\n", @app.templates[:foo]
|
76
|
-
assert_equal "X\n= yield\nX\n", @app.templates[:layout]
|
75
|
+
assert_equal "this is foo\n\n", @app.templates[:foo][:template]
|
76
|
+
assert_equal "X\n= yield\nX\n", @app.templates[:layout][:template]
|
77
|
+
end
|
78
|
+
|
79
|
+
test 'use_in_file_templates simply ignores IO errors' do
|
80
|
+
assert_nothing_raised {
|
81
|
+
mock_app {
|
82
|
+
use_in_file_templates!('/foo/bar')
|
83
|
+
}
|
84
|
+
}
|
85
|
+
|
86
|
+
assert @app.templates.empty?
|
77
87
|
end
|
78
88
|
end
|
79
89
|
|
90
|
+
# __END__ : this is not the real end of the script.
|
91
|
+
|
80
92
|
__END__
|
81
93
|
|
82
94
|
@@ foo
|
data/test/test_test.rb
CHANGED
@@ -1,7 +1,15 @@
|
|
1
|
-
require 'yaml'
|
2
1
|
require File.dirname(__FILE__) + '/helper'
|
3
2
|
|
4
|
-
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
# silence deprecation warning when requiring sinatra/test
|
6
|
+
$VERBOSE, v = nil, $VERBOSE
|
7
|
+
require 'sinatra/test'
|
8
|
+
$VERBOSE = v
|
9
|
+
|
10
|
+
class TestTest < Test::Unit::TestCase
|
11
|
+
include Sinatra::Test
|
12
|
+
|
5
13
|
def request
|
6
14
|
YAML.load(body)
|
7
15
|
end
|
@@ -14,7 +22,7 @@ describe 'Sinatra::Test' do
|
|
14
22
|
YAML.load(request['test.params'])
|
15
23
|
end
|
16
24
|
|
17
|
-
|
25
|
+
setup do
|
18
26
|
mock_app {
|
19
27
|
%w[get head post put delete].each { |verb|
|
20
28
|
send(verb, '/') do
|
@@ -45,8 +53,8 @@ describe 'Sinatra::Test' do
|
|
45
53
|
assert_equal('DELETE', request['REQUEST_METHOD'])
|
46
54
|
|
47
55
|
head '/'
|
48
|
-
|
49
|
-
assert_equal('',
|
56
|
+
assert response.headers['Content-Length'].to_i > 0
|
57
|
+
assert_equal('', body)
|
50
58
|
end
|
51
59
|
|
52
60
|
it 'allows to specify a body' do
|
@@ -92,8 +100,8 @@ describe 'Sinatra::Test' do
|
|
92
100
|
get '/', :env => { :host => '1.2.3.4' }
|
93
101
|
assert_equal '1.2.3.4', request['HTTP_HOST']
|
94
102
|
|
95
|
-
get '/', :env => { :session => 'foo' }
|
96
|
-
assert_equal
|
103
|
+
get '/', :env => { :session => {'foo' => 'bar'} }
|
104
|
+
assert_equal({'foo' => 'bar'}, request['rack.session'])
|
97
105
|
|
98
106
|
get '/', :env => { :cookies => 'foo' }
|
99
107
|
assert_equal 'foo', request['HTTP_COOKIE']
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sinatra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Blake Mizerany
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-05-18 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -21,10 +21,30 @@ dependencies:
|
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 0.9.1
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: shotgun
|
27
|
+
type: :development
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0.2"
|
24
34
|
- - <
|
25
35
|
- !ruby/object:Gem::Version
|
26
36
|
version: "1.0"
|
27
37
|
version:
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: rack-test
|
40
|
+
type: :development
|
41
|
+
version_requirement:
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 0.3.0
|
47
|
+
version:
|
28
48
|
description: Classy web-development dressed in a DSL
|
29
49
|
email: sinatrarb@googlegroups.com
|
30
50
|
executables: []
|
@@ -81,6 +101,7 @@ files:
|
|
81
101
|
- lib/sinatra/images/404.png
|
82
102
|
- lib/sinatra/images/500.png
|
83
103
|
- lib/sinatra/main.rb
|
104
|
+
- lib/sinatra/showexceptions.rb
|
84
105
|
- lib/sinatra/test.rb
|
85
106
|
- lib/sinatra/test/bacon.rb
|
86
107
|
- lib/sinatra/test/rspec.rb
|
@@ -89,6 +110,7 @@ files:
|
|
89
110
|
- sinatra.gemspec
|
90
111
|
- test/base_test.rb
|
91
112
|
- test/builder_test.rb
|
113
|
+
- test/contest.rb
|
92
114
|
- test/data/reload_app_file.rb
|
93
115
|
- test/erb_test.rb
|
94
116
|
- test/extensions_test.rb
|
@@ -99,10 +121,11 @@ files:
|
|
99
121
|
- test/mapped_error_test.rb
|
100
122
|
- test/middleware_test.rb
|
101
123
|
- test/options_test.rb
|
102
|
-
- test/
|
124
|
+
- test/render_backtrace_test.rb
|
103
125
|
- test/request_test.rb
|
104
126
|
- test/response_test.rb
|
105
127
|
- test/result_test.rb
|
128
|
+
- test/route_added_hook_test.rb
|
106
129
|
- test/routing_test.rb
|
107
130
|
- test/sass_test.rb
|
108
131
|
- test/server_test.rb
|
@@ -110,6 +133,10 @@ files:
|
|
110
133
|
- test/static_test.rb
|
111
134
|
- test/templates_test.rb
|
112
135
|
- test/test_test.rb
|
136
|
+
- test/views/error.builder
|
137
|
+
- test/views/error.erb
|
138
|
+
- test/views/error.haml
|
139
|
+
- test/views/error.sass
|
113
140
|
- test/views/hello.builder
|
114
141
|
- test/views/hello.erb
|
115
142
|
- test/views/hello.haml
|
@@ -161,10 +188,11 @@ test_files:
|
|
161
188
|
- test/mapped_error_test.rb
|
162
189
|
- test/middleware_test.rb
|
163
190
|
- test/options_test.rb
|
164
|
-
- test/
|
191
|
+
- test/render_backtrace_test.rb
|
165
192
|
- test/request_test.rb
|
166
193
|
- test/response_test.rb
|
167
194
|
- test/result_test.rb
|
195
|
+
- test/route_added_hook_test.rb
|
168
196
|
- test/routing_test.rb
|
169
197
|
- test/sass_test.rb
|
170
198
|
- test/server_test.rb
|
data/test/reload_test.rb
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/helper'
|
2
|
-
|
3
|
-
$reload_count = 0
|
4
|
-
$reload_app = nil
|
5
|
-
|
6
|
-
describe "Reloading" do
|
7
|
-
before {
|
8
|
-
@app = mock_app(Sinatra::Default)
|
9
|
-
$reload_app = @app
|
10
|
-
}
|
11
|
-
|
12
|
-
after {
|
13
|
-
$reload_app = nil
|
14
|
-
}
|
15
|
-
|
16
|
-
it 'is enabled by default when in development and the app_file is set' do
|
17
|
-
@app.set :app_file, __FILE__
|
18
|
-
@app.set :environment, :development
|
19
|
-
assert_same true, @app.reload
|
20
|
-
assert_same true, @app.reload?
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'is disabled by default when running in non-development environment' do
|
24
|
-
@app.set :app_file, __FILE__
|
25
|
-
@app.set :environment, :test
|
26
|
-
assert !@app.reload
|
27
|
-
assert_same false, @app.reload?
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'is disabled by default when no app_file is available' do
|
31
|
-
@app.set :app_file, nil
|
32
|
-
@app.set :environment, :development
|
33
|
-
assert !@app.reload
|
34
|
-
assert_same false, @app.reload?
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'is disabled when app_file is a rackup (.ru) file' do
|
38
|
-
@app.set :app_file, __FILE__.sub(/\.rb$/, '.ru')
|
39
|
-
@app.set :environment, :development
|
40
|
-
assert !@app.reload
|
41
|
-
assert_same false, @app.reload?
|
42
|
-
end
|
43
|
-
|
44
|
-
it 'can be turned off explicitly' do
|
45
|
-
@app.set :app_file, __FILE__
|
46
|
-
@app.set :environment, :development
|
47
|
-
assert_same true, @app.reload
|
48
|
-
@app.set :reload, false
|
49
|
-
assert_same false, @app.reload
|
50
|
-
assert_same false, @app.reload?
|
51
|
-
end
|
52
|
-
|
53
|
-
it 'reloads the app_file each time a request is made' do
|
54
|
-
@app.set :app_file, File.dirname(__FILE__) + '/data/reload_app_file.rb'
|
55
|
-
@app.set :reload, true
|
56
|
-
@app.get('/') { 'Hello World' }
|
57
|
-
|
58
|
-
get '/'
|
59
|
-
assert_equal 200, status
|
60
|
-
assert_equal 'Hello from reload file', body
|
61
|
-
assert_equal 1, $reload_count
|
62
|
-
|
63
|
-
get '/'
|
64
|
-
assert_equal 200, status
|
65
|
-
assert_equal 'Hello from reload file', body
|
66
|
-
assert_equal 2, $reload_count
|
67
|
-
end
|
68
|
-
end
|