wunderbar 0.22.0 → 0.22.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/wunderbar/builder.rb +31 -4
- data/lib/wunderbar/html-methods.rb +3 -1
- data/lib/wunderbar/version.rb +1 -1
- data/wunderbar.gemspec +2 -2
- metadata +2 -2
data/lib/wunderbar/builder.rb
CHANGED
@@ -99,9 +99,29 @@ module Wunderbar
|
|
99
99
|
end
|
100
100
|
|
101
101
|
class XmlMarkup < BuilderClass
|
102
|
-
|
102
|
+
# convenience method for taking an XML node or string and formatting it
|
103
|
+
def self.dump(content, args={})
|
104
|
+
markup = self.new(args)
|
105
|
+
|
106
|
+
if Nokogiri::XML::Document === content and content.root.name == 'html'
|
107
|
+
markup.declare! :DOCTYPE, :html
|
108
|
+
end
|
109
|
+
|
110
|
+
unless Nokogiri::XML::Node === content
|
111
|
+
if defined? Nokogiri::HTML5.fragment
|
112
|
+
content = Nokogiri::HTML5.fragment(content.to_s)
|
113
|
+
else
|
114
|
+
content = Nokogiri::HTML.fragment(content.to_s)
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
markup[content]
|
119
|
+
markup.target!
|
120
|
+
end
|
121
|
+
|
122
|
+
def initialize(args={})
|
103
123
|
@_scope = args.delete(:scope)
|
104
|
-
@_indent = args.delete(:indent)
|
124
|
+
@_indent = args.delete(:indent) || 2
|
105
125
|
@_pdf = false
|
106
126
|
@doc = Node.new(nil)
|
107
127
|
@node = @doc
|
@@ -259,6 +279,7 @@ module Wunderbar
|
|
259
279
|
def <<(data)
|
260
280
|
if defined? Nokogiri
|
261
281
|
if not String === data or data.include? '<' or data.include? '&'
|
282
|
+
# https://github.com/google/gumbo-parser/issues/266
|
262
283
|
data = Nokogiri::HTML::fragment(data.to_s).to_xml
|
263
284
|
|
264
285
|
# fix CDATA in most cases (notably scripts)
|
@@ -289,8 +310,14 @@ module Wunderbar
|
|
289
310
|
end
|
290
311
|
|
291
312
|
def [](*children)
|
292
|
-
if children.length == 1
|
293
|
-
|
313
|
+
if children.length == 1
|
314
|
+
if children.first.respond_to? :root
|
315
|
+
children = [children.first.root]
|
316
|
+
elsif defined? Nokogiri::XML::DocumentFragment and
|
317
|
+
Nokogiri::XML::DocumentFragment === children.first
|
318
|
+
then
|
319
|
+
children = children.first.children
|
320
|
+
end
|
294
321
|
end
|
295
322
|
|
296
323
|
# remove leading and trailing space
|
@@ -341,7 +341,7 @@ module Wunderbar
|
|
341
341
|
return @_x
|
342
342
|
end
|
343
343
|
|
344
|
-
children = block
|
344
|
+
children = instance_eval &block
|
345
345
|
|
346
346
|
if String === children
|
347
347
|
safe = !children.tainted?
|
@@ -382,6 +382,8 @@ module Wunderbar
|
|
382
382
|
else
|
383
383
|
return @_x.indented_text! children
|
384
384
|
end
|
385
|
+
elsif children.nil? or Wunderbar::Node === children
|
386
|
+
return children
|
385
387
|
end
|
386
388
|
|
387
389
|
@_x[*children]
|
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.22.
|
5
|
+
s.version = "0.22.1"
|
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 = "
|
9
|
+
s.date = "2015-01-02"
|
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"]
|
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.1
|
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:
|
12
|
+
date: 2015-01-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|