wunderbar 0.17.2 → 0.17.3
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 +8 -8
- data/lib/wunderbar/cgi-methods.rb +19 -1
- data/lib/wunderbar/server.rb +12 -1
- data/lib/wunderbar/version.rb +1 -1
- data/wunderbar.gemspec +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NTg5MmNjNzk0MzIzN2RlNWE4ZDI4YThiOGY1OTdhYzBiNTdmOTkyYg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MmJmZTQ3ZDI4N2FmOTMzNGQ3MzkyNWEyMWVjNTUzMWY1MDNkOGI2ZA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YmM2NTRlZDZlNTkwZGNiNzEzZTJmMTBiMjc4Y2Y1ZDNjYzMwNDgwNjE2NzRm
|
10
|
+
MDBjZmU1YTMxODhiZTFmMzAxZjJkZDJhMzZhMTgzMDkxNDY2YjdjNWIwNGU4
|
11
|
+
YWU0YWY3Nzc2YTNjNmQ4OTBhMDc1YmU5NzE4MWM3OTgxYjgyYzM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
M2JhYTZhNGY0ODJjMmNkODgwOWRlMmU4MDQyNGUyMDJmN2U1ZDRhNzM2YzYx
|
14
|
+
MjRiNTI4MjY3YWFjNmFlMTIwNWYxODZmNGI5MTY5ZGIzMTgwZjkzYTlhMjEy
|
15
|
+
YzkwOTBmNThkYTk4ZWU3NjlmOGYxNmE4ODRlYjUwNzg1YzFhYTg=
|
@@ -121,17 +121,35 @@ module Wunderbar
|
|
121
121
|
end
|
122
122
|
|
123
123
|
def call(scope)
|
124
|
+
# asset support for Rack
|
125
|
+
request = (scope.respond_to? :request) ? scope.request : nil
|
126
|
+
if request and request.path =~ %r{/assets/\w[-.\w]+}
|
127
|
+
path = ('.' + scope.request.path).untaint
|
128
|
+
headers = {'type' => 'text/plain'}
|
129
|
+
headers['type'] = 'application/javascript' if path =~ /\.js$/
|
130
|
+
out?(scope, headers) { File.read path if File.exist? path }
|
131
|
+
return
|
132
|
+
end
|
133
|
+
|
124
134
|
env = scope.env
|
125
135
|
accept = env['HTTP_ACCEPT'].to_s
|
126
136
|
path_info = env['PATH_INFO'].to_s
|
127
137
|
|
128
138
|
# implied request types
|
129
|
-
xhr_json = Wunderbar::Options::XHR_JSON
|
139
|
+
xhr_json = Wunderbar::Options::XHR_JSON || (accept =~ /json/) ||
|
140
|
+
env['HTTP_X_REQUESTED_WITH'].to_s == 'XMLHttpRequest'
|
130
141
|
text = Wunderbar::Options::TEXT ||
|
131
142
|
(accept =~ /plain/ and accept !~ /html/)
|
132
143
|
@xhtml = (accept =~ /xhtml/ or accept == '')
|
133
144
|
@pdf = (accept =~ /pdf/)
|
134
145
|
|
146
|
+
# parse json arguments
|
147
|
+
if xhr_json and request and request.respond_to? :body
|
148
|
+
if env['CONTENT_TYPE'] =~ %r{^application/json(;.*)?$}
|
149
|
+
scope.params.merge! JSON.parse(scope.request.body.read)
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
135
153
|
# overrides via the command line
|
136
154
|
xhtml_override = ARGV.include?('--xhtml')
|
137
155
|
html_override = ARGV.include?('--html')
|
data/lib/wunderbar/server.rb
CHANGED
@@ -28,7 +28,8 @@ if port and ARGV.delete(port)
|
|
28
28
|
# start the server
|
29
29
|
require 'rack'
|
30
30
|
require 'wunderbar/rack'
|
31
|
-
Rack::
|
31
|
+
app = Rack::Lock.new(Wunderbar::RackApp.new)
|
32
|
+
Rack::Server.start :app => app, :Port => port,
|
32
33
|
:environment => (ENV['RACK_ENV'] || 'development')
|
33
34
|
end
|
34
35
|
|
@@ -84,7 +85,17 @@ else
|
|
84
85
|
ARGV.push '' if ARGV.empty?
|
85
86
|
ARGV.delete('--prompt') or ARGV.delete('--offline')
|
86
87
|
|
88
|
+
payload = nil
|
89
|
+
if env['CONTENT_TYPE'] =~ %r{^application/json(;.*)?$}
|
90
|
+
# read payload before CGI.new eats $stdin
|
91
|
+
payload = JSON.parse($stdin.read) rescue nil
|
92
|
+
end
|
93
|
+
|
87
94
|
cgi = CGI.new
|
95
|
+
|
96
|
+
cgi.params.merge!(payload) if payload rescue nil
|
97
|
+
payload = nil
|
98
|
+
|
88
99
|
cgi.instance_variable_set '@env', ENV
|
89
100
|
class << cgi
|
90
101
|
attr_accessor :env
|
data/lib/wunderbar/version.rb
CHANGED
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 = "0.17.
|
5
|
+
s.version = "0.17.3"
|
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 = "2013-09-
|
9
|
+
s.date = "2013-09-21"
|
10
10
|
s.description = " Wunderbar makes it easy to produce valid HTML5, wellformed XHTML, Unicode\n (utf-8), consistently indented, readable applications. This includes\n output that conforms to the Polyglot specification and the emerging\n results from the XML Error Recovery Community Group.\n"
|
11
11
|
s.email = "rubys@intertwingly.net"
|
12
12
|
s.files = ["wunderbar.gemspec", "README.md", "COPYING", "lib/wunderbar.rb", "lib/wunderbar", "lib/wunderbar/logger.rb", "lib/wunderbar/rails.rb", "lib/wunderbar/builder.rb", "lib/wunderbar/jquery-1.10.2.min.js", "lib/wunderbar/environment.rb", "lib/wunderbar/server.rb", "lib/wunderbar/version.rb", "lib/wunderbar/asset.rb", "lib/wunderbar/websocket.rb", "lib/wunderbar/html-methods.rb", "lib/wunderbar/job-control.rb", "lib/wunderbar/cssproxy.rb", "lib/wunderbar/opal-jquery.rb", "lib/wunderbar/jquery.rb", "lib/wunderbar/cgi-methods.rb", "lib/wunderbar/sinatra.rb", "lib/wunderbar/rack.rb", "lib/wunderbar/opal.rb", "lib/wunderbar/installation.rb", "lib/wunderbar/opal-browser.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: 0.17.
|
4
|
+
version: 0.17.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Ruby
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-09-
|
11
|
+
date: 2013-09-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: builder
|