wunderbar 0.21.4 → 0.22.0

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/README.md CHANGED
@@ -442,6 +442,8 @@ The following gems are required by extensions of the same name:
442
442
  The following gems, if installed, will produce cleaner and prettier output:
443
443
 
444
444
  * `nokogiri` cleans up HTML fragments inserted via `<<`
445
+ * `nokogumbo` also cleans up HTML fragments inserted via `<<`. If this is
446
+ available, it will be preferred over direct usage of `nokogiri`.
445
447
  * `escape` prettier quoting of `system` commands
446
448
  * `sanitize` will remove unsafe markup from tainted input
447
449
 
@@ -166,10 +166,10 @@ module Wunderbar
166
166
 
167
167
  def compact!(&block)
168
168
  begin
169
- @indentation_enabled = false
169
+ indentation_enabled, @indentation_enabled = @indentation_enabled, false
170
170
  block.call
171
171
  ensure
172
- @indentation_enabled = true
172
+ @indentation_enabled = indentation_enabled
173
173
  end
174
174
  end
175
175
 
@@ -191,6 +191,7 @@ module Wunderbar
191
191
  [name, attr.value]
192
192
  }]
193
193
  end
194
+
194
195
  attributes.merge!(node.namespaces) if node.namespaces
195
196
  args.push attributes
196
197
  if node.namespace and node.namespace.prefix
@@ -198,6 +199,12 @@ module Wunderbar
198
199
  else
199
200
  sym = node.name
200
201
  end
202
+
203
+ unless Class === args.first
204
+ args.unshift PreformattedNode if sym == 'pre'
205
+ args.unshift ScriptNode if sym == 'script'
206
+ args.unshift StyleNode if sym == 'style'
207
+ end
201
208
  end
202
209
 
203
210
  if Class === args.first and args.first < Node
@@ -308,33 +315,8 @@ module Wunderbar
308
315
  elsif child.comment?
309
316
  comment! child.text.sub(/\A /,'').sub(/ \Z/, '')
310
317
  elsif HtmlMarkup.flatten? child.children
311
- block_element = Proc.new do |node|
312
- node.element? and HtmlMarkup::HTML5_BLOCK.include?(node.name)
313
- end
314
-
315
- if child.children.any?(&block_element)
316
- # indent children, but disable indentation on consecutive
317
- # sequences of non-block-elements. Put another way: break
318
- # out block elements to a new line.
319
- tag!(child) do
320
- children = child.children.to_a
321
- while not children.empty?
322
- stop = children.index(&block_element)
323
- if stop == 0
324
- self[children.shift]
325
- else
326
- compact!(nil) do
327
- self[*children.shift(stop || children.length)]
328
- end
329
- end
330
- end
331
- end
332
- else
333
- # disable indentation on the entire element
334
- compact! do
335
- tag!(child) {self[*child.children]}
336
- end
337
- end
318
+ # disable indentation on the entire element
319
+ compact! { tag!(child) {self[*child.children]} }
338
320
  elsif child.children.empty? and HtmlMarkup::VOID.include? child.name
339
321
  tag!(child)
340
322
  elsif child.children.all?(&:text?)
@@ -5,8 +5,7 @@ module Wunderbar
5
5
  def _script(*args, &block)
6
6
  args << {} unless Hash === args.last
7
7
  args.last[:lang] ||= 'text/javascript'
8
- args.unshift ScriptNode
9
- proxiable_tag! 'script', *args, &block
8
+ proxiable_tag! 'script', ScriptNode, *args, &block
10
9
  end
11
10
 
12
11
  def _style(*args, &block)
@@ -19,8 +18,7 @@ module Wunderbar
19
18
  end
20
19
  args << {} unless Hash === args.last
21
20
  args.last[:type] ||= 'text/css'
22
- args.unshift StyleNode
23
- proxiable_tag! 'style', *args, &block
21
+ proxiable_tag! 'style', StyleNode, *args, &block
24
22
  end
25
23
  end
26
24
 
@@ -124,7 +122,7 @@ module Wunderbar
124
122
  require 'pathname'
