adamwiggins-sinatra 0.8.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. data/AUTHORS +40 -0
  2. data/CHANGES +167 -0
  3. data/LICENSE +22 -0
  4. data/README.rdoc +529 -0
  5. data/Rakefile +180 -0
  6. data/compat/app_test.rb +300 -0
  7. data/compat/application_test.rb +334 -0
  8. data/compat/builder_test.rb +101 -0
  9. data/compat/custom_error_test.rb +62 -0
  10. data/compat/erb_test.rb +136 -0
  11. data/compat/events_test.rb +75 -0
  12. data/compat/filter_test.rb +30 -0
  13. data/compat/haml_test.rb +233 -0
  14. data/compat/helper.rb +21 -0
  15. data/compat/mapped_error_test.rb +72 -0
  16. data/compat/pipeline_test.rb +71 -0
  17. data/compat/public/foo.xml +1 -0
  18. data/compat/sass_test.rb +57 -0
  19. data/compat/sessions_test.rb +39 -0
  20. data/compat/streaming_test.rb +121 -0
  21. data/compat/sym_params_test.rb +19 -0
  22. data/compat/template_test.rb +30 -0
  23. data/compat/use_in_file_templates_test.rb +47 -0
  24. data/compat/views/foo.builder +1 -0
  25. data/compat/views/foo.erb +1 -0
  26. data/compat/views/foo.haml +1 -0
  27. data/compat/views/foo.sass +2 -0
  28. data/compat/views/foo_layout.erb +2 -0
  29. data/compat/views/foo_layout.haml +2 -0
  30. data/compat/views/layout_test/foo.builder +1 -0
  31. data/compat/views/layout_test/foo.erb +1 -0
  32. data/compat/views/layout_test/foo.haml +1 -0
  33. data/compat/views/layout_test/foo.sass +2 -0
  34. data/compat/views/layout_test/layout.builder +3 -0
  35. data/compat/views/layout_test/layout.erb +1 -0
  36. data/compat/views/layout_test/layout.haml +1 -0
  37. data/compat/views/layout_test/layout.sass +2 -0
  38. data/compat/views/no_layout/no_layout.builder +1 -0
  39. data/compat/views/no_layout/no_layout.haml +1 -0
  40. data/lib/sinatra/base.rb +818 -0
  41. data/lib/sinatra/compat.rb +239 -0
  42. data/lib/sinatra/images/404.png +0 -0
  43. data/lib/sinatra/images/500.png +0 -0
  44. data/lib/sinatra/main.rb +48 -0
  45. data/lib/sinatra/test/rspec.rb +2 -0
  46. data/lib/sinatra/test/spec.rb +2 -0
  47. data/lib/sinatra/test/unit.rb +11 -0
  48. data/lib/sinatra/test.rb +112 -0
  49. data/lib/sinatra.rb +3 -0
  50. data/sinatra.gemspec +107 -0
  51. data/test/base_test.rb +72 -0
  52. data/test/builder_test.rb +68 -0
  53. data/test/data/reload_app_file.rb +3 -0
  54. data/test/erb_test.rb +55 -0
  55. data/test/filter_test.rb +39 -0
  56. data/test/haml_test.rb +72 -0
  57. data/test/helpers_test.rb +368 -0
  58. data/test/mapped_error_test.rb +164 -0
  59. data/test/middleware_test.rb +63 -0
  60. data/test/options_test.rb +103 -0
  61. data/test/reload_test.rb +65 -0
  62. data/test/request_test.rb +11 -0
  63. data/test/result_test.rb +92 -0
  64. data/test/routing_test.rb +338 -0
  65. data/test/sass_test.rb +40 -0
  66. data/test/sinatra_test.rb +15 -0
  67. data/test/static_test.rb +60 -0
  68. data/test/templates_test.rb +92 -0
  69. data/test/views/hello.builder +1 -0
  70. data/test/views/hello.erb +1 -0
  71. data/test/views/hello.haml +1 -0
  72. data/test/views/hello.sass +2 -0
  73. data/test/views/hello.test +1 -0
  74. data/test/views/layout2.builder +3 -0
  75. data/test/views/layout2.erb +2 -0
  76. data/test/views/layout2.haml +2 -0
  77. data/test/views/layout2.test +1 -0
  78. metadata +159 -0
