wunderbar 0.8.2 → 0.8.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.
- data/lib/wunderbar/html-methods.rb +9 -0
- data/lib/wunderbar/logger.rb +54 -0
- data/lib/wunderbar/version.rb +1 -1
- data/lib/wunderbar.rb +1 -0
- data/test/test_html_markup.rb +19 -0
- data/test/test_logger.rb +76 -0
- data/wunderbar.gemspec +5 -5
- metadata +10 -6
|
@@ -163,9 +163,11 @@ class HtmlMarkup
|
|
|
163
163
|
block.call
|
|
164
164
|
rescue ::Exception => exception
|
|
165
165
|
text = exception.inspect
|
|
166
|
+
Wunderbar.warn text
|
|
166
167
|
exception.backtrace.each do |frame|
|
|
167
168
|
next if frame =~ %r{/wunderbar/}
|
|
168
169
|
next if frame =~ %r{/gems/.*/builder/}
|
|
170
|
+
Wunderbar.warn " #{frame}"
|
|
169
171
|
text += "\n #{frame}"
|
|
170
172
|
end
|
|
171
173
|
|
|
@@ -202,6 +204,13 @@ class HtmlMarkup
|
|
|
202
204
|
@x.declare!(*args)
|
|
203
205
|
end
|
|
204
206
|
|
|
207
|
+
def _coffeescript(text)
|
|
208
|
+
require 'coffee-script'
|
|
209
|
+
_script CoffeeScript.compile(text)
|
|
210
|
+
rescue LoadError
|
|
211
|
+
_script text, :lang => 'text/coffeescript'
|
|
212
|
+
end
|
|
213
|
+
|
|
205
214
|
def target!
|
|
206
215
|
@x.target!
|
|
207
216
|
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
require 'logger'
|
|
2
|
+
|
|
3
|
+
module Wunderbar
|
|
4
|
+
def self.logger
|
|
5
|
+
return @logger if @logger
|
|
6
|
+
@logger = Logger.new(STDOUT)
|
|
7
|
+
@logger.level = Logger::WARN
|
|
8
|
+
@logger.formatter = proc { |severity, datetime, progname, msg|
|
|
9
|
+
"_#{severity} #{msg}\n"
|
|
10
|
+
}
|
|
11
|
+
@logger
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def self.log_level=(level)
|
|
15
|
+
return unless level
|
|
16
|
+
|
|
17
|
+
case level.to_s.downcase
|
|
18
|
+
when 'debug'; logger.level = Logger::DEBUG
|
|
19
|
+
when 'info'; logger.level = Logger::INFO
|
|
20
|
+
when 'warn'; logger.level = Logger::WARN
|
|
21
|
+
when 'error'; logger.level = Logger::ERROR
|
|
22
|
+
when 'fatal'; logger.level = Logger::FATAL
|
|
23
|
+
else
|
|
24
|
+
warn "Invalid log_level specified: #{level}"
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# convenience methods
|
|
29
|
+
def self.debug(*args, &block)
|
|
30
|
+
logger.debug *args, &block
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def self.info(*args, &block)
|
|
34
|
+
logger.info *args, &block
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def self.warn(*args, &block)
|
|
38
|
+
logger.warn *args, &block
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def self.error(*args, &block)
|
|
42
|
+
logger.error *args, &block
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def self.fatal(*args, &block)
|
|
46
|
+
logger.fatal *args, &block
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
Wunderbar.log_level = :debug if ARGV.delete '--debug'
|
|
51
|
+
Wunderbar.log_level = :info if ARGV.delete '--info'
|
|
52
|
+
Wunderbar.log_level = :warn if ARGV.delete '--warn'
|
|
53
|
+
Wunderbar.log_level = :error if ARGV.delete '--error'
|
|
54
|
+
Wunderbar.log_level = :fatal if ARGV.delete '--fatal'
|
data/lib/wunderbar/version.rb
CHANGED
data/lib/wunderbar.rb
CHANGED
data/test/test_html_markup.rb
CHANGED
|
@@ -5,6 +5,12 @@ require 'wunderbar'
|
|
|
5
5
|
class HtmlMarkupTest < Test::Unit::TestCase
|
|
6
6
|
def setup
|
|
7
7
|
$x = nil # until this hack is removed html-methods.rb
|
|
8
|
+
@original_log_level = Wunderbar.logger.level
|
|
9
|
+
Wunderbar.log_level = :fatal
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def teardown
|
|
13
|
+
Wunderbar.logger.level = @original_log_level
|
|
8
14
|
end
|
|
9
15
|
|
|
10
16
|
def test_html
|
|
@@ -117,4 +123,17 @@ class HtmlMarkupTest < Test::Unit::TestCase
|
|
|
117
123
|
x.declare! :DOCTYPE, 'html'
|
|
118
124
|
assert_equal %{<!DOCTYPE "html">\n}, x.target!
|
|
119
125
|
end
|
|
126
|
+
|
|
127
|
+
begin
|
|
128
|
+
require 'coffee-script'
|
|
129
|
+
|
|
130
|
+
def test_coffeescript
|
|
131
|
+
x = HtmlMarkup.new
|
|
132
|
+
x.html {_coffeescript 'alert "foo"'}
|
|
133
|
+
assert_match %r[<script\slang="text/javascript">\s+\(function\(\)\s
|
|
134
|
+
\{\s+alert\("foo"\);\s+\}\).call\(this\);\s+</script>]x, x.target!
|
|
135
|
+
end
|
|
136
|
+
rescue LoadError
|
|
137
|
+
end
|
|
138
|
+
|
|
120
139
|
end
|
data/test/test_logger.rb
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
require 'rubygems'
|
|
3
|
+
require 'wunderbar'
|
|
4
|
+
require 'logger'
|
|
5
|
+
|
|
6
|
+
class TestLogger
|
|
7
|
+
attr_accessor :messages
|
|
8
|
+
def initialize
|
|
9
|
+
@messages = Hash.new {|hash, key| hash[key] = Array.new}
|
|
10
|
+
@original_logger = Wunderbar.logger
|
|
11
|
+
logger = self
|
|
12
|
+
Wunderbar.instance_eval {@logger = logger}
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def method_missing(method, *args)
|
|
16
|
+
if [:debug, :info, :warn, :error, :fatal].include? method
|
|
17
|
+
@messages[method] << args.first
|
|
18
|
+
else
|
|
19
|
+
@original_logger.send(method, *args)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def teardown
|
|
24
|
+
logger = @original_logger
|
|
25
|
+
Wunderbar.instance_eval {@logger = logger}
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
class LoggerTest < Test::Unit::TestCase
|
|
30
|
+
def setup
|
|
31
|
+
@logger = TestLogger.new
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def teardown
|
|
35
|
+
@logger.teardown
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def test_debug
|
|
39
|
+
Wunderbar.debug 'Sneezy'
|
|
40
|
+
assert @logger.messages[:debug].include? 'Sneezy'
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def test_info
|
|
44
|
+
Wunderbar.info 'Sleepy'
|
|
45
|
+
assert @logger.messages[:info].include? 'Sleepy'
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def test_warn
|
|
49
|
+
Wunderbar.warn 'Dopey'
|
|
50
|
+
assert @logger.messages[:warn].include? 'Dopey'
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def test_error
|
|
54
|
+
Wunderbar.error 'Doc'
|
|
55
|
+
assert @logger.messages[:error].include? 'Doc'
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def test_fatal
|
|
59
|
+
Wunderbar.fatal 'Happy'
|
|
60
|
+
assert @logger.messages[:fatal].include? 'Happy'
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def test_loglevel
|
|
64
|
+
assert Wunderbar.logger.level == Logger::WARN
|
|
65
|
+
Wunderbar.log_level = 'debug'
|
|
66
|
+
assert Wunderbar.logger.level == Logger::DEBUG
|
|
67
|
+
Wunderbar.log_level = 'info'
|
|
68
|
+
assert Wunderbar.logger.level == Logger::INFO
|
|
69
|
+
Wunderbar.log_level = 'warn'
|
|
70
|
+
assert Wunderbar.logger.level == Logger::WARN
|
|
71
|
+
Wunderbar.log_level = 'error'
|
|
72
|
+
assert Wunderbar.logger.level == Logger::ERROR
|
|
73
|
+
Wunderbar.log_level = 'fatal'
|
|
74
|
+
assert Wunderbar.logger.level == Logger::FATAL
|
|
75
|
+
end
|
|
76
|
+
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.8.
|
|
5
|
+
s.version = "0.8.3"
|
|
6
6
|
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
|
8
8
|
s.authors = ["Sam Ruby"]
|
|
9
|
-
s.date = "2012-02-
|
|
9
|
+
s.date = "2012-02-05"
|
|
10
10
|
s.description = " Provides a number of globals, helper methods, and monkey patches which\n simplify the generation of HTML and the development of CGI scripts.\n"
|
|
11
11
|
s.email = "rubys@intertwingly.net"
|
|
12
|
-
s.extra_rdoc_files = ["COPYING", "README", "lib/wunderbar.rb", "lib/wunderbar/builder.rb", "lib/wunderbar/cgi-methods.rb", "lib/wunderbar/environment.rb", "lib/wunderbar/html-methods.rb", "lib/wunderbar/installation.rb", "lib/wunderbar/job-control.rb", "lib/wunderbar/version.rb"]
|
|
13
|
-
s.files = ["COPYING", "README", "Rakefile", "lib/wunderbar.rb", "lib/wunderbar/builder.rb", "lib/wunderbar/cgi-methods.rb", "lib/wunderbar/environment.rb", "lib/wunderbar/html-methods.rb", "lib/wunderbar/installation.rb", "lib/wunderbar/job-control.rb", "lib/wunderbar/version.rb", "test/test_html_markup.rb", "
|
|
12
|
+
s.extra_rdoc_files = ["COPYING", "README", "lib/wunderbar.rb", "lib/wunderbar/builder.rb", "lib/wunderbar/cgi-methods.rb", "lib/wunderbar/environment.rb", "lib/wunderbar/html-methods.rb", "lib/wunderbar/installation.rb", "lib/wunderbar/job-control.rb", "lib/wunderbar/logger.rb", "lib/wunderbar/version.rb"]
|
|
13
|
+
s.files = ["COPYING", "README", "Rakefile", "lib/wunderbar.rb", "lib/wunderbar/builder.rb", "lib/wunderbar/cgi-methods.rb", "lib/wunderbar/environment.rb", "lib/wunderbar/html-methods.rb", "lib/wunderbar/installation.rb", "lib/wunderbar/job-control.rb", "lib/wunderbar/logger.rb", "lib/wunderbar/version.rb", "test/test_builder.rb", "test/test_html_markup.rb", "test/test_logger.rb", "wunderbar.gemspec", "Manifest"]
|
|
14
14
|
s.homepage = "http://github.com/rubys/wunderbar"
|
|
15
15
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Wunderbar", "--main", "README"]
|
|
16
16
|
s.require_paths = ["lib"]
|
|
17
17
|
s.rubyforge_project = "wunderbar"
|
|
18
18
|
s.rubygems_version = "1.8.15"
|
|
19
19
|
s.summary = "HTML Generator and CGI application support"
|
|
20
|
-
s.test_files = ["test/test_html_markup.rb", "test/test_builder.rb"]
|
|
20
|
+
s.test_files = ["test/test_logger.rb", "test/test_html_markup.rb", "test/test_builder.rb"]
|
|
21
21
|
|
|
22
22
|
if s.respond_to? :specification_version then
|
|
23
23
|
s.specification_version = 3
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: wunderbar
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 57
|
|
5
5
|
prerelease:
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 8
|
|
9
|
-
-
|
|
10
|
-
version: 0.8.
|
|
9
|
+
- 3
|
|
10
|
+
version: 0.8.3
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- Sam Ruby
|
|
@@ -15,7 +15,7 @@ autorequire:
|
|
|
15
15
|
bindir: bin
|
|
16
16
|
cert_chain: []
|
|
17
17
|
|
|
18
|
-
date: 2012-02-
|
|
18
|
+
date: 2012-02-05 00:00:00 Z
|
|
19
19
|
dependencies:
|
|
20
20
|
- !ruby/object:Gem::Dependency
|
|
21
21
|
name: builder
|
|
@@ -61,6 +61,7 @@ extra_rdoc_files:
|
|
|
61
61
|
- lib/wunderbar/html-methods.rb
|
|
62
62
|
- lib/wunderbar/installation.rb
|
|
63
63
|
- lib/wunderbar/job-control.rb
|
|
64
|
+
- lib/wunderbar/logger.rb
|
|
64
65
|
- lib/wunderbar/version.rb
|
|
65
66
|
files:
|
|
66
67
|
- COPYING
|
|
@@ -73,11 +74,13 @@ files:
|
|
|
73
74
|
- lib/wunderbar/html-methods.rb
|
|
74
75
|
- lib/wunderbar/installation.rb
|
|
75
76
|
- lib/wunderbar/job-control.rb
|
|
77
|
+
- lib/wunderbar/logger.rb
|
|
76
78
|
- lib/wunderbar/version.rb
|
|
79
|
+
- test/test_builder.rb
|
|
77
80
|
- test/test_html_markup.rb
|
|
78
|
-
-
|
|
81
|
+
- test/test_logger.rb
|
|
79
82
|
- wunderbar.gemspec
|
|
80
|
-
-
|
|
83
|
+
- Manifest
|
|
81
84
|
homepage: http://github.com/rubys/wunderbar
|
|
82
85
|
licenses: []
|
|
83
86
|
|
|
@@ -118,5 +121,6 @@ signing_key:
|
|
|
118
121
|
specification_version: 3
|
|
119
122
|
summary: HTML Generator and CGI application support
|
|
120
123
|
test_files:
|
|
124
|
+
- test/test_logger.rb
|
|
121
125
|
- test/test_html_markup.rb
|
|
122
126
|
- test/test_builder.rb
|