125
123
  base = @_scope.env['DOCUMENT_ROOT'] if @_scope.env.respond_to? :[]
126
124
  base ||= Dir.pwd
127
- base += head.children[1].attrs[:href]
125
+ base += (head.children[1].attrs[:href] || '')
128
126
  base += 'index.html' if base.end_with? '/'
129
127
  base = Pathname.new(base).parent
130
128
  prefix = Pathname.new(Dir.pwd).relative_path_from(base).to_s + '/'
@@ -292,7 +290,9 @@ module Wunderbar
292
290
 
293
291
  def _pre(*args, &block)
294
292
  args.first.chomp! if String === args.first and args.first.end_with? "\n"
295
- @_x.compact! { tag! :pre, *args, &block }
293
+ @_x.compact! do
294
+ proxiable_tag! :pre, PreformattedNode, *args, &block
295
+ end
296
296
  end
297
297
 
298
298
  def _ul(*args, &block)
@@ -351,7 +351,12 @@ module Wunderbar
351
351
  safe = true
352
352
 
353
353
  if ok and (children.include? '<' or children.include? '&')
354
- doc = Nokogiri::HTML::fragment(children.to_s)
354
+ if defined? Nokogiri::HTML5.fragment
355
+ doc = Nokogiri::HTML5.fragment(children.to_s)
356
+ else
357
+ doc = Nokogiri::HTML.fragment(children.to_s)
358
+ end
359
+
355
360
  Sanitize.new.clean_node! doc.dup.untaint if not safe
356
361
  children = doc.children.to_a
357
362
 
@@ -382,10 +387,13 @@ module Wunderbar
382
387
  @_x[*children]
383
388
  end
384
389
 
385
- def __(text=nil)
390
+ def __(text=nil, &block)
386
391
  if text
387
392
  @_x.spaced!
388
393
  @_x.indented_text! text
394
+ elsif block
395
+ @_x.spaced!
396
+ _ &block
389
397
  else
390
398
  @_x.text! ""
391
399
  end
@@ -46,10 +46,17 @@ module Wunderbar
46
46
  indent += options[:indent] if indent and parent
47
47
  first = true
48
48
  spaced = false
49
+
50
+ if preserve_spaces?
51
+ options = options.dup
52
+ options[:space] = :preserve
53
+ end
54
+
49
55
  children.each do |child|
50
56
  next unless child
51
57
  result << '' if (spaced or SpacedNode === child) and not first
52
58
  if String === child
59
+ child = child.gsub(/\s+/, ' ') unless options[:space] == :preserve
53
60
  result << child
54
61
  else
55
62
  child.serialize(options, result, indent)
@@ -70,22 +77,24 @@ module Wunderbar
70
77
  end
71
78
 
72
79
  if children.empty?
73
- if text
74
- if options[:pre]
75
- line += ">#{options[:pre]}#{text}#{options[:post]}</#{name}>"
76
- else
77
- width = options[:width] if name != :pre
80
+ if options[:pre]
81
+ line += ">#{options[:pre]}#{text}#{options[:post]}</#{name}>"
82
+ else
83
+ width = options[:width] unless preserve_spaces?
84
+
85
+ if text
78
86
  line += ">#{text.to_s.gsub(/[&<>]/,ESCAPE)}</#{name}>"
79
- if indent and width and line.length > width
80
- reflowed = IndentedTextNode.reflow(indent, line, width)
81
- line = reflowed.pop
82
- result.push *reflowed
83
- end
87
+ elsif VOID.include? name.to_s
88
+ line += "/>"
89
+ else
90
+ line += "></#{name}>"
91
+ end
92
+
93
+ if indent and width and line.length > width
94
+ reflowed = IndentedTextNode.reflow(indent, line, width)
95
+ line = reflowed.pop
96
+ result.push *reflowed
84
97
  end
85
- elsif VOID.include? name.to_s
86
- line += "/>"
87
- else
88
- line += "></#{name}>"
89
98
  end
90
99
  elsif CompactNode === self and not CompactNode === parent
91
100
  work = []
