wunderbar 1.0.12 → 1.0.13

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 67318202c4e41980e0fb2fa7d9af8099497a07cd
4
- data.tar.gz: 7b57e93be96f460ca39fd1b1fc6d10b30ea3b48a
3
+ metadata.gz: cb5b1e488c39649096635f0d794283d15bd94da6
4
+ data.tar.gz: 330d0001b28b0fdb38dd5077ce240e80ce993f08
5
5
  SHA512:
6
- metadata.gz: 8d571f09d5a7993f600fcc12464278bf29adae12e035d3a795bf8578e8d34452d71a7dd680eaa7da8295e36f816323d7a904968378df582f8e2bdde95918fd2f
7
- data.tar.gz: 79f8527e6968328b4f9a6d213c489b496fd5eb0c6ecde786d98dabcd96afa10b91fad009345248a4cce80cfbb1ad308034944e40170771d3bf83cb99d223db95
6
+ metadata.gz: 00cfc80008a5c687ed7ef832c5c3bfa21fe821d210b4136fe8197915ac7e86d6e4f15b7567fd9c4d4018ca46be6f442249f59f59ebc14f1b14f87d6982fa0591
7
+ data.tar.gz: cdbc2207899c4ecc6197cb1fb6115b272a16230ced7725eeeaf4c14cdf81f4f994675849849e65e6963de985f01d45761b6ae05d11f488926aadd776a2e2b9c4
@@ -9,9 +9,9 @@ module Wunderbar
9
9
  'Cache-Control' => 'no-cache' }
10
10
  builder = JsonBuilder.new(scope)
11
11
  output = builder.encode(&block)
12
- headers['status'] = "404 Not Found" if output == {}
12
+ headers['status'] = "404 Not Found" if output == {}
13
13
  rescue Exception => exception
14
- headers['status'] = "531 Internal Server Error"
14
+ headers['status'] = Wunderbar::ServerError.text
15
15
  builder._! Hash.new unless builder.target? Hash
16
16
  builder._exception exception
17
17
  ensure
@@ -23,9 +23,9 @@ module Wunderbar
23
23
  headers = {'type' => 'text/plain', 'charset' => 'UTF-8'}
24
24
  builder = TextBuilder.new(scope)
25
25
  output = builder.encode(&block)
26
- headers['status'] = "404 Not Found" if output == ''
26
+ headers['status'] = "404 Not Found" if output == ''
27
27
  rescue Exception => exception
28
- headers['status'] = "531 Internal Server Error"
28
+ headers['status'] = Wunderbar::ServerError.text
29
29
  builder._exception exception
30
30
  ensure
31
31
  out?(scope, headers) { builder.target! }
@@ -101,7 +101,7 @@ module Wunderbar
101
101
  output = x.html *args, &block
102
102
  end
103
103
  rescue ::Exception => exception
104
- headers['status'] = "531 Internal Server Error"
104
+ headers['status'] = Wunderbar::ServerError.text
105
105
  x.clear!
106
106
  output = x.html(*args) do
107
107
  _h1 'Internal Server Error'
@@ -75,6 +75,33 @@ module Wunderbar
75
75
  Wunderbar.templates[name.to_s.gsub('_','-')] = block
76
76
  end
77
77
  end
78
+
79
+ #
80
+ # Some proxies will replace server errors with their own output, and
81
+ # some applications will want to indicate that there is useful, parseable,
82
+ # content in controlled failures. For this reason, allow the server
83
+ # error responses to be customized by the application.
84
+ #
85
+ module ServerError
86
+ @@status = 500
87
+ @@text = 'Internal Server Error'
88
+
89
+ def self.status=(status)
90
+ @@status = status
91
+ end
92
+
93
+ def self.text=(text)
94
+ @@text = text
95
+ end
96
+
97
+ def self.status
98
+ @@status
99
+ end
100
+
101
+ def self.text
102
+ "#{@@status} #{@@text}"
103
+ end
104
+ end
78
105
  end
79
106
 
80
107
  require 'socket'
@@ -31,7 +31,7 @@ if self.to_s == 'main'
31
31
  end
32
32
  output = element.serialize.join("\n") + "\n"
33
33
  rescue ::Exception => exception
34
- headers['status'] = "531 Internal Server Error"
34
+ headers['status'] = Wunderbar::ServerError.text
35
35
  x.clear!
36
36
  output = x.html(*args) do
37
37
  _h1 'Internal Server Error'
@@ -58,12 +58,12 @@ module Wunderbar
58
58
  begin
59
59
  output = Ruby2JS.convert(block) + "\n"
60
60
  rescue Parser::SyntaxError => exception
61
- headers['status'] = "531 Internal Server Error"
61
+ headers['status'] = Wunderbar::ServerError.text
62
62
  location = exception.diagnostic.location
63
63
  output = "// Syntax Error: line #{location.line}, " +
64
64
  "column: #{location.column}\n#{exception}\n"
65
65
  rescue ::Exception => exception
66
- headers['status'] = "531 Internal Server Error"
66
+ headers['status'] = Wunderbar::ServerError.text
67
67
  output = "// Internal Server Error: #{exception}\n"
68
68
  exception.backtrace.each do |frame|
69
69
  next if CALLERS_TO_IGNORE.any? {|re| frame =~ re}
@@ -85,12 +85,12 @@ module Wunderbar
85
85
  begin
86
86
  Ruby2JS.convert(block ? block : data, ivars: locals, file: file).to_s
87
87
  rescue Parser::SyntaxError => exception
88
- scope.response.status = 531
88
+ scope.response.status = Wunderbar::ServerError.status
89
89
  location = exception.diagnostic.location
90
90
  "Syntax Error: line #{location.line}, column: #{location.column}" +
91
91
  "\n#{exception}\n"
92
92
  rescue Exception => exception
93
- scope.response.status = 531
93
+ scope.response.status = Wunderbar::ServerError.status
94
94
  output = "Internal Server Error: #{exception}\n"
95
95
  exception.backtrace.each do |frame|
96
96
  next if CALLERS_TO_IGNORE.any? {|re| frame =~ re}
@@ -110,7 +110,7 @@ module Wunderbar
110
110
  begin
111
111
  _evaluate_safely(builder, scope, locals, &block)
112
112
  rescue Exception => exception
113
- scope.response.status = 531
113
+ scope.response.status = Wunderbar::ServerError.status
114
114
  builder.clear!
115
115
  builder.html do
116
116
  _h1 'Internal Server Error'
@@ -139,7 +139,7 @@ module Wunderbar
139
139
 
140
140
  rescue Exception => exception
141
141
  scope.content_type self.class.default_mime_type, :charset => 'utf-8'
142
- scope.response.status = 531
142
+ scope.response.status = Wunderbar::ServerError.status
143
143
  builder._exception exception
144
144
  end
145
145
  scope.cache_control :no_cache
@@ -162,7 +162,7 @@ module Wunderbar
162
162
  scope.response.status = 404 if builder.target!.empty?
163
163
  rescue Exception => exception
164
164
  scope.headers['Content-Type'] = self.class.default_mime_type
165
- scope.response.status = 531
165
+ scope.response.status = Wunderbar::ServerError.status
166
166
  builder._exception exception
167
167
  end
168
168
  builder.target!
@@ -2,7 +2,7 @@ module Wunderbar
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 1
4
4
  MINOR = 0
5
- TINY = 12
5
+ TINY = 13
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/wunderbar.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "wunderbar"
5
- s.version = "1.0.12"
5
+ s.version = "1.0.13"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Sam Ruby"]
9
- s.date = "2016-01-11"
9
+ s.date = "2016-01-12"
10
10
  s.description = " Wunderbar makes it easy to produce valid HTML5, wellformed XHTML, Unicode\n (utf-8), consistently indented, readable applications.'\n"
11
11
  s.email = "rubys@intertwingly.net"
12
12
  s.files = ["wunderbar.gemspec", "README.md", "COPYING", "lib/wunderbar", "lib/wunderbar/angularjs", "lib/wunderbar/angularjs/resource.rb", "lib/wunderbar/angularjs/route.rb", "lib/wunderbar/angularjs.rb", "lib/wunderbar/asset.rb", "lib/wunderbar/backtick.rb", "lib/wunderbar/bootstrap", "lib/wunderbar/bootstrap/theme.rb", "lib/wunderbar/bootstrap.rb", "lib/wunderbar/builder.rb", "lib/wunderbar/cgi-methods.rb", "lib/wunderbar/coderay.rb", "lib/wunderbar/coffeescript.rb", "lib/wunderbar/cssproxy.rb", "lib/wunderbar/environment.rb", "lib/wunderbar/eventsource.rb", "lib/wunderbar/html-methods.rb", "lib/wunderbar/installation.rb", "lib/wunderbar/job-control.rb", "lib/wunderbar/jquery", "lib/wunderbar/jquery/filter.rb", "lib/wunderbar/jquery/stupidtable.rb", "lib/wunderbar/jquery.rb", "lib/wunderbar/listen.rb", "lib/wunderbar/logger.rb", "lib/wunderbar/markdown.rb", "lib/wunderbar/marked.rb", "lib/wunderbar/node.rb", "lib/wunderbar/pagedown.rb", "lib/wunderbar/polymer.rb", "lib/wunderbar/rack.rb", "lib/wunderbar/rails.rb", "lib/wunderbar/react.rb", "lib/wunderbar/script.rb", "lib/wunderbar/server.rb", "lib/wunderbar/sinatra.rb", "lib/wunderbar/underscore.rb", "lib/wunderbar/vendor", "lib/wunderbar/vendor/angular-resource.min.js", "lib/wunderbar/vendor/angular-route.min.js", "lib/wunderbar/vendor/angular.min.js", "lib/wunderbar/vendor/bootstrap-theme.min.css", "lib/wunderbar/vendor/bootstrap.min.css", "lib/wunderbar/vendor/bootstrap.min.js", "lib/wunderbar/vendor/eventsource.min.js", "lib/wunderbar/vendor/jquery-1.11.2.min.js", "lib/wunderbar/vendor/Markdown.Converter.js", "lib/wunderbar/vendor/marked.min.js", "lib/wunderbar/vendor/polymer-v0.0.20131003.min.js", "lib/wunderbar/vendor/react-dom-0.14.3.min.js", "lib/wunderbar/vendor/react-with-addons-0.14.3.min.js", "lib/wunderbar/vendor/stupidtable.min.js", "lib/wunderbar/vendor/underscore-min.js", "lib/wunderbar/version.rb", "lib/wunderbar/websocket.rb", "lib/wunderbar.rb"]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wunderbar
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.12
4
+ version: 1.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Ruby
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-11 00:00:00.000000000 Z
11
+ date: 2016-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json