@@ -0,0 +1,15 @@
1
+ require 'test/spec'
2
+ require 'sinatra/base'
3
+ require 'sinatra/test'
4
+
5
+ describe 'Sinatra' do
6
+ it 'creates a new Sinatra::Base subclass on new' do
7
+ app =
8
+ Sinatra.new do
9
+ get '/' do
10
+ 'Hello World'
11
+ end
12
+ end
13
+ app.superclass.should.be Sinatra::Base
14
+ end
15
+ end
@@ -0,0 +1,60 @@
1
+ require 'test/spec'
2
+ require 'sinatra/base'
3
+ require 'sinatra/test'
4
+
5
+ describe 'Static' do
6
+ include Sinatra::Test
7
+ F = ::File
8
+
9
+ before do
10
+ @app = mock_app {
11
+ set :static, true
12
+ set :public, F.dirname(__FILE__)
13
+ }
14
+ end
15
+
16
+ it 'serves GET requests for files in the public directory' do
17
+ get "/#{F.basename(__FILE__)}"
18
+ should.be.ok
19
+ body.should.equal File.read(__FILE__)
20
+ response['Content-Length'].should.equal File.size(__FILE__).to_s
21
+ response.headers.should.include 'Last-Modified'
22
+ end
23
+
24
+ it 'serves HEAD requests for files in the public directory' do
25
+ head "/#{F.basename(__FILE__)}"
26
+ should.be.ok
27
+ body.should.be.empty
28
+ response['Content-Length'].should.equal File.size(__FILE__).to_s
29
+ response.headers.should.include 'Last-Modified'
30
+ end
31
+
32
+ it 'serves files in preference to custom routes' do
33
+ @app.get("/#{F.basename(__FILE__)}") { 'Hello World' }
34
+ get "/#{F.basename(__FILE__)}"
35
+ should.be.ok
36
+ body.should.not.equal 'Hello World'
37
+ end
38
+
39
+ it 'does not serve directories' do
40
+ get "/"
41
+ should.be.not_found
42
+ end
43
+
44
+ it 'passes to the next handler when the static option is disabled' do
45
+ @app.set :static, false
46
+ get "/#{F.basename(__FILE__)}"
47
+ should.be.not_found
48
+ end
49
+
50
+ it 'passes to the next handler when the public option is nil' do
51
+ @app.set :public, nil
52
+ get "/#{F.basename(__FILE__)}"
53
+ should.be.not_found
54
+ end
55
+
56
+ it '404s when a file is not found' do
57
+ get "/foobarbaz.txt"
58
+ should.be.not_found
59
+ end
60
+ end
@@ -0,0 +1,92 @@
1
+ require 'test/spec'
2
+ require 'sinatra/base'
3
+ require 'sinatra/test'
4
+
5
+ describe 'Templating' do
6
+ include Sinatra::Test
7
+
8
+ def render_app(&block)
9
+ mock_app {
10
+ def render_test(template, data, options, &block)
11
+ inner = block ? block.call : ''
12
+ data + inner
13
+ end
14
+ set :views, File.dirname(__FILE__) + '/views'
15
+ get '/', &block
16
+ template(:layout3) { "Layout 3!\n" }
17
+ }
18
+ get '/'
19
+ end
20
+
21
+ def with_default_layout
22
+ layout = File.dirname(__FILE__) + '/views/layout.test'
23
+ File.open(layout, 'wb') { |io| io.write "Layout!\n" }
24
+ yield
25
+ ensure
26
+ File.unlink(layout) rescue nil
27
+ end
28
+
29
+ it 'renders String templates directly' do
30
+ render_app { render :test, 'Hello World' }
31
+ should.be.ok
32
+ body.should.equal 'Hello World'
33
+ end
34
+
35
+ it 'renders Proc templates using the call result' do
36
+ render_app { render :test, Proc.new {'Hello World'} }
37
+ should.be.ok
38
+ body.should.equal 'Hello World'
39
+ end
40
+
41
+ it 'looks up Symbol templates in views directory' do
42
+ render_app { render :test, :hello }
43
+ should.be.ok
44
+ body.should.equal "Hello World!\n"
45
+ end
46
+
47
+ it 'uses the default layout template if not explicitly overridden' do
48
+ with_default_layout do
49
+ render_app { render :test, :hello }
50
+ should.be.ok
51
+ body.should.equal "Layout!\nHello World!\n"
52
+ end
53
+ end
54
+
55
+ it 'uses the default layout template if not really overriden' do
56
+ with_default_layout do
57
+ render_app { render :test, :hello, :layout => true }
58
+ should.be.ok
59
+ body.should.equal "Layout!\nHello World!\n"
60
+ end
61
+ end
62
+
63
+ it 'uses the layout template specified' do
64
+ render_app { render :test, :hello, :layout => :layout2 }
65
+ should.be.ok
66
+ body.should.equal "Layout 2!\nHello World!\n"
67
+ end
68
+
69
+ it 'uses layout templates defined with the #template method' do
70
+ render_app { render :test, :hello, :layout => :layout3 }
71
+ should.be.ok
72
+ body.should.equal "Layout 3!\nHello World!\n"
73
+ end
74
+
75
+ it 'loads templates from source file with use_in_file_templates!' do
76
+ mock_app {
77
+ use_in_file_templates!
78
+ }
79
+ @app.templates[:foo].should.equal "this is foo\n\n"
80
+ @app.templates[:layout].should.equal "X\n= yield\nX\n"
81
+ end
82
+ end
83
+
84
+ __END__
85
+
86
+ @@ foo
87
+ this is foo
88
+
89
+ @@ layout
90
+ X
91
+ = yield
92
+ X
@@ -0,0 +1 @@
1
+ xml.exclaim "You're my boy, #{@name}!"
@@ -0,0 +1 @@
1
+ Hello <%= 'World' %>
@@ -0,0 +1 @@
1
+ %h1 Hello From Haml
@@ -0,0 +1,2 @@
1
+ #sass
2
+ :background-color #FFF
@@ -0,0 +1 @@
1
+ Hello World!
@@ -0,0 +1,3 @@
1
+ xml.layout do
2
+ xml << yield
3
+ end
@@ -0,0 +1,2 @@
1
+ ERB Layout!
2
+ <%= yield %>
@@ -0,0 +1,2 @@
1
+ %h1 HAML Layout!
2
+ %p= yield
@@ -0,0 +1 @@
1
+ Layout 2!
metadata ADDED
@@ -0,0 +1,159 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: adamwiggins-sinatra
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.8.9
5
+ platform: ruby
6
+ authors:
7
+ - Blake Mizerany
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-01-13 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rack
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.9.0
23
+ version:
24
+ description: Classy web-development dressed in a DSL
25
+ email:
26
+ executables: []
27
+
28
+ extensions: []
29
+
30
+ extra_rdoc_files:
31
+ - README.rdoc
32
+ - LICENSE
33
+ files:
34
+ - AUTHORS
35
+ - CHANGES
36
+ - LICENSE
37
+ - README.rdoc
38
+ - 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
+ - lib/sinatra.rb
74
+ - lib/sinatra/base.rb
75
+ - lib/sinatra/compat.rb
76
+ - lib/sinatra/images/404.png
77
+ - lib/sinatra/images/500.png
78
+ - lib/sinatra/main.rb
79
+ - lib/sinatra/test.rb
80
+ - lib/sinatra/test/rspec.rb
81
+ - lib/sinatra/test/spec.rb
82
+ - lib/sinatra/test/unit.rb
83
+ - sinatra.gemspec
84
+ - test/base_test.rb
85
+ - test/builder_test.rb
86
+ - test/data/reload_app_file.rb
87
+ - test/erb_test.rb
88
+ - test/filter_test.rb
89
+ - test/haml_test.rb
90
+ - test/helpers_test.rb
91
+ - test/mapped_error_test.rb
92
+ - test/middleware_test.rb
93
+ - test/options_test.rb
94
+ - test/reload_test.rb
95
+ - test/request_test.rb
96
+ - test/result_test.rb
97
+ - test/routing_test.rb
98
+ - test/sass_test.rb
99
+ - test/sinatra_test.rb
100
+ - test/static_test.rb
101
+ - test/templates_test.rb
102
+ - test/views/hello.builder
103
+ - test/views/hello.erb
104
+ - test/views/hello.haml
105
+ - test/views/hello.sass
106
+ - test/views/hello.test
107
+ - test/views/layout2.builder
108
+ - test/views/layout2.erb
109
+ - test/views/layout2.haml
110
+ - test/views/layout2.test
111
+ has_rdoc: true
112
+ homepage: http://sinatra.rubyforge.org
113
+ post_install_message:
114
+ rdoc_options:
115
+ - --line-numbers
116
+ - --inline-source
117
+ - --title
118
+ - Sinatra
119
+ - --main
120
+ - README.rdoc
121
+ require_paths:
122
+ - lib
123
+ required_ruby_version: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: "0"
128
+ version:
129
+ required_rubygems_version: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: "0"
134
+ version:
135
+ requirements: []
136
+
137
+ rubyforge_project: sinatra
138
+ rubygems_version: 1.2.0
139
+ signing_key:
140
+ specification_version: 2
141
+ summary: Classy web-development dressed in a DSL
142
+ test_files:
143
+ - test/base_test.rb
144
+ - test/builder_test.rb
145
+ - test/erb_test.rb
146
+ - test/filter_test.rb
147
+ - test/haml_test.rb
148
+ - test/helpers_test.rb
149
+ - test/mapped_error_test.rb
150
+ - test/middleware_test.rb
151
+ - test/options_test.rb
152
+ - test/reload_test.rb
153
+ - test/request_test.rb
154
+ - test/result_test.rb
155
+ - test/routing_test.rb
156
+ - test/sass_test.rb
157
+ - test/sinatra_test.rb
158
+ - test/static_test.rb
159
+ - test/templates_test.rb