@@ -113,7 +122,7 @@ module Wunderbar
113
122
  line += ' ' + token
114
123
  else
115
124
  result << line
116
- line = indent.to_s + token
125
+ line = indent.to_s + options[:indent] + token
117
126
  end
118
127
  end
119
128
  end
@@ -131,6 +140,10 @@ module Wunderbar
131
140
  result << line if parent
132
141
  result
133
142
  end
143
+
144
+ def preserve_spaces?
145
+ false
146
+ end
134
147
  end
135
148
 
136
149
  class CommentNode
@@ -156,7 +169,13 @@ module Wunderbar
156
169
  end
157
170
  end
158
171
 
159
- class CDATANode < Node
172
+ class PreformattedNode < Node
173
+ def preserve_spaces?
174
+ true
175
+ end
176
+ end
177
+
178
+ class CDATANode < PreformattedNode
160
179
  def self.normalize(data, indent='')
161
180
  data = data.sub(/\n\s*\Z/, '').sub(/\A\s*\n/, '')
162
181
 
@@ -177,7 +196,7 @@ module Wunderbar
177
196
  end
178
197
 
179
198
  if @text and @text =~ /[<^>]/
180
- indent += ' ' if indent
199
+ indent += options[:indent] if indent
181
200
  children.unshift @text.gsub(/^/, indent).gsub(/^ +$/,'').rstrip
182
201
  @text = nil
183
202
  super(options.merge(pre: pre, post: post), result, indent)
@@ -195,13 +214,19 @@ module Wunderbar
195
214
  end
196
215
 
197
216
  def serialize(options, result, indent)
198
- result << @text.to_s.gsub(/[&<>]/,ESCAPE)
217
+ if options[:space] == :preserve
218
+ result << @text.to_s.gsub(/[&<>]/,ESCAPE)
219
+ else
220
+ result << @text.to_s.gsub(/[&<>]/,ESCAPE).gsub(/\s+/, ' ')
221
+ end
199
222
  end
200
223
  end
201
224
 
202
225
  class IndentedTextNode < TextNode
203
226
  def self.reflow(indent, line, width)
204
- return [line] if line.include? "\n" or not width
227
+ return [line] unless width and indent
228
+ line = indent + line.gsub!(/\s+/, ' ').strip
229
+ indent += ' '
205
230
 
206
231
  result = []
207
232
  while line.length > width
@@ -9,7 +9,7 @@ module Wunderbar
9
9
  class ScriptNode
10
10
  attr_accessor :block, :binding
11
11
  def serialize(options, result, indent)
12
- if @block
12
+ if @block and @children.empty? and not @text
13
13
  width = options[:width]
14
14
  width -= indent.to_s.length if width
15
15
  @text = Ruby2JS.convert(@block, binding: @binding, width: width)
@@ -1,8 +1,8 @@
1
1
  module Wunderbar
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
- MINOR = 21
5
- TINY = 4
4
+ MINOR = 22
5
+ TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/wunderbar.gemspec CHANGED
@@ -2,22 +2,22 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "wunderbar"
5
- s.version = "0.21.4"
5
+ s.version = "0.22.0"
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 = "2014-06-24"
9
+ s.date = "2014-12-23"
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
- 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/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/logger.rb", "lib/wunderbar/markdown.rb", "lib/wunderbar/node.rb", "lib/wunderbar/opal", "lib/wunderbar/opal/browser.rb", "lib/wunderbar/opal/jquery.rb", "lib/wunderbar/opal.rb", "lib/wunderbar/pagedown.rb", "lib/wunderbar/polymer.rb", "lib/wunderbar/rack.rb", "lib/wunderbar/rails.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/jquery-1.11.0.min.js", "lib/wunderbar/vendor/Markdown.Converter.js", "lib/wunderbar/vendor/polymer-v0.0.20131003.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"]
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.rubygems_version = "2.0.14"
16
+ s.rubygems_version = "1.8.23"
17
17
  s.summary = "HTML Generator and CGI application support"
18
18
 
19
19
  if s.respond_to? :specification_version then
