spire 0.4.8 → 0.4.9

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.8
1
+ 0.4.9
data/lib/spire/error.rb CHANGED
@@ -1,54 +1,18 @@
1
1
  module Spire
2
2
  class Error
3
- def initialize(opts={:status => 200, :message=> "Unknown Error"})
4
- case opts[:status]
5
- when 200
6
- self.return_error(opts[:message], opts[:status])
7
- when 404
8
- if opts[:message]
9
- self.return_error(opts[:message], opts[:status])
10
- else
11
- self.return_404
12
- end
13
- when 444
14
- self.return_444
15
- when 401
16
- self.return_401
17
- when 204
18
- self.return_204
19
- when 301
20
- self.return_301
21
- end
22
- end
3
+ def self.return_error(opts={:status => 200, :message => "An unknown error occured", :extended_message => ""})
4
+ spec = Gem::Specification.find_by_name("spire")
5
+ gem_root = spec.gem_dir
23
6
 
24
- def return_204
25
- @return = Response.new(self.style_error("204 - No content"), 'text/html;', 204)
7
+ contents = IO.read("#{gem_root}/lib/spire/templates/error/error.haml")
8
+ require 'haml'
9
+
10
+ error_template = Haml::Engine.new(contents).render(Object.new, {:@error_code => opts[:status], :@error_message => opts[:message], :@extended_message => opts[:extended_message]})
11
+ return Response.new(error_template, 'text/html;', opts[:status])
26
12
  end
27
13
 
28
- def return_301
29
- @return = Response.new(self.style_error("301 - Moved permanently"), 'text/html;', 301)
30
- end
31
-
32
- def return_401
33
- @return = Response.new(self.style_error("401 - Not authorized"), 'text/html;', 401)
34
- end
35
-
36
- def return_404
37
- @return = Response.new(self.style_error("404 - File not found"), 'text/html;', 404)
38
- end
39
-
40
- def return_444
41
- @return = Response.new(self.style_error("No response made by the server, check for a valid response"), 'text/html;', 404)
42
- end
43
-
44
- def style_error(message)
45
- return "<h2 style=\"font-family: 'Helvetica Neue', HelveticaNeue, Arial, Helvetica, sans-serif; \">
46
- #{message}
47
- </h2>"
48
- end
49
-
50
- def return_error(message, status)
51
- @return = Response.new(self.style_error(message), 'text/html;', status)
14
+ def self.manual_error(opts={:status => 200, :message => "An unknown error occured"})
15
+ return Response.new(opts[:message], 'text/html;', opts[:status])
52
16
  end
53
17
 
54
18
  def to_rack
data/lib/spire/public.rb CHANGED
@@ -26,7 +26,7 @@ module Spire
26
26
  file = result.extension_check
27
27
  puts file
28
28
  if file == 404
29
- return Error.new :status => 404, :message => "404 // File not found"
29
+ return Error.return_error :status => 404, :message => "404 // File not found"
30
30
  else
31
31
  return Response.new(file[:file], file[:content_type], 200)
32
32
  end
data/lib/spire/router.rb CHANGED
@@ -38,7 +38,7 @@ module Spire
38
38
  end
39
39
 
40
40
  if !@app["controller"]
41
- return Error.new :message => "Route not found in system/routes.rb", :status => 404
41
+ return Error.return_error :message => "Route not found in system/routes.rb", :status => 404
42
42
  end
43
43
 
44
44
  return self.run
@@ -52,7 +52,7 @@ module Spire
52
52
  buffer = @class.get_buffer
53
53
 
54
54
  if !buffer && !result
55
- return Error.new :message => "No method/Response from method. See #{@app["controller"]}##{@app["action"]} and check for a response", :status => 404
55
+ return Error.return_error :message => "No method/Response from method. See #{@app["controller"]}##{@app["action"]} and check for a response", :status => 404
56
56
  end
57
57
 
