wunderbar 1.0.21 → 1.0.23
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 +4 -4
- data/README.md +9 -6
- data/lib/wunderbar/asset.rb +4 -2
- data/lib/wunderbar/builder.rb +4 -3
- data/lib/wunderbar/cgi-methods.rb +5 -5
- data/lib/wunderbar/coderay.rb +1 -1
- data/lib/wunderbar/cssproxy.rb +1 -1
- data/lib/wunderbar/environment.rb +8 -2
- data/lib/wunderbar/html-methods.rb +5 -5
- data/lib/wunderbar/jquery/filter.rb +6 -1
- data/lib/wunderbar/logger.rb +10 -5
- data/lib/wunderbar/node.rb +4 -5
- data/lib/wunderbar/polymer.rb +2 -2
- data/lib/wunderbar/rails.rb +4 -4
- data/lib/wunderbar/script.rb +3 -2
- data/lib/wunderbar/sinatra.rb +4 -4
- data/lib/wunderbar/version.rb +1 -1
- data/lib/wunderbar/websocket.rb +2 -2
- data/wunderbar.gemspec +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d584cea1e10ef64f349221f0c7166b273e87065e
|
4
|
+
data.tar.gz: ceb134f97e82c9dd9298a83c30d5add9ffd0d4a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0bc7bd9fa1c2ed6b6c555736bf534a1b00c9cfe0aac2156f05c7b99ece51f5253d95c0b6ed121f6dde9fdd5aa3fd655252e0cf83e012b0086a48534329aa0294
|
7
|
+
data.tar.gz: e69d846acbe52f2d4fe64b5433a1cde82a8a39c98bcc75e52364494707259d34e984893364585b676236725068093623f65413e60c9fb24e230d1d09575fc1dc
|
data/README.md
CHANGED
@@ -228,6 +228,7 @@ convenience methods are defined:
|
|
228
228
|
Access to all of the builder _defined_ methods (typically these end in an esclamation mark) and all of the Wunderbar module methods can be accessed in this way. Examples:
|
229
229
|
|
230
230
|
* `_.tag! :foo`: insert elements where the name can be dynamic
|
231
|
+
* `_.comment! "text"`: add a comment
|
231
232
|
* `_.error 'Log message'`: write a message to the server log
|
232
233
|
|
233
234
|
Underscores in element and attribute names are converted to dashes. To
|
@@ -364,9 +365,10 @@ Secure by default
|
|
364
365
|
|
365
366
|
Wunderbar will properly escape all HTML and JSON output, eliminating problems
|
366
367
|
of HTML or JavaScript injection. This includes calls to `_` to insert text
|
367
|
-
directly.
|
368
|
-
|
369
|
-
(
|
368
|
+
directly. Unless `nokogiri` was previously required (see [optional
|
369
|
+
dependencies](#optional-dependencies) below), calls to insert markup
|
370
|
+
(`_{...}`) will escape the markup if the input is `tainted` and not explicitly
|
371
|
+
marked as `html-safe?` (when using Rails).
|
370
372
|
|
371
373
|
For all environments other than Rails, unless you call `Wunderbar.unsafe!` at
|
372
374
|
the top of your script, Wunderbar will also set
|
@@ -407,6 +409,7 @@ Logging:
|
|
407
409
|
* `_.error`: error messages
|
408
410
|
* `_.fatal`: fatal error messages
|
409
411
|
* `_.log_level`=: set logging level (default: `:warn`)
|
412
|
+
* `_.default_log_level`=: set, but don't override, log level
|
410
413
|
* `_.logger`: return [Logger](http://www.ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html) instance
|
411
414
|
|
412
415
|
Command line options
|
@@ -443,9 +446,9 @@ The following gems are required by extensions of the same name:
|
|
443
446
|
|
444
447
|
The following gems, if installed, will produce cleaner and prettier output:
|
445
448
|
|
446
|
-
* `nokogiri` cleans up HTML fragments inserted via `<<`
|
447
|
-
* `nokogumbo` also cleans up HTML fragments inserted via
|
448
|
-
available, it will be preferred over direct usage of `nokogiri`.
|
449
|
+
* `nokogiri` cleans up HTML fragments inserted via `<<` and `_{}`.
|
450
|
+
* `nokogumbo` also cleans up HTML fragments inserted via `<<` and `_{}`. If
|
451
|
+
this gem is available, it will be preferred over direct usage of `nokogiri`.
|
449
452
|
* `escape` prettier quoting of `system` commands
|
450
453
|
* `sanitize` will remove unsafe markup from tainted input
|
451
454
|
|
data/lib/wunderbar/asset.rb
CHANGED
@@ -62,6 +62,7 @@ module Wunderbar
|
|
62
62
|
env = Thread.current[:env] || ENV
|
63
63
|
|
64
64
|
@path = '../' * env['PATH_INFO'].to_s.count('/') + 'assets'
|
65
|
+
@root ||= nil
|
65
66
|
@root = File.dirname(env['SCRIPT_FILENAME']) if env['SCRIPT_FILENAME']
|
66
67
|
@root = File.expand_path((@root || Dir.pwd) + "/assets").untaint
|
67
68
|
|
@@ -123,7 +124,8 @@ module Wunderbar
|
|
123
124
|
nodes = []
|
124
125
|
@@scripts.each do |script|
|
125
126
|
if script.path
|
126
|
-
nodes << Node.new(:script, src:
|
127
|
+
nodes << Node.new(:script, src:
|
128
|
+
"#{path}/#{script.path}?#{script.mtime.to_i}")
|
127
129
|
elsif script.contents
|
128
130
|
nodes << ScriptNode.new(:script, script.contents)
|
129
131
|
end
|
@@ -146,7 +148,7 @@ module Wunderbar
|
|
146
148
|
@@stylesheets.each do |stylesheet|
|
147
149
|
if stylesheet.path
|
148
150
|
nodes << Node.new(:link, rel: "stylesheet", type: "text/css",
|
149
|
-
href: "#{path}/#{stylesheet.path}")
|
151
|
+
href: "#{path}/#{stylesheet.path}?#{stylesheet.mtime.to_i}")
|
150
152
|
elsif stylesheet.contents
|
151
153
|
nodes << StyleNode.new(:style, stylesheet.contents)
|
152
154
|
end
|
data/lib/wunderbar/builder.rb
CHANGED
@@ -11,10 +11,11 @@ module Wunderbar
|
|
11
11
|
|
12
12
|
class BuilderBase
|
13
13
|
def set_variables_from_params(locals={})
|
14
|
-
params =
|
14
|
+
params = []
|
15
|
+
@_scope.params.each_pair do |key, value|
|
15
16
|
value = value.first if Array === value
|
16
17
|
value.gsub! "\r\n", "\n" if String === value
|
17
|
-
["@#{key}", value]
|
18
|
+
params << ["@#{key}", value]
|
18
19
|
end
|
19
20
|
|
20
21
|
Hash[params].merge(locals).each do |key,value|
|
@@ -403,7 +404,7 @@ module Wunderbar
|
|
403
404
|
end
|
404
405
|
|
405
406
|
def _(*args)
|
406
|
-
@_target.puts
|
407
|
+
@_target.puts(*args) if args.length > 0
|
407
408
|
self
|
408
409
|
end
|
409
410
|
|
@@ -96,9 +96,9 @@ module Wunderbar
|
|
96
96
|
if @pdf
|
97
97
|
x._.pdf = true if @pdf
|
98
98
|
headers = { 'type' => 'application/pdf' }
|
99
|
-
output = html2pdf {x.html
|
99
|
+
output = html2pdf {x.html(*args, &block)}
|
100
100
|
else
|
101
|
-
output = x.html
|
101
|
+
output = x.html(*args, &block)
|
102
102
|
end
|
103
103
|
rescue ::Exception => exception
|
104
104
|
headers['status'] = Wunderbar::ServerError.text
|
@@ -159,9 +159,9 @@ module Wunderbar
|
|
159
159
|
|
160
160
|
# disable conneg if only one handler is provided
|
161
161
|
if Wunderbar.queue.length == 1
|
162
|
-
|
163
|
-
xhr_json = (
|
164
|
-
text = (
|
162
|
+
htype = Wunderbar.queue.first.first
|
163
|
+
xhr_json = (htype == :json)
|
164
|
+
text = (htype == :text)
|
165
165
|
end
|
166
166
|
|
167
167
|
Wunderbar.queue.each do |type, args, block|
|
data/lib/wunderbar/coderay.rb
CHANGED
data/lib/wunderbar/cssproxy.rb
CHANGED
@@ -109,8 +109,14 @@ $SERVER = ENV['HTTP_HOST'] || Socket::gethostname
|
|
109
109
|
|
110
110
|
# set encoding to UTF-8
|
111
111
|
ENV['LANG'] ||= "en_US.UTF-8"
|
112
|
-
|
113
|
-
|
112
|
+
begin
|
113
|
+
verbose = $VERBOSE
|
114
|
+
$VERBOSE = nil
|
115
|
+
Encoding.default_external = Encoding::UTF_8
|
116
|
+
Encoding.default_internal = Encoding::UTF_8
|
117
|
+
ensure
|
118
|
+
$VERBOSE = verbose
|
119
|
+
end
|
114
120
|
|
115
121
|
# Add methods to the 'main' object
|
116
122
|
if self.to_s == 'main'
|
@@ -216,14 +216,14 @@ module Wunderbar
|
|
216
216
|
x.instance_variable_set ivar, instance_variable_get(ivar)
|
217
217
|
end
|
218
218
|
if Hash === args.last
|
219
|
-
args.last.each do |
|
220
|
-
x.instance_variable_set "@#{
|
219
|
+
args.last.each do |attrname, value|
|
220
|
+
x.instance_variable_set "@#{attrname}", value
|
221
221
|
end
|
222
222
|
end
|
223
223
|
save_yield = Wunderbar.templates['yield']
|
224
224
|
begin
|
225
225
|
Wunderbar.templates['yield'] = block if block
|
226
|
-
x.instance_eval
|
226
|
+
x.instance_eval(&Wunderbar.templates[name])
|
227
227
|
ensure
|
228
228
|
Wunderbar.templates['yield'] = save_yield
|
229
229
|
Wunderbar.templates.delete 'yield' unless save_yield
|
@@ -371,7 +371,7 @@ module Wunderbar
|
|
371
371
|
return @_x
|
372
372
|
end
|
373
373
|
|
374
|
-
children = instance_eval
|
374
|
+
children = instance_eval(&block)
|
375
375
|
|
376
376
|
if String === children
|
377
377
|
safe = !children.tainted?
|
@@ -425,7 +425,7 @@ module Wunderbar
|
|
425
425
|
@_x.indented_text! text
|
426
426
|
elsif block
|
427
427
|
@_x.spaced!
|
428
|
-
_
|
428
|
+
_(&block)
|
429
429
|
else
|
430
430
|
@_x.text! ""
|
431
431
|
end
|
@@ -8,6 +8,11 @@ module Wunderbar
|
|
8
8
|
module JQuery
|
9
9
|
include Ruby2JS::Filter::SEXP
|
10
10
|
|
11
|
+
def initialize(*args)
|
12
|
+
@_jqchild = nil
|
13
|
+
super
|
14
|
+
end
|
15
|
+
|
11
16
|
def on_send(node)
|
12
17
|
return super if @react
|
13
18
|
|
@@ -94,7 +99,7 @@ module Wunderbar
|
|
94
99
|
s(:str, node.children[1].to_s[0..-2].gsub('_','-')))
|
95
100
|
|
96
101
|
# if a hash argument is already passed, merge in id value
|
97
|
-
hash = children.find_index {|
|
102
|
+
hash = children.find_index {|cnode| cnode.type == :hash}
|
98
103
|
if hash
|
99
104
|
children[hash] = s(:hash, pair, *children[hash].children)
|
100
105
|
else
|
data/lib/wunderbar/logger.rb
CHANGED
@@ -2,6 +2,7 @@ require 'logger'
|
|
2
2
|
|
3
3
|
module Wunderbar
|
4
4
|
def self.logger
|
5
|
+
@logger ||= nil
|
5
6
|
return @logger if @logger
|
6
7
|
@logger = Logger.new($stderr)
|
7
8
|
@logger.level = Logger::WARN
|
@@ -29,6 +30,10 @@ module Wunderbar
|
|
29
30
|
end
|
30
31
|
end
|
31
32
|
|
33
|
+
def self.default_log_level=(level)
|
34
|
+
self.log_level = level unless @logger
|
35
|
+
end
|
36
|
+
|
32
37
|
def self.log_level
|
33
38
|
return 'debug' if logger.level == Logger::DEBUG
|
34
39
|
return 'info' if logger.level == Logger::INFO
|
@@ -39,23 +44,23 @@ module Wunderbar
|
|
39
44
|
|
40
45
|
# convenience methods
|
41
46
|
def self.debug(*args, &block)
|
42
|
-
logger.debug
|
47
|
+
logger.debug(*args, &block)
|
43
48
|
end
|
44
49
|
|
45
50
|
def self.info(*args, &block)
|
46
|
-
logger.info
|
51
|
+
logger.info(*args, &block)
|
47
52
|
end
|
48
53
|
|
49
54
|
def self.warn(*args, &block)
|
50
|
-
logger.warn
|
55
|
+
logger.warn(*args, &block)
|
51
56
|
end
|
52
57
|
|
53
58
|
def self.error(*args, &block)
|
54
|
-
logger.error
|
59
|
+
logger.error(*args, &block)
|
55
60
|
end
|
56
61
|
|
57
62
|
def self.fatal(*args, &block)
|
58
|
-
logger.fatal
|
63
|
+
logger.fatal(*args, &block)
|
59
64
|
end
|
60
65
|
end
|
61
66
|
|
data/lib/wunderbar/node.rb
CHANGED
@@ -95,7 +95,7 @@ module Wunderbar
|
|
95
95
|
reflowed = IndentedTextNode.reflow(indent, line, width,
|
96
96
|
options[:indent])
|
97
97
|
line = reflowed.pop
|
98
|
-
result.push
|
98
|
+
result.push(*reflowed)
|
99
99
|
end
|
100
100
|
end
|
101
101
|
elsif CompactNode === self and not CompactNode === parent
|
@@ -278,9 +278,8 @@ module Wunderbar
|
|
278
278
|
unindent = data.sub(/s+\Z/,'').scan(/^ *\S/).map(&:length).min || 0
|
279
279
|
|
280
280
|
before = ::Regexp.new('^'.ljust(unindent))
|
281
|
-
node = @node
|
282
281
|
data.gsub! before, indent
|
283
|
-
data.gsub!
|
282
|
+
data.gsub!(/^#{indent}$/, '') if unindent == 0
|
284
283
|
data
|
285
284
|
end
|
286
285
|
|
@@ -342,8 +341,8 @@ module Wunderbar
|
|
342
341
|
text = @text
|
343
342
|
end
|
344
343
|
|
345
|
-
result.push
|
346
|
-
text.to_s.gsub(/[&<>\u00A0]/,ESCAPE), options[:width], '')
|
344
|
+
result.push(*IndentedTextNode.reflow(indent,
|
345
|
+
text.to_s.gsub(/[&<>\u00A0]/,ESCAPE), options[:width], ''))
|
347
346
|
end
|
348
347
|
end
|
349
348
|
|
data/lib/wunderbar/polymer.rb
CHANGED
@@ -27,7 +27,7 @@ if self.to_s == 'main'
|
|
27
27
|
|
28
28
|
begin
|
29
29
|
element = x._polymer_element *args do
|
30
|
-
x.instance_eval
|
30
|
+
x.instance_eval(&block)
|
31
31
|
end
|
32
32
|
output = element.serialize.join("\n") + "\n"
|
33
33
|
rescue ::Exception => exception
|
@@ -49,7 +49,7 @@ module Wunderbar
|
|
49
49
|
module SinatraHelpers
|
50
50
|
def _polymer_element(*args, &block)
|
51
51
|
Wunderbar::Template::Html.evaluate('_polymer_element', self) do
|
52
|
-
_polymer_element(*args) { instance_eval
|
52
|
+
_polymer_element(*args) { instance_eval(&block) }
|
53
53
|
end
|
54
54
|
end
|
55
55
|
end
|
data/lib/wunderbar/rails.rb
CHANGED
@@ -5,7 +5,7 @@ module Wunderbar
|
|
5
5
|
module Rails
|
6
6
|
class HtmlHandler
|
7
7
|
cattr_accessor :default_format
|
8
|
-
self.default_format = Mime
|
8
|
+
self.default_format = Mime[:html]
|
9
9
|
|
10
10
|
def self.call(template)
|
11
11
|
%{
|
@@ -14,7 +14,7 @@ module Wunderbar
|
|
14
14
|
instance_variables.each do |var|
|
15
15
|
x.instance_variable_set var, instance_variable_get(var)
|
16
16
|
end
|
17
|
-
x.instance_eval
|
17
|
+
x.instance_eval(&compiled)
|
18
18
|
x._.target!
|
19
19
|
}.strip # take care to preserve line numbers in original source
|
20
20
|
end
|
@@ -22,7 +22,7 @@ module Wunderbar
|
|
22
22
|
|
23
23
|
class JsonHandler
|
24
24
|
cattr_accessor :default_format
|
25
|
-
self.default_format = Mime
|
25
|
+
self.default_format = Mime[:json]
|
26
26
|
|
27
27
|
def self.call(template)
|
28
28
|
%{
|
@@ -31,7 +31,7 @@ module Wunderbar
|
|
31
31
|
instance_variables.each do |var|
|
32
32
|
x.instance_variable_set var, instance_variable_get(var)
|
33
33
|
end
|
34
|
-
x.instance_eval
|
34
|
+
x.instance_eval(&compiled)
|
35
35
|
x.target!
|
36
36
|
}.strip # take care to preserve line numbers in original source
|
37
37
|
end
|
data/lib/wunderbar/script.rb
CHANGED
@@ -9,6 +9,7 @@ module Wunderbar
|
|
9
9
|
class ScriptNode
|
10
10
|
attr_accessor :block, :binding
|
11
11
|
def serialize(options, result, indent)
|
12
|
+
@block ||= nil
|
12
13
|
if @block and @children.empty? and not @text
|
13
14
|
width = options[:width]
|
14
15
|
width -= indent.to_s.length if width
|
@@ -45,8 +46,8 @@ module Wunderbar
|
|
45
46
|
end
|
46
47
|
|
47
48
|
def self.ruby2js(*args, &block)
|
48
|
-
callback = Proc.new do |scope,
|
49
|
-
ruby2js(scope, *
|
49
|
+
callback = Proc.new do |scope, callback_args, callback_block|
|
50
|
+
ruby2js(scope, *callback_args, &callback_block)
|
50
51
|
end
|
51
52
|
@queue << [callback, args, block]
|
52
53
|
end
|
data/lib/wunderbar/sinatra.rb
CHANGED
@@ -15,7 +15,7 @@ module Wunderbar
|
|
15
15
|
|
16
16
|
if block
|
17
17
|
Wunderbar::Template::Html.evaluate('html.rb', self) do
|
18
|
-
_html(*args) { instance_eval
|
18
|
+
_html(*args) { instance_eval(&block) }
|
19
19
|
end
|
20
20
|
else
|
21
21
|
Wunderbar::Template::Html.evaluate('html.rb', self, *args)
|
@@ -31,7 +31,7 @@ module Wunderbar
|
|
31
31
|
|
32
32
|
if block
|
33
33
|
Wunderbar::Template::Xhtml.evaluate('xhtml.rb', self) do
|
34
|
-
_xhtml(*args) { instance_eval
|
34
|
+
_xhtml(*args) { instance_eval(&block) }
|
35
35
|
end
|
36
36
|
else
|
37
37
|
Wunderbar::Template::Xhtml.evaluate('xhtml.rb', self, *args)
|
@@ -277,9 +277,9 @@ unless Wunderbar.queue.empty?
|
|
277
277
|
pass unless task
|
278
278
|
|
279
279
|
if xhr_json
|
280
|
-
_json
|
280
|
+
_json(*task[1], &task[2])
|
281
281
|
else
|
282
|
-
_html
|
282
|
+
_html(*task[1], &task[2])
|
283
283
|
end
|
284
284
|
end
|
285
285
|
|
data/lib/wunderbar/version.rb
CHANGED
data/lib/wunderbar/websocket.rb
CHANGED
@@ -188,7 +188,7 @@ module Wunderbar
|
|
188
188
|
sock1.send('x',0)
|
189
189
|
sock1.close
|
190
190
|
end
|
191
|
-
channel.instance_eval
|
191
|
+
channel.instance_eval(&block)
|
192
192
|
rescue Exception => exception
|
193
193
|
channel._ :type=>:stderr, :line=>exception.inspect
|
194
194
|
exception.backtrace.each do |frame|
|
@@ -209,7 +209,7 @@ module Wunderbar
|
|
209
209
|
instance_eval &proc
|
210
210
|
else
|
211
211
|
sock1, sock2 = UNIXSocket.pair
|
212
|
-
submit
|
212
|
+
submit(&proc)
|
213
213
|
sleep 0.3 while sock2.recv(1) != 'x'
|
214
214
|
sock2.close
|
215
215
|
end
|
data/wunderbar.gemspec
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
# stub: wunderbar 1.0.
|
2
|
+
# stub: wunderbar 1.0.23 ruby lib
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "wunderbar"
|
6
|
-
s.version = "1.0.
|
6
|
+
s.version = "1.0.23"
|
7
7
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
9
9
|
s.require_paths = ["lib"]
|
10
10
|
s.authors = ["Sam Ruby"]
|
11
|
-
s.date = "2016-
|
11
|
+
s.date = "2016-07-30"
|
12
12
|
s.description = " Wunderbar makes it easy to produce valid HTML5, wellformed XHTML, Unicode\n (utf-8), consistently indented, readable applications.'\n"
|
13
13
|
s.email = "rubys@intertwingly.net"
|
14
14
|
s.files = ["COPYING", "README.md", "lib/wunderbar", "lib/wunderbar.rb", "lib/wunderbar/angularjs", "lib/wunderbar/angularjs.rb", "lib/wunderbar/angularjs/resource.rb", "lib/wunderbar/angularjs/route.rb", "lib/wunderbar/asset.rb", "lib/wunderbar/backtick.rb", "lib/wunderbar/bootstrap", "lib/wunderbar/bootstrap.rb", "lib/wunderbar/bootstrap/theme.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.rb", "lib/wunderbar/jquery/filter.rb", "lib/wunderbar/jquery/stupidtable.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/Markdown.Converter.js", "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/marked.min.js", "lib/wunderbar/vendor/polymer-v0.0.20131003.min.js", "lib/wunderbar/vendor/react-dom.min.js", "lib/wunderbar/vendor/react-with-addons.min.js", "lib/wunderbar/vendor/stupidtable.min.js", "lib/wunderbar/vendor/underscore-min.js", "lib/wunderbar/version.rb", "lib/wunderbar/websocket.rb", "wunderbar.gemspec"]
|
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.
|
4
|
+
version: 1.0.23
|
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-
|
11
|
+
date: 2016-07-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|