20
- s.specification_version = 4
20
+ s.specification_version = 3
21
21
 
22
22
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
23
23
  s.add_runtime_dependency(%q<json>, [">= 0"])
metadata CHANGED
@@ -1,34 +1,36 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wunderbar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.4
4
+ version: 0.22.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Sam Ruby
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-06-24 00:00:00.000000000 Z
12
+ date: 2014-12-23 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: json
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - '>='
19
+ - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: '0'
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - '>='
27
+ - - ! '>='
25
28
  - !ruby/object:Gem::Version
26
29
  version: '0'
27
- description: |2
28
- Wunderbar makes it easy to produce valid HTML5, wellformed XHTML, Unicode
29
- (utf-8), consistently indented, readable applications. This includes
30
- output that conforms to the Polyglot specification and the emerging
31
- results from the XML Error Recovery Community Group.
30
+ description: ! " Wunderbar makes it easy to produce valid HTML5, wellformed XHTML,
31
+ Unicode\n (utf-8), consistently indented, readable applications. This includes\n
32
+ \ output that conforms to the Polyglot specification and the emerging\n results
33
+ from the XML Error Recovery Community Group.\n"
32
34
  email: rubys@intertwingly.net
33
35
  executables: []
34
36
  extensions: []
@@ -37,75 +39,76 @@ files:
37
39
  - wunderbar.gemspec
38
40
  - README.md
39
41
  - COPYING
40
- - lib/wunderbar/angularjs/resource.rb
41
- - lib/wunderbar/angularjs/route.rb
42
+ - lib/wunderbar.rb
43
+ - lib/wunderbar/script.rb
44
+ - lib/wunderbar/jquery.rb
45
+ - lib/wunderbar/underscore.rb
46
+ - lib/wunderbar/polymer.rb
47
+ - lib/wunderbar/jquery/filter.rb
48
+ - lib/wunderbar/jquery/stupidtable.rb
49
+ - lib/wunderbar/vendor/polymer-v0.0.20131003.min.js
50
+ - lib/wunderbar/vendor/stupidtable.min.js
51
+ - lib/wunderbar/vendor/bootstrap.min.js
52
+ - lib/wunderbar/vendor/Markdown.Converter.js
53
+ - lib/wunderbar/vendor/angular.min.js
54
+ - lib/wunderbar/vendor/bootstrap-theme.min.css
55
+ - lib/wunderbar/vendor/jquery-1.11.0.min.js
56
+ - lib/wunderbar/vendor/angular-resource.min.js
57
+ - lib/wunderbar/vendor/bootstrap.min.css
58
+ - lib/wunderbar/vendor/underscore-min.js
59
+ - lib/wunderbar/vendor/angular-route.min.js
60
+ - lib/wunderbar/websocket.rb
61
+ - lib/wunderbar/environment.rb
62
+ - lib/wunderbar/pagedown.rb
63
+ - lib/wunderbar/version.rb
64
+ - lib/wunderbar/cgi-methods.rb
65
+ - lib/wunderbar/server.rb
42
66
  - lib/wunderbar/angularjs.rb
67
+ - lib/wunderbar/logger.rb
43
68
  - lib/wunderbar/asset.rb
44
69
  - lib/wunderbar/backtick.rb
45
- - lib/wunderbar/bootstrap/theme.rb
70
+ - lib/wunderbar/opal/browser.rb
71
+ - lib/wunderbar/opal/jquery.rb
72
+ - lib/wunderbar/coffeescript.rb
73
+ - lib/wunderbar/markdown.rb
74
+ - lib/wunderbar/opal.rb
75
+ - lib/wunderbar/installation.rb
46
76
  - lib/wunderbar/bootstrap.rb
47
- - lib/wunderbar/builder.rb
48
- - lib/wunderbar/cgi-methods.rb
77
+ - lib/wunderbar/job-control.rb
78
+ - lib/wunderbar/sinatra.rb
79
+ - lib/wunderbar/rails.rb
80
+ - lib/wunderbar/angularjs/resource.rb
81
+ - lib/wunderbar/angularjs/route.rb
82
+ - lib/wunderbar/rack.rb
49
83
  - lib/wunderbar/coderay.rb