58
58
  content_type = "text/html;"
@@ -65,7 +65,7 @@ module Spire
65
65
  if @class.instance_variable_get(:@content_type)
66
66
  content_type = @class.instance_variable_get(:content_type)
67
67
  end
68
-
68
+
69
69
  if result
70
70
  buffer = buffer + result
71
71
  end
@@ -81,7 +81,7 @@ module Spire
81
81
  if response
82
82
  response.to_rack
83
83
  else
84
- Error.new :status => 444
84
+ Error.return_error :status => 444
85
85
  end
86
86
  end
87
87
  end
@@ -0,0 +1,49 @@
1
+ !!! 5
2
+ %html{:xmlns => "http://www.w3.org/1999/xhtml", "xml:lang" => "en", :lang => "en"}
3
+ %head
4
+ :css
5
+ body {
6
+ font-family: 'Helvetica Neue';
7
+ padding-left: 30px;
8
+ background: #fafafa;
9
+ padding: 0;
10
+ margin: 0;
11
+ margin-bottom: 100px;
12
+ }
13
+ h1 {
14
+ font-size: 2.8em;
15
+ text-shadow: 0px 2px grey;
16
+ padding-left: 5%;
17
+ }
18
+ p {
19
+ font-size: 1.8em;
20
+ text-shadow: 0px 1px grey;
21
+ padding-left: 5%;
22
+ padding-right: 5%;
23
+ }
24
+ #trace {
25
+ font-size: 1.2em;
26
+ width: 80%;
27
+ margin-left: auto;
28
+ margin-right: auto;
29
+ border: 2px solid #D64C49;
30
+ padding-top: 30px;
31
+ padding-bottom: 30px;
32
+ }
33
+ #footer {
34
+ position: fixed;
35
+ bottom: 0px;
36
+ height: 45px;
37
+ width: 100%;
38
+ background-color: #E0FFD3;
39
+ border-top: 2px solid #484939;
40
+ }
41
+ %body
42
+ %h1= @error_code
43
+ %p= @error_message
44
+ - if @extended_message
45
+ %p#trace= @extended_message
46
+ #footer
47
+ %a{:href => "http://spire.heroku.com"} Powered by Spire
48
+ #cocoon
49
+ %a{:href => "http://wearecocoon.com"} by Cocoon
data/spire.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "spire"
8
- s.version = "0.4.8"
8
+ s.version = "0.4.9"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Scott Nicol"]
12
- s.date = "2012-08-08"
12
+ s.date = "2012-08-11"
13
13
  s.description = "Light rack-based framework with controllers, HAML/ERB views, router & error handler"
14
14
  s.email = "scott@scottnicol.co.uk"
15
15
  s.executables = ["spire"]
@@ -31,6 +31,7 @@ Gem::Specification.new do |s|
31
31
  "lib/spire/resource/buffer.rb",
32
32
  "lib/spire/resource/mime.rb",
33
33
  "lib/spire/router.rb",
34
+ "lib/spire/templates/error/error.haml",
34
35
  "spire.gemspec"
35
36
  ]
36
37
  s.homepage = "http://github.com/snicol/spire"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spire
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.8
4
+ version: 0.4.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-08 00:00:00.000000000 Z
12
+ date: 2012-08-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
@@ -130,6 +130,7 @@ files:
130
130
  - lib/spire/resource/buffer.rb
131
131
  - lib/spire/resource/mime.rb
132
132
  - lib/spire/router.rb
133
+ - lib/spire/templates/error/error.haml
133
134
  - spire.gemspec
134
135
  homepage: http://github.com/snicol/spire
135
136
  licenses:
@@ -146,7 +147,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
146
147
  version: '0'
147
148
  segments:
148
149
  - 0
149
- hash: 657964652971798131
150
+ hash: -3109762138428974111
150
151
  required_rubygems_version: !ruby/object:Gem::Requirement
151
152
  none: false
152
153
  requirements: