sinatra-pages 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/sinatra/pages.rb +9 -1
- data/spec/pages_spec.rb +10 -1
- metadata +1 -1
data/lib/sinatra/pages.rb
CHANGED
@@ -7,8 +7,16 @@ module Sinatra
|
|
7
7
|
get route do
|
8
8
|
params[:page] = 'home' if params[:page].nil?
|
9
9
|
|
10
|
-
|
10
|
+
begin
|
11
|
+
haml params[:page].to_sym
|
12
|
+
rescue
|
13
|
+
halt 404
|
14
|
+
end
|
11
15
|
end
|
12
16
|
end
|
17
|
+
|
18
|
+
not_found do
|
19
|
+
haml :not_found
|
20
|
+
end
|
13
21
|
end
|
14
22
|
end
|
data/spec/pages_spec.rb
CHANGED
@@ -7,7 +7,7 @@ describe Sinatra::Pages do
|
|
7
7
|
Sinatra::Pages
|
8
8
|
end
|
9
9
|
|
10
|
-
PAGES = ['Home', 'Generic', 'Generic Test', 'Another Generic Test']
|
10
|
+
PAGES = ['Home', 'Generic', 'Generic Test', 'Another Generic Test', 'Not Found']
|
11
11
|
|
12
12
|
file_of = ->(page){page.downcase.gsub ' ', '_'}
|
13
13
|
create_file_for = ->(page){File.open("views/#{file_of.(page)}.haml", 'w'){|file| file << page}}
|
@@ -39,6 +39,15 @@ describe Sinatra::Pages do
|
|
39
39
|
last_response.body.chomp.should == page
|
40
40
|
end
|
41
41
|
end
|
42
|
+
|
43
|
+
it "should render the Not Found page if the given route can't find its static page on the 'views' directory." do
|
44
|
+
File.exist?("views/#{file_of.('Do Not Exist')}.haml").should be_false
|
45
|
+
|
46
|
+
get "/#{file_of.('Do Not Exist')}"
|
47
|
+
|
48
|
+
last_response.should be_not_found
|
49
|
+
last_response.body.chomp.should == 'Not Found'
|
50
|
+
end
|
42
51
|
end
|
43
52
|
|
44
53
|
after :all do
|