wunderbar 0.22.1 → 0.22.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +1 -2
- data/lib/wunderbar/environment.rb +2 -6
- data/lib/wunderbar/html-methods.rb +7 -5
- data/lib/wunderbar/node.rb +6 -5
- data/lib/wunderbar/script.rb +1 -1
- data/lib/wunderbar/sinatra.rb +25 -19
- data/lib/wunderbar/version.rb +1 -1
- data/wunderbar.gemspec +3 -2
- metadata +3 -3
data/README.md
CHANGED
@@ -394,8 +394,7 @@ Also, the following environment variables are set if they aren't already:
|
|
394
394
|
* `LANG`
|
395
395
|
* `REMOTE_USER`
|
396
396
|
|
397
|
-
Finally, the
|
398
|
-
UTF-8. For Ruby 1.8, `$KCODE` is set to `U`
|
397
|
+
Finally, the default external and internal encodings are set to UTF-8.
|
399
398
|
|
400
399
|
Logging:
|
401
400
|
---
|
@@ -77,12 +77,8 @@ $SERVER = ENV['HTTP_HOST'] || Socket::gethostname
|
|
77
77
|
|
78
78
|
# set encoding to UTF-8
|
79
79
|
ENV['LANG'] ||= "en_US.UTF-8"
|
80
|
-
|
81
|
-
|
82
|
-
Encoding.default_internal = Encoding::UTF_8
|
83
|
-
else
|
84
|
-
$KCODE = 'U'
|
85
|
-
end
|
80
|
+
Encoding.default_external = Encoding::UTF_8
|
81
|
+
Encoding.default_internal = Encoding::UTF_8
|
86
82
|
|
87
83
|
# Add methods to the 'main' object
|
88
84
|
if self.to_s == 'main'
|
@@ -50,11 +50,7 @@ module Wunderbar
|
|
50
50
|
@_x.width = args.first.delete(:_width).to_i if args.first[:_width]
|
51
51
|
end
|
52
52
|
|
53
|
-
|
54
|
-
bom = "\ufeff"
|
55
|
-
else
|
56
|
-
bom = "\xEF\xBB\xBF"
|
57
|
-
end
|
53
|
+
bom = "\ufeff"
|
58
54
|
|
59
55
|
title = args.shift if String === args.first
|
60
56
|
@_x.declare! :DOCTYPE, :html
|
@@ -295,6 +291,12 @@ module Wunderbar
|
|
295
291
|
end
|
296
292
|
end
|
297
293
|
|
294
|
+
def _textarea(*args, &block)
|
295
|
+
@_x.compact! do
|
296
|
+
proxiable_tag! :textarea, PreformattedNode, *args, &block
|
297
|
+
end
|
298
|
+
end
|
299
|
+
|
298
300
|
def _ul(*args, &block)
|
299
301
|
iterable = args.first.respond_to? :each
|
300
302
|
if iterable and (args.length > 1 or not args.first.respond_to? :to_hash)
|
data/lib/wunderbar/node.rb
CHANGED
@@ -13,6 +13,7 @@ module Wunderbar
|
|
13
13
|
'"' => '"',
|
14
14
|
'<' => '<',
|
15
15
|
'>' => '>',
|
16
|
+
"\u00A0" => ' ',
|
16
17
|
}
|
17
18
|
|
18
19
|
def initialize(name, *args)
|
@@ -73,7 +74,7 @@ module Wunderbar
|
|
73
74
|
next unless value
|
74
75
|
name = name.to_s.gsub('_','-') if Symbol === name
|
75
76
|
value=name if value==true
|
76
|
-
line += " #{name}=\"#{value.to_s.gsub(/[&\"
|
77
|
+
line += " #{name}=\"#{value.to_s.gsub(/[&\"<>\u00A0]/,ESCAPE)}\""
|
77
78
|
end
|
78
79
|
|
79
80
|
if children.empty?
|
@@ -83,7 +84,7 @@ module Wunderbar
|
|
83
84
|
width = options[:width] unless preserve_spaces?
|
84
85
|
|
85
86
|
if text
|
86
|
-
line += ">#{text.to_s.gsub(/[
|
87
|
+
line += ">#{text.to_s.gsub(/[&<>\u00A0]/,ESCAPE)}</#{name}>"
|
87
88
|
elsif VOID.include? name.to_s
|
88
89
|
line += "/>"
|
89
90
|
else
|
@@ -215,9 +216,9 @@ module Wunderbar
|
|
215
216
|
|
216
217
|
def serialize(options, result, indent)
|
217
218
|
if options[:space] == :preserve
|
218
|
-
result << @text.to_s.gsub(/[
|
219
|
+
result << @text.to_s.gsub(/[&<>\u00A0]/,ESCAPE)
|
219
220
|
else
|
220
|
-
result << @text.to_s.gsub(/[
|
221
|
+
result << @text.to_s.gsub(/[&<>\u00A0]/,ESCAPE).gsub(/\s+/, ' ')
|
221
222
|
end
|
222
223
|
end
|
223
224
|
end
|
@@ -247,7 +248,7 @@ module Wunderbar
|
|
247
248
|
end
|
248
249
|
|
249
250
|
result.push *IndentedTextNode.reflow(indent,
|
250
|
-
text.to_s.gsub(/[
|
251
|
+
text.to_s.gsub(/[&<>\u00A0]/,ESCAPE), options[:width])
|
251
252
|
end
|
252
253
|
end
|
253
254
|
|
data/lib/wunderbar/script.rb
CHANGED
data/lib/wunderbar/sinatra.rb
CHANGED
@@ -14,11 +14,11 @@ module Wunderbar
|
|
14
14
|
Wunderbar::Template.locals(self, args)
|
15
15
|
|
16
16
|
if block
|
17
|
-
Wunderbar::Template::Html.evaluate('
|
17
|
+
Wunderbar::Template::Html.evaluate('html.rb', self) do
|
18
18
|
_html(*args) { instance_eval &block }
|
19
19
|
end
|
20
20
|
else
|
21
|
-
Wunderbar::Template::Html.evaluate('
|
21
|
+
Wunderbar::Template::Html.evaluate('html.rb', self, *args)
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
@@ -27,12 +27,14 @@ module Wunderbar
|
|
27
27
|
return _html(*args, &block)
|
28
28
|
end
|
29
29
|
|
30
|
+
Wunderbar::Template.locals(self, args)
|
31
|
+
|
30
32
|
if block
|
31
|
-
Wunderbar::Template::Xhtml.evaluate('
|
33
|
+
Wunderbar::Template::Xhtml.evaluate('xhtml.rb', self) do
|
32
34
|
_xhtml(*args) { instance_eval &block }
|
33
35
|
end
|
34
36
|
else
|
35
|
-
Wunderbar::Template::Xhtml.evaluate('
|
37
|
+
Wunderbar::Template::Xhtml.evaluate('xhtml.rb', self, *args)
|
36
38
|
end
|
37
39
|
end
|
38
40
|
end
|
@@ -124,7 +126,7 @@ module Wunderbar
|
|
124
126
|
end
|
125
127
|
|
126
128
|
module Json
|
127
|
-
def self.ext; :_json; end
|
129
|
+
def self.ext; ['json.rb', :_json]; end
|
128
130
|
def self.mime; 'application/json'; end
|
129
131
|
|
130
132
|
def evaluate(scope, locals, &block)
|
@@ -142,7 +144,7 @@ module Wunderbar
|
|
142
144
|
end
|
143
145
|
|
144
146
|
module Text
|
145
|
-
def self.ext; :_text; end
|
147
|
+
def self.ext; ['text.rb', :_text]; end
|
146
148
|
def self.mime; 'text/plain'; end
|
147
149
|
|
148
150
|
def evaluate(scope, locals, &block)
|
@@ -184,24 +186,26 @@ module Wunderbar
|
|
184
186
|
include language
|
185
187
|
end
|
186
188
|
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
189
|
+
Array(language.ext).each do |ext|
|
190
|
+
SinatraHelpers.send :define_method, ext do |*args, &block|
|
191
|
+
# parse json
|
192
|
+
if env['CONTENT_TYPE'] =~ /^\w+\/json/
|
193
|
+
json = JSON.parse(env['rack.input'].read)
|
194
|
+
@params.merge! json if Hash === json
|
195
|
+
end
|
193
196
|
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
197
|
+
Wunderbar::Template.locals(self, args)
|
198
|
+
if Hash === args.last and args.last[:locals]
|
199
|
+
@params.each do |name, value|
|
200
|
+
args.last[:locals]["@#{name}".to_sym] = value
|
201
|
+
end
|
198
202
|
end
|
203
|
+
|
204
|
+
template.evaluate(ext, self, *args, &block)
|
199
205
|
end
|
200
206
|
|
201
|
-
|
207
|
+
Tilt.register ext.to_s, template
|
202
208
|
end
|
203
|
-
|
204
|
-
Tilt.register language.ext.to_s, template
|
205
209
|
end
|
206
210
|
|
207
211
|
constants.each do |language|
|
@@ -212,7 +216,9 @@ module Wunderbar
|
|
212
216
|
end
|
213
217
|
|
214
218
|
Tilt.register '_html', Wunderbar::Template::Html
|
219
|
+
Tilt.register 'html.rb', Wunderbar::Template::Html
|
215
220
|
Tilt.register '_xhtml', Wunderbar::Template::Xhtml
|
221
|
+
Tilt.register 'xhtml.rb', Wunderbar::Template::Xhtml
|
216
222
|
|
217
223
|
helpers Wunderbar::SinatraHelpers
|
218
224
|
|
data/lib/wunderbar/version.rb
CHANGED
data/wunderbar.gemspec
CHANGED
@@ -2,17 +2,18 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "wunderbar"
|
5
|
-
s.version = "0.22.
|
5
|
+
s.version = "0.22.2"
|
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 = "2015-01-
|
9
|
+
s.date = "2015-01-08"
|
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/script.rb", "lib/wunderbar/jquery.rb", "lib/wunderbar/underscore.rb", "lib/wunderbar/polymer.rb", "lib/wunderbar/jquery", "lib/wunderbar/jquery/filter.rb", "lib/wunderbar/jquery/stupidtable.rb", "lib/wunderbar/vendor", "lib/wunderbar/vendor/polymer-v0.0.20131003.min.js", "lib/wunderbar/vendor/stupidtable.min.js", "lib/wunderbar/vendor/bootstrap.min.js", "lib/wunderbar/vendor/Markdown.Converter.js", "lib/wunderbar/vendor/angular.min.js", "lib/wunderbar/vendor/bootstrap-theme.min.css", "lib/wunderbar/vendor/jquery-1.11.0.min.js", "lib/wunderbar/vendor/angular-resource.min.js", "lib/wunderbar/vendor/bootstrap.min.css", "lib/wunderbar/vendor/underscore-min.js", "lib/wunderbar/vendor/angular-route.min.js", "lib/wunderbar/websocket.rb", "lib/wunderbar/environment.rb", "lib/wunderbar/pagedown.rb", "lib/wunderbar/version.rb", "lib/wunderbar/cgi-methods.rb", "lib/wunderbar/server.rb", "lib/wunderbar/angularjs.rb", "lib/wunderbar/logger.rb", "lib/wunderbar/asset.rb", "lib/wunderbar/backtick.rb", "lib/wunderbar/opal", "lib/wunderbar/opal/browser.rb", "lib/wunderbar/opal/jquery.rb", "lib/wunderbar/coffeescript.rb", "lib/wunderbar/markdown.rb", "lib/wunderbar/opal.rb", "lib/wunderbar/installation.rb", "lib/wunderbar/bootstrap.rb", "lib/wunderbar/job-control.rb", "lib/wunderbar/sinatra.rb", "lib/wunderbar/rails.rb", "lib/wunderbar/angularjs", "lib/wunderbar/angularjs/resource.rb", "lib/wunderbar/angularjs/route.rb", "lib/wunderbar/rack.rb", "lib/wunderbar/coderay.rb", "lib/wunderbar/builder.rb", "lib/wunderbar/bootstrap", "lib/wunderbar/bootstrap/theme.rb", "lib/wunderbar/cssproxy.rb", "lib/wunderbar/html-methods.rb", "lib/wunderbar/node.rb"]
|
13
13
|
s.homepage = "http://github.com/rubys/wunderbar"
|
14
14
|
s.licenses = ["MIT"]
|
15
15
|
s.require_paths = ["lib"]
|
16
|
+
s.required_ruby_version = Gem::Requirement.new(">= 1.9.3")
|
16
17
|
s.rubygems_version = "1.8.23"
|
17
18
|
s.summary = "HTML Generator and CGI application support"
|
18
19
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wunderbar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.22.
|
4
|
+
version: 0.22.2
|
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: 2015-01-
|
12
|
+
date: 2015-01-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -98,7 +98,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
98
98
|
requirements:
|
99
99
|
- - ! '>='
|
100
100
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
101
|
+
version: 1.9.3
|
102
102
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
103
|
none: false
|
104
104
|
requirements:
|