adamwiggins-sinatra 0.8.9 → 0.10.1
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 +8 -7
- data/CHANGES +211 -1
- data/LICENSE +1 -1
- data/README.rdoc +183 -139
- data/Rakefile +20 -81
- data/lib/sinatra.rb +5 -1
- data/lib/sinatra/base.rb +569 -278
- data/lib/sinatra/main.rb +12 -25
- data/lib/sinatra/showexceptions.rb +303 -0
- data/sinatra.gemspec +20 -44
- data/test/base_test.rb +140 -52
- data/test/builder_test.rb +14 -17
- data/test/contest.rb +64 -0
- data/test/erb_test.rb +42 -16
- data/test/extensions_test.rb +100 -0
- data/test/filter_test.rb +85 -13
- data/test/haml_test.rb +39 -21
- data/test/helper.rb +76 -0
- data/test/helpers_test.rb +219 -84
- data/test/mapped_error_test.rb +168 -146
- data/test/middleware_test.rb +22 -17
- data/test/options_test.rb +323 -54
- data/test/render_backtrace_test.rb +145 -0
- data/test/request_test.rb +28 -6
- data/test/response_test.rb +42 -0
- data/test/result_test.rb +27 -21
- data/test/route_added_hook_test.rb +59 -0
- data/test/routing_test.rb +558 -77
- data/test/sass_test.rb +52 -13
- data/test/server_test.rb +47 -0
- data/test/sinatra_test.rb +3 -5
- data/test/static_test.rb +57 -30
- data/test/templates_test.rb +74 -25
- 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
- data/test/views/foo/hello.test +1 -0
- metadata +50 -46
- data/compat/app_test.rb +0 -300
- data/compat/application_test.rb +0 -334
- data/compat/builder_test.rb +0 -101
- data/compat/custom_error_test.rb +0 -62
- data/compat/erb_test.rb +0 -136
- data/compat/events_test.rb +0 -75
- data/compat/filter_test.rb +0 -30
- data/compat/haml_test.rb +0 -233
- data/compat/helper.rb +0 -21
- data/compat/mapped_error_test.rb +0 -72
- data/compat/pipeline_test.rb +0 -71
- data/compat/public/foo.xml +0 -1
- data/compat/sass_test.rb +0 -57
- data/compat/sessions_test.rb +0 -39
- data/compat/streaming_test.rb +0 -121
- data/compat/sym_params_test.rb +0 -19
- data/compat/template_test.rb +0 -30
- data/compat/use_in_file_templates_test.rb +0 -47
- data/compat/views/foo.builder +0 -1
- data/compat/views/foo.erb +0 -1
- data/compat/views/foo.haml +0 -1
- data/compat/views/foo.sass +0 -2
- data/compat/views/foo_layout.erb +0 -2
- data/compat/views/foo_layout.haml +0 -2
- data/compat/views/layout_test/foo.builder +0 -1
- data/compat/views/layout_test/foo.erb +0 -1
- data/compat/views/layout_test/foo.haml +0 -1
- data/compat/views/layout_test/foo.sass +0 -2
- data/compat/views/layout_test/layout.builder +0 -3
- data/compat/views/layout_test/layout.erb +0 -1
- data/compat/views/layout_test/layout.haml +0 -1
- data/compat/views/layout_test/layout.sass +0 -2
- data/compat/views/no_layout/no_layout.builder +0 -1
- data/compat/views/no_layout/no_layout.haml +0 -1
- data/lib/sinatra/compat.rb +0 -239
- data/lib/sinatra/test.rb +0 -112
- data/lib/sinatra/test/rspec.rb +0 -2
- data/lib/sinatra/test/spec.rb +0 -2
- data/lib/sinatra/test/unit.rb +0 -11
- data/test/reload_test.rb +0 -65
data/test/sass_test.rb
CHANGED
@@ -1,10 +1,7 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
3
|
-
require 'sinatra/test'
|
4
|
-
|
5
|
-
describe "Sass Templates" do
|
6
|
-
include Sinatra::Test
|
1
|
+
require File.dirname(__FILE__) + '/helper'
|
2
|
+
require 'sass'
|
7
3
|
|
4
|
+
class SassTest < Test::Unit::TestCase
|
8
5
|
def sass_app(&block)
|
9
6
|
mock_app {
|
10
7
|
set :views, File.dirname(__FILE__) + '/views'
|
@@ -15,26 +12,68 @@ describe "Sass Templates" do
|
|
15
12
|
|
16
13
|
it 'renders inline Sass strings' do
|
17
14
|
sass_app { sass "#sass\n :background-color #FFF\n" }
|
18
|
-
|
19
|
-
|
15
|
+
assert ok?
|
16
|
+
assert_equal "#sass {\n background-color: #FFF; }\n", body
|
20
17
|
end
|
21
18
|
|
22
19
|
it 'renders .sass files in views path' do
|
23
20
|
sass_app { sass :hello }
|
24
|
-
|
25
|
-
|
21
|
+
assert ok?
|
22
|
+
assert_equal "#sass {\n background-color: #FFF; }\n", body
|
26
23
|
end
|
27
24
|
|
28
25
|
it 'ignores the layout option' do
|
29
26
|
sass_app { sass :hello, :layout => :layout2 }
|
30
|
-
|
31
|
-
|
27
|
+
assert ok?
|
28
|
+
assert_equal "#sass {\n background-color: #FFF; }\n", body
|
32
29
|
end
|
33
30
|
|
34
31
|
it "raises error if template not found" do
|
35
32
|
mock_app {
|
36
33
|
get('/') { sass :no_such_template }
|
37
34
|
}
|
38
|
-
|
35
|
+
assert_raise(Errno::ENOENT) { get('/') }
|
36
|
+
end
|
37
|
+
|
38
|
+
it "passes SASS options to the Sass engine" do
|
39
|
+
sass_app {
|
40
|
+
sass "#sass\n :background-color #FFF\n :color #000\n", :style => :compact
|
41
|
+
}
|
42
|
+
assert ok?
|
43
|
+
assert_equal "#sass { background-color: #FFF; color: #000; }\n", body
|
44
|
+
end
|
45
|
+
|
46
|
+
it "passes default SASS options to the Sass engine" do
|
47
|
+
mock_app {
|
48
|
+
set :sass, {:style => :compact} # default Sass style is :nested
|
49
|
+
get '/' do
|
50
|
+
sass "#sass\n :background-color #FFF\n :color #000\n"
|
51
|
+
end
|
52
|
+
}
|
53
|
+
get '/'
|
54
|
+
assert ok?
|
55
|
+
assert_equal "#sass { background-color: #FFF; color: #000; }\n", body
|
56
|
+
end
|
57
|
+
|
58
|
+
it "merges the default SASS options with the overrides and passes them to the Sass engine" do
|
59
|
+
mock_app {
|
60
|
+
set :sass, {:style => :compact, :attribute_syntax => :alternate } # default Sass attribute_syntax is :normal (with : in front)
|
61
|
+
get '/' do
|
62
|
+
sass "#sass\n background-color: #FFF\n color: #000\n"
|
63
|
+
end
|
64
|
+
get '/raised' do
|
65
|
+
sass "#sass\n :background-color #FFF\n :color #000\n", :style => :expanded # retains global attribute_syntax settings
|
66
|
+
end
|
67
|
+
get '/expanded_normal' do
|
68
|
+
sass "#sass\n :background-color #FFF\n :color #000\n", :style => :expanded, :attribute_syntax => :normal
|
69
|
+
end
|
70
|
+
}
|
71
|
+
get '/'
|
72
|
+
assert ok?
|
73
|
+
assert_equal "#sass { background-color: #FFF; color: #000; }\n", body
|
74
|
+
assert_raise(Sass::SyntaxError) { get('/raised') }
|
75
|
+
get '/expanded_normal'
|
76
|
+
assert ok?
|
77
|
+
assert_equal "#sass {\n background-color: #FFF;\n color: #000;\n}\n", body
|
39
78
|
end
|
40
79
|
end
|
data/test/server_test.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/helper'
|
2
|
+
|
3
|
+
module Rack::Handler
|
4
|
+
class Mock
|
5
|
+
extend Test::Unit::Assertions
|
6
|
+
|
7
|
+
def self.run(app, options={})
|
8
|
+
assert(app < Sinatra::Base)
|
9
|
+
assert_equal 9001, options[:Port]
|
10
|
+
assert_equal 'foo.local', options[:Host]
|
11
|
+
yield new
|
12
|
+
end
|
13
|
+
|
14
|
+
def stop
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
register 'mock', 'Rack::Handler::Mock'
|
19
|
+
end
|
20
|
+
|
21
|
+
class ServerTest < Test::Unit::TestCase
|
22
|
+
setup do
|
23
|
+
mock_app {
|
24
|
+
set :server, 'mock'
|
25
|
+
set :host, 'foo.local'
|
26
|
+
set :port, 9001
|
27
|
+
}
|
28
|
+
$stdout = File.open('/dev/null', 'wb')
|
29
|
+
end
|
30
|
+
|
31
|
+
def teardown
|
32
|
+
$stdout = STDOUT
|
33
|
+
end
|
34
|
+
|
35
|
+
it "locates the appropriate Rack handler and calls ::run" do
|
36
|
+
@app.run!
|
37
|
+
end
|
38
|
+
|
39
|
+
it "sets options on the app before running" do
|
40
|
+
@app.run! :sessions => true
|
41
|
+
assert @app.sessions?
|
42
|
+
end
|
43
|
+
|
44
|
+
it "falls back on the next server handler when not found" do
|
45
|
+
@app.run! :server => %w[foo bar mock]
|
46
|
+
end
|
47
|
+
end
|
data/test/sinatra_test.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
|
-
require '
|
2
|
-
require 'sinatra/base'
|
3
|
-
require 'sinatra/test'
|
1
|
+
require File.dirname(__FILE__) + '/helper'
|
4
2
|
|
5
|
-
|
3
|
+
class SinatraTest < Test::Unit::TestCase
|
6
4
|
it 'creates a new Sinatra::Base subclass on new' do
|
7
5
|
app =
|
8
6
|
Sinatra.new do
|
@@ -10,6 +8,6 @@ describe 'Sinatra' do
|
|
10
8
|
'Hello World'
|
11
9
|
end
|
12
10
|
end
|
13
|
-
|
11
|
+
assert_same Sinatra::Base, app.superclass
|
14
12
|
end
|
15
13
|
end
|
data/test/static_test.rb
CHANGED
@@ -1,60 +1,87 @@
|
|
1
|
-
require '
|
2
|
-
require 'sinatra/base'
|
3
|
-
require 'sinatra/test'
|
1
|
+
require File.dirname(__FILE__) + '/helper'
|
4
2
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
before do
|
10
|
-
@app = mock_app {
|
3
|
+
class StaticTest < Test::Unit::TestCase
|
4
|
+
setup do
|
5
|
+
mock_app {
|
11
6
|
set :static, true
|
12
|
-
set :public,
|
7
|
+
set :public, File.dirname(__FILE__)
|
13
8
|
}
|
14
9
|
end
|
15
10
|
|
16
11
|
it 'serves GET requests for files in the public directory' do
|
17
|
-
get "/#{
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
response.headers.
|
12
|
+
get "/#{File.basename(__FILE__)}"
|
13
|
+
assert ok?
|
14
|
+
assert_equal File.read(__FILE__), body
|
15
|
+
assert_equal File.size(__FILE__).to_s, response['Content-Length']
|
16
|
+
assert response.headers.include?('Last-Modified')
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'produces a body that can be iterated over multiple times' do
|
20
|
+
env = Rack::MockRequest.env_for("/#{File.basename(__FILE__)}")
|
21
|
+
status, headers, body = @app.call(env)
|
22
|
+
buf1, buf2 = [], []
|
23
|
+
body.each { |part| buf1 << part }
|
24
|
+
body.each { |part| buf2 << part }
|
25
|
+
assert_equal buf1.join, buf2.join
|
26
|
+
assert_equal File.read(__FILE__), buf1.join
|
22
27
|
end
|
23
28
|
|
24
29
|
it 'serves HEAD requests for files in the public directory' do
|
25
|
-
head "/#{
|
26
|
-
|
27
|
-
body
|
28
|
-
|
29
|
-
response.headers.
|
30
|
+
head "/#{File.basename(__FILE__)}"
|
31
|
+
assert ok?
|
32
|
+
assert_equal '', body
|
33
|
+
assert_equal File.size(__FILE__).to_s, response['Content-Length']
|
34
|
+
assert response.headers.include?('Last-Modified')
|
35
|
+
end
|
36
|
+
|
37
|
+
%w[POST PUT DELETE].each do |verb|
|
38
|
+
it "does not serve #{verb} requests" do
|
39
|
+
send verb.downcase, "/#{File.basename(__FILE__)}"
|
40
|
+
assert_equal 404, status
|
41
|
+
end
|
30
42
|
end
|
31
43
|
|
32
44
|
it 'serves files in preference to custom routes' do
|
33
|
-
@app.get("/#{
|
34
|
-
get "/#{
|
35
|
-
|
36
|
-
body
|
45
|
+
@app.get("/#{File.basename(__FILE__)}") { 'Hello World' }
|
46
|
+
get "/#{File.basename(__FILE__)}"
|
47
|
+
assert ok?
|
48
|
+
assert body != 'Hello World'
|
37
49
|
end
|
38
50
|
|
39
51
|
it 'does not serve directories' do
|
40
52
|
get "/"
|
41
|
-
|
53
|
+
assert not_found?
|
42
54
|
end
|
43
55
|
|
44
56
|
it 'passes to the next handler when the static option is disabled' do
|
45
57
|
@app.set :static, false
|
46
|
-
get "/#{
|
47
|
-
|
58
|
+
get "/#{File.basename(__FILE__)}"
|
59
|
+
assert not_found?
|
48
60
|
end
|
49
61
|
|
50
62
|
it 'passes to the next handler when the public option is nil' do
|
51
63
|
@app.set :public, nil
|
52
|
-
get "/#{
|
53
|
-
|
64
|
+
get "/#{File.basename(__FILE__)}"
|
65
|
+
assert not_found?
|
54
66
|
end
|
55
67
|
|
56
68
|
it '404s when a file is not found' do
|
57
69
|
get "/foobarbaz.txt"
|
58
|
-
|
70
|
+
assert not_found?
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'serves files when .. path traverses within public directory' do
|
74
|
+
get "/data/../#{File.basename(__FILE__)}"
|
75
|
+
assert ok?
|
76
|
+
assert_equal File.read(__FILE__), body
|
77
|
+
end
|
78
|
+
|
79
|
+
it '404s when .. path traverses outside of public directory' do
|
80
|
+
mock_app {
|
81
|
+
set :static, true
|
82
|
+
set :public, File.dirname(__FILE__) + '/data'
|
83
|
+
}
|
84
|
+
get "/../#{File.basename(__FILE__)}"
|
85
|
+
assert not_found?
|
59
86
|
end
|
60
87
|
end
|
data/test/templates_test.rb
CHANGED
@@ -1,13 +1,9 @@
|
|
1
|
-
require '
|
2
|
-
require 'sinatra/base'
|
3
|
-
require 'sinatra/test'
|
1
|
+
require File.dirname(__FILE__) + '/helper'
|
4
2
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
mock_app {
|
10
|
-
def render_test(template, data, options, &block)
|
3
|
+
class TemplatesTest < Test::Unit::TestCase
|
4
|
+
def render_app(base=Sinatra::Base, &block)
|
5
|
+
mock_app(base) {
|
6
|
+
def render_test(data, options, locals, &block)
|
11
7
|
inner = block ? block.call : ''
|
12
8
|
data + inner
|
13
9
|
end
|
@@ -28,59 +24,112 @@ describe 'Templating' do
|
|
28
24
|
|
29
25
|
it 'renders String templates directly' do
|
30
26
|
render_app { render :test, 'Hello World' }
|
31
|
-
|
32
|
-
|
27
|
+
assert ok?
|
28
|
+
assert_equal 'Hello World', body
|
33
29
|
end
|
34
30
|
|
35
31
|
it 'renders Proc templates using the call result' do
|
36
32
|
render_app { render :test, Proc.new {'Hello World'} }
|
37
|
-
|
38
|
-
|
33
|
+
assert ok?
|
34
|
+
assert_equal 'Hello World', body
|
39
35
|
end
|
40
36
|
|
41
37
|
it 'looks up Symbol templates in views directory' do
|
42
38
|
render_app { render :test, :hello }
|
43
|
-
|
44
|
-
|
39
|
+
assert ok?
|
40
|
+
assert_equal "Hello World!\n", body
|
45
41
|
end
|
46
42
|
|
47
43
|
it 'uses the default layout template if not explicitly overridden' do
|
48
44
|
with_default_layout do
|
49
45
|
render_app { render :test, :hello }
|
50
|
-
|
51
|
-
|
46
|
+
assert ok?
|
47
|
+
assert_equal "Layout!\nHello World!\n", body
|
52
48
|
end
|
53
49
|
end
|
54
50
|
|
55
51
|
it 'uses the default layout template if not really overriden' do
|
56
52
|
with_default_layout do
|
57
53
|
render_app { render :test, :hello, :layout => true }
|
58
|
-
|
59
|
-
|
54
|
+
assert ok?
|
55
|
+
assert_equal "Layout!\nHello World!\n", body
|
60
56
|
end
|
61
57
|
end
|
62
58
|
|
63
59
|
it 'uses the layout template specified' do
|
64
60
|
render_app { render :test, :hello, :layout => :layout2 }
|
65
|
-
|
66
|
-
|
61
|
+
assert ok?
|
62
|
+
assert_equal "Layout 2!\nHello World!\n", body
|
67
63
|
end
|
68
64
|
|
69
65
|
it 'uses layout templates defined with the #template method' do
|
70
66
|
render_app { render :test, :hello, :layout => :layout3 }
|
71
|
-
|
72
|
-
|
67
|
+
assert ok?
|
68
|
+
assert_equal "Layout 3!\nHello World!\n", body
|
73
69
|
end
|
74
70
|
|
75
71
|
it 'loads templates from source file with use_in_file_templates!' do
|
76
72
|
mock_app {
|
77
73
|
use_in_file_templates!
|
78
74
|
}
|
79
|
-
|
80
|
-
|
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
|
+
it 'loads templates from specified views directory' do
|
80
|
+
render_app { render :test, :hello, :views => options.views + '/foo' }
|
81
|
+
|
82
|
+
assert_equal "from another views directory\n", body
|
83
|
+
end
|
84
|
+
|
85
|
+
test 'use_in_file_templates simply ignores IO errors' do
|
86
|
+
assert_nothing_raised {
|
87
|
+
mock_app {
|
88
|
+
use_in_file_templates!('/foo/bar')
|
89
|
+
}
|
90
|
+
}
|
91
|
+
|
92
|
+
assert @app.templates.empty?
|
93
|
+
end
|
94
|
+
|
95
|
+
it 'passes locals to the layout' do
|
96
|
+
mock_app {
|
97
|
+
template :my_layout do
|
98
|
+
'Hello <%= name %>!<%= yield %>'
|
99
|
+
end
|
100
|
+
|
101
|
+
get '/' do
|
102
|
+
erb '<p>content</p>', { :layout => :my_layout }, { :name => 'Mike'}
|
103
|
+
end
|
104
|
+
}
|
105
|
+
|
106
|
+
get '/'
|
107
|
+
assert ok?
|
108
|
+
assert_equal 'Hello Mike!<p>content</p>', body
|
109
|
+
end
|
110
|
+
|
111
|
+
it 'loads templates defined in subclasses' do
|
112
|
+
base = Class.new(Sinatra::Base)
|
113
|
+
base.template(:foo) { 'bar' }
|
114
|
+
render_app(base) { render :test, :foo }
|
115
|
+
assert ok?
|
116
|
+
assert_equal 'bar', body
|
117
|
+
end
|
118
|
+
|
119
|
+
it 'uses templates in superclasses before subclasses' do
|
120
|
+
base = Class.new(Sinatra::Base)
|
121
|
+
base.template(:foo) { 'template in superclass' }
|
122
|
+
render_app(base) { render :test, :foo }
|
123
|
+
@app.template(:foo) { 'template in subclass' }
|
124
|
+
|
125
|
+
get '/'
|
126
|
+
assert ok?
|
127
|
+
assert_equal 'template in subclass', body
|
81
128
|
end
|
82
129
|
end
|
83
130
|
|
131
|
+
# __END__ : this is not the real end of the script.
|
132
|
+
|
84
133
|
__END__
|
85
134
|
|
86
135
|
@@ foo
|
@@ -0,0 +1 @@
|
|
1
|
+
from another views directory
|
metadata
CHANGED
@@ -1,28 +1,54 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adamwiggins-sinatra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Blake Mizerany
|
8
|
+
- Ryan Tomayko
|
9
|
+
- Simon Rozet
|
8
10
|
autorequire:
|
9
11
|
bindir: bin
|
10
12
|
cert_chain: []
|
11
13
|
|
12
|
-
date: 2009-
|
14
|
+
date: 2009-06-07 00:00:00 -07:00
|
13
15
|
default_executable:
|
14
16
|
dependencies:
|
15
17
|
- !ruby/object:Gem::Dependency
|
16
18
|
name: rack
|
19
|
+
type: :runtime
|
17
20
|
version_requirement:
|
18
21
|
version_requirements: !ruby/object:Gem::Requirement
|
19
22
|
requirements:
|
20
23
|
- - ">="
|
21
24
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
25
|
+
version: "1.0"
|
26
|
+
version:
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: shotgun
|
29
|
+
type: :development
|
30
|
+
version_requirement:
|
31
|
+
version_requirements: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: "0.3"
|
36
|
+
- - <
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: "1.0"
|
39
|
+
version:
|
40
|
+
- !ruby/object:Gem::Dependency
|
41
|
+
name: rack-test
|
42
|
+
type: :development
|
43
|
+
version_requirement:
|
44
|
+
version_requirements: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 0.3.0
|
23
49
|
version:
|
24
50
|
description: Classy web-development dressed in a DSL
|
25
|
-
email:
|
51
|
+
email: sinatrarb@googlegroups.com
|
26
52
|
executables: []
|
27
53
|
|
28
54
|
extensions: []
|
@@ -36,69 +62,42 @@ files:
|
|
36
62
|
- LICENSE
|
37
63
|
- README.rdoc
|
38
64
|
- Rakefile
|
39
|
-
- compat/app_test.rb
|
40
|
-
- compat/application_test.rb
|
41
|
-
- compat/builder_test.rb
|
42
|
-
- compat/custom_error_test.rb
|
43
|
-
- compat/erb_test.rb
|
44
|
-
- compat/events_test.rb
|
45
|
-
- compat/filter_test.rb
|
46
|
-
- compat/haml_test.rb
|
47
|
-
- compat/helper.rb
|
48
|
-
- compat/mapped_error_test.rb
|
49
|
-
- compat/pipeline_test.rb
|
50
|
-
- compat/public/foo.xml
|
51
|
-
- compat/sass_test.rb
|
52
|
-
- compat/sessions_test.rb
|
53
|
-
- compat/streaming_test.rb
|
54
|
-
- compat/sym_params_test.rb
|
55
|
-
- compat/template_test.rb
|
56
|
-
- compat/use_in_file_templates_test.rb
|
57
|
-
- compat/views/foo.builder
|
58
|
-
- compat/views/foo.erb
|
59
|
-
- compat/views/foo.haml
|
60
|
-
- compat/views/foo.sass
|
61
|
-
- compat/views/foo_layout.erb
|
62
|
-
- compat/views/foo_layout.haml
|
63
|
-
- compat/views/layout_test/foo.builder
|
64
|
-
- compat/views/layout_test/foo.erb
|
65
|
-
- compat/views/layout_test/foo.haml
|
66
|
-
- compat/views/layout_test/foo.sass
|
67
|
-
- compat/views/layout_test/layout.builder
|
68
|
-
- compat/views/layout_test/layout.erb
|
69
|
-
- compat/views/layout_test/layout.haml
|
70
|
-
- compat/views/layout_test/layout.sass
|
71
|
-
- compat/views/no_layout/no_layout.builder
|
72
|
-
- compat/views/no_layout/no_layout.haml
|
73
65
|
- lib/sinatra.rb
|
74
66
|
- lib/sinatra/base.rb
|
75
|
-
- lib/sinatra/compat.rb
|
76
67
|
- lib/sinatra/images/404.png
|
77
68
|
- lib/sinatra/images/500.png
|
78
69
|
- lib/sinatra/main.rb
|
79
|
-
- lib/sinatra/
|
80
|
-
- lib/sinatra/test/rspec.rb
|
81
|
-
- lib/sinatra/test/spec.rb
|
82
|
-
- lib/sinatra/test/unit.rb
|
70
|
+
- lib/sinatra/showexceptions.rb
|
83
71
|
- sinatra.gemspec
|
84
72
|
- test/base_test.rb
|
85
73
|
- test/builder_test.rb
|
74
|
+
- test/contest.rb
|
86
75
|
- test/data/reload_app_file.rb
|
87
76
|
- test/erb_test.rb
|
77
|
+
- test/extensions_test.rb
|
88
78
|
- test/filter_test.rb
|
89
79
|
- test/haml_test.rb
|
80
|
+
- test/helper.rb
|
90
81
|
- test/helpers_test.rb
|
91
82
|
- test/mapped_error_test.rb
|
92
83
|
- test/middleware_test.rb
|
93
84
|
- test/options_test.rb
|
94
|
-
- test/
|
85
|
+
- test/render_backtrace_test.rb
|
95
86
|
- test/request_test.rb
|
87
|
+
- test/response_test.rb
|
96
88
|
- test/result_test.rb
|
89
|
+
- test/route_added_hook_test.rb
|
97
90
|
- test/routing_test.rb
|
98
91
|
- test/sass_test.rb
|
92
|
+
- test/server_test.rb
|
99
93
|
- test/sinatra_test.rb
|
100
94
|
- test/static_test.rb
|
101
95
|
- test/templates_test.rb
|
96
|
+
- test/views/error.builder
|
97
|
+
- test/views/error.erb
|
98
|
+
- test/views/error.haml
|
99
|
+
- test/views/error.sass
|
100
|
+
- test/views/foo/hello.test
|
102
101
|
- test/views/hello.builder
|
103
102
|
- test/views/hello.erb
|
104
103
|
- test/views/hello.haml
|
@@ -110,6 +109,7 @@ files:
|
|
110
109
|
- test/views/layout2.test
|
111
110
|
has_rdoc: true
|
112
111
|
homepage: http://sinatra.rubyforge.org
|
112
|
+
licenses:
|
113
113
|
post_install_message:
|
114
114
|
rdoc_options:
|
115
115
|
- --line-numbers
|
@@ -135,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
135
|
requirements: []
|
136
136
|
|
137
137
|
rubyforge_project: sinatra
|
138
|
-
rubygems_version: 1.
|
138
|
+
rubygems_version: 1.3.5
|
139
139
|
signing_key:
|
140
140
|
specification_version: 2
|
141
141
|
summary: Classy web-development dressed in a DSL
|
@@ -143,17 +143,21 @@ test_files:
|
|
143
143
|
- test/base_test.rb
|
144
144
|
- test/builder_test.rb
|
145
145
|
- test/erb_test.rb
|
146
|
+
- test/extensions_test.rb
|
146
147
|
- test/filter_test.rb
|
147
148
|
- test/haml_test.rb
|
148
149
|
- test/helpers_test.rb
|
149
150
|
- test/mapped_error_test.rb
|
150
151
|
- test/middleware_test.rb
|
151
152
|
- test/options_test.rb
|
152
|
-
- test/
|
153
|
+
- test/render_backtrace_test.rb
|
153
154
|
- test/request_test.rb
|
155
|
+
- test/response_test.rb
|
154
156
|
- test/result_test.rb
|
157
|
+
- test/route_added_hook_test.rb
|
155
158
|
- test/routing_test.rb
|
156
159
|
- test/sass_test.rb
|
160
|
+
- test/server_test.rb
|
157
161
|
- test/sinatra_test.rb
|
158
162
|
- test/static_test.rb
|
159
163
|
- test/templates_test.rb
|