50
- - lib/wunderbar/coffeescript.rb
84
+ - lib/wunderbar/builder.rb
85
+ - lib/wunderbar/bootstrap/theme.rb
51
86
  - lib/wunderbar/cssproxy.rb
52
- - lib/wunderbar/environment.rb
53
87
  - lib/wunderbar/html-methods.rb
54
- - lib/wunderbar/installation.rb
55
- - lib/wunderbar/job-control.rb
56
- - lib/wunderbar/jquery/filter.rb
57
- - lib/wunderbar/jquery/stupidtable.rb
58
- - lib/wunderbar/jquery.rb
59
- - lib/wunderbar/logger.rb
60
- - lib/wunderbar/markdown.rb
61
88
  - lib/wunderbar/node.rb
62
- - lib/wunderbar/opal/browser.rb
63
- - lib/wunderbar/opal/jquery.rb
64
- - lib/wunderbar/opal.rb
65
- - lib/wunderbar/pagedown.rb
66
- - lib/wunderbar/polymer.rb
67
- - lib/wunderbar/rack.rb
68
- - lib/wunderbar/rails.rb
69
- - lib/wunderbar/script.rb
70
- - lib/wunderbar/server.rb
71
- - lib/wunderbar/sinatra.rb
72
- - lib/wunderbar/underscore.rb
73
- - lib/wunderbar/vendor/angular-resource.min.js
74
- - lib/wunderbar/vendor/angular-route.min.js
75
- - lib/wunderbar/vendor/angular.min.js
76
- - lib/wunderbar/vendor/bootstrap-theme.min.css
77
- - lib/wunderbar/vendor/bootstrap.min.css
78
- - lib/wunderbar/vendor/bootstrap.min.js
79
- - lib/wunderbar/vendor/jquery-1.11.0.min.js
80
- - lib/wunderbar/vendor/Markdown.Converter.js
81
- - lib/wunderbar/vendor/polymer-v0.0.20131003.min.js
82
- - lib/wunderbar/vendor/stupidtable.min.js
83
- - lib/wunderbar/vendor/underscore-min.js
84
- - lib/wunderbar/version.rb
85
- - lib/wunderbar/websocket.rb
86
- - lib/wunderbar.rb
87
89
  homepage: http://github.com/rubys/wunderbar
88
90
  licenses:
89
91
  - MIT
90
- metadata: {}
91
92
  post_install_message:
92
93
  rdoc_options: []
93
94
  require_paths:
94
95
  - lib
95
96
  required_ruby_version: !ruby/object:Gem::Requirement
97
+ none: false
96
98
  requirements:
97
- - - '>='
99
+ - - ! '>='
98
100
  - !ruby/object:Gem::Version
99
101
  version: '0'
100
102
  required_rubygems_version: !ruby/object:Gem::Requirement
103
+ none: false
101
104
  requirements:
102
- - - '>='
105
+ - - ! '>='
103
106
  - !ruby/object:Gem::Version
104
107
  version: '0'
105
108
  requirements: []
106
109
  rubyforge_project:
107
- rubygems_version: 2.0.14
110
+ rubygems_version: 1.8.23
108
111
  signing_key:
109
- specification_version: 4
112
+ specification_version: 3
110
113
  summary: HTML Generator and CGI application support
111
114
  test_files: []
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 8badf15d87c160ff80047cf11daa11c075f52cd1
4
- data.tar.gz: 49055a8e408472bfa4b868ea45dfbf3133aa09d4
5
- SHA512:
6
- metadata.gz: b325a928ba13e21146b98ecaea45a1eb53e7cece7e37c076f07b278373d9674798420370e295c798be7b20739106a189bba9095373ad45d22d3b0a8e3655eaa2
7
- data.tar.gz: 76b378725828ff67d819119459e7aa480b9bd33d0284bd8dae28e37728e7fdcbdeb98f62933ee9f08b23d5993ea1024da7346d792f1e92a7fa3e0d6d2d2a8fd4