debuglog 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/History.txt +8 -0
- data/LICENCE +19 -0
- data/README.txt +47 -0
- data/Rakefile +1 -0
- data/TODO.txt +11 -0
- data/debuglog.gemspec +29 -0
- data/doc/debuglog.markdown +278 -262
- data/etc/example.rb +24 -0
- data/lib/debuglog.rb +17 -17
- data/lib/debuglog/auto.rb +2 -2
- data/lib/debuglog/manual.rb +177 -177
- data/lib/debuglog/version.rb +3 -0
- data/test/_setup.rb +13 -14
- data/test/debuglog-auto.rb +79 -66
- data/test/debuglog-manual-1.rb +41 -39
- data/test/debuglog-manual-2.rb +29 -27
- metadata +62 -45
- data/README +0 -38
data/test/debuglog-auto.rb
CHANGED
@@ -1,66 +1,79 @@
|
|
1
|
-
D "Debuglog auto configuration" do
|
2
|
-
|
3
|
-
|
4
|
-
DebugLog.
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
T { kernel_methods.include? :
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
Eq log_text_lines.shift, "
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
str
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
end
|
65
|
-
|
66
|
-
|
1
|
+
D "Debuglog auto configuration" do
|
2
|
+
|
3
|
+
D.<< {
|
4
|
+
DebugLog.send :wipe_slate_clean_for_testing
|
5
|
+
DebugLog.autoconfigure
|
6
|
+
}
|
7
|
+
|
8
|
+
D "Debuglog and DebugLog are the same thing" do
|
9
|
+
Id Debuglog, DebugLog
|
10
|
+
end
|
11
|
+
|
12
|
+
D "Methods are defined in Kernel" do
|
13
|
+
kernel_methods = Kernel.instance_methods
|
14
|
+
T { kernel_methods.include? :debug }
|
15
|
+
T { kernel_methods.include? :trace }
|
16
|
+
T { kernel_methods.include? :time }
|
17
|
+
end
|
18
|
+
|
19
|
+
D "debug" do
|
20
|
+
debug "abc123"
|
21
|
+
T :debuglog, /abc123/, "debug.log"
|
22
|
+
debug -189
|
23
|
+
T :debuglog, /-189/, "debug.log"
|
24
|
+
D "multiple arguments" do
|
25
|
+
x = 5
|
26
|
+
debug "The value of x is ", x, "!"
|
27
|
+
T :debuglog, /The value of x is 5!/, "debug.log"
|
28
|
+
end
|
29
|
+
D "multi-line text" do
|
30
|
+
text = "I must go down to the seas again\nTo the lonely sea and the sky\nAnd all I want is a tall ship\nAnd a star to steer her by\n -- John Masefield"
|
31
|
+
debug text
|
32
|
+
log_text_lines = File.read("debug.log").split("\n").last(5)
|
33
|
+
# The text in the log file should be indented to look good.
|
34
|
+
Mt log_text_lines.shift, /\[\d\d\.\d\] I must go down to the seas again$/
|
35
|
+
Eq log_text_lines.shift, " To the lonely sea and the sky"
|
36
|
+
Eq log_text_lines.shift, " And all I want is a tall ship"
|
37
|
+
Eq log_text_lines.shift, " And a star to steer her by"
|
38
|
+
Eq log_text_lines.shift, " -- John Masefield"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
D "trace" do
|
43
|
+
D "array" do
|
44
|
+
foo = [1,2,3]
|
45
|
+
trace :foo, binding
|
46
|
+
T :debuglog, /foo == \[1, 2, 3\]/, "debug.log"
|
47
|
+
end
|
48
|
+
D "string" do
|
49
|
+
str = "blah"
|
50
|
+
trace :str, binding
|
51
|
+
T :debuglog, /str == "blah"/, "debug.log"
|
52
|
+
end
|
53
|
+
D "truncate output" do
|
54
|
+
D "output that is too long" do
|
55
|
+
str = "x" * 100
|
56
|
+
trace :str, binding, 30
|
57
|
+
T :debuglog, /str == "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx\.\.\./, "debug.log"
|
58
|
+
end
|
59
|
+
D "output that is not too long" do
|
60
|
+
str = "x" * 10
|
61
|
+
trace :str, binding, 30
|
62
|
+
T :debuglog, /str == "xxxxxxxxxx"$/, "debug.log"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
D "different formats" do
|
66
|
+
# not really interested in this feature at the moment
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
D "time" do
|
71
|
+
time('sum to 10') { 1+2+3+4+5+6+7+8+9+10 }
|
72
|
+
T :debuglog, /sum to 10: .* sec/, "debug.log"
|
73
|
+
D "return value of block is accessible" do
|
74
|
+
sum = time('sum') { 1 + 1 }
|
75
|
+
Eq sum, 2
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
data/test/debuglog-manual-1.rb
CHANGED
@@ -1,39 +1,41 @@
|
|
1
|
-
D "DebugLog manual configuration (successful)" do
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
E(NoMethodError) {
|
13
|
-
E(NoMethodError) {
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
E(NoMethodError) {
|
36
|
-
E(NoMethodError) {
|
37
|
-
|
38
|
-
|
39
|
-
end
|
1
|
+
D "DebugLog manual configuration (successful)" do
|
2
|
+
|
3
|
+
D.< { DebugLog.send :wipe_slate_clean_for_testing }
|
4
|
+
|
5
|
+
D ":debug => :my_debug, :filename => 'xyz.txt'" do
|
6
|
+
Debuglog.configure(:debug => :my_debug, :filename => 'xyz.txt')
|
7
|
+
D "my_debug method works" do
|
8
|
+
my_debug "abc123"
|
9
|
+
T :debuglog, /abc123/, "xyz.txt"
|
10
|
+
end
|
11
|
+
D "debug, trace and time methods are not defined" do
|
12
|
+
E(NoMethodError) { debug "abc123" }
|
13
|
+
E(NoMethodError) { trace :x, binding }
|
14
|
+
E(NoMethodError) { time('task') { :foo } }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
D ":trace => :my_trace, :time => :my_time" do
|
19
|
+
Debuglog.configure(:trace => :my_trace, :time => :my_time)
|
20
|
+
D "my_trace and my_time methods work" do
|
21
|
+
foo = :chorus
|
22
|
+
my_trace "foo", binding
|
23
|
+
xT :debuglog, /foo == :chorus/, "debug.log"
|
24
|
+
my_time('blah') { :dotdotdot }
|
25
|
+
T :debuglog, /blah: .* sec/, "debug.log"
|
26
|
+
end
|
27
|
+
D "debug method not defined" do
|
28
|
+
E(NoMethodError) { debug "..." }
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
D "empty configuration" do
|
33
|
+
Debuglog.configure({})
|
34
|
+
D "debug, trace and time methods don't work" do
|
35
|
+
E(NoMethodError) { debug "abc123" }
|
36
|
+
E(NoMethodError) { trace :x, binding }
|
37
|
+
E(NoMethodError) { time('task') { :foo } }
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
data/test/debuglog-manual-2.rb
CHANGED
@@ -1,27 +1,29 @@
|
|
1
|
-
D "DebugLog manual configuration (unsuccessful)" do
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
def Kernel.
|
12
|
-
def Kernel.
|
13
|
-
|
14
|
-
E(DebugLog::Error) { DebugLog.configure(:
|
15
|
-
E(DebugLog::Error) { DebugLog.configure(:
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
E(
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
end
|
1
|
+
D "DebugLog manual configuration (unsuccessful)" do
|
2
|
+
|
3
|
+
D.< { DebugLog.send :wipe_slate_clean_for_testing }
|
4
|
+
|
5
|
+
D "clash with existing :debug method" do
|
6
|
+
def Kernel.debug() :foo end
|
7
|
+
E(DebugLog::Error) { DebugLog.autoconfigure }
|
8
|
+
end
|
9
|
+
|
10
|
+
D "clash with custom methods" do
|
11
|
+
def Kernel.my_debug() :foo end
|
12
|
+
def Kernel.my_trace() :foo end
|
13
|
+
def Kernel.my_time() :foo end
|
14
|
+
E(DebugLog::Error) { DebugLog.configure(:debug => :my_debug) }
|
15
|
+
E(DebugLog::Error) { DebugLog.configure(:trace => :my_trace) }
|
16
|
+
E(DebugLog::Error) { DebugLog.configure(:time => :my_time) }
|
17
|
+
end
|
18
|
+
|
19
|
+
D "calling methods without having configured -> error" do
|
20
|
+
# At this point DebugLog is not configured.
|
21
|
+
E(NameError) { debug }
|
22
|
+
E(DebugLog::Error) { DebugLog.call_method(:debug, "...") }
|
23
|
+
end
|
24
|
+
|
25
|
+
D "specifying unwritable log file -> error" do
|
26
|
+
E(DebugLog::Error) { DebugLog.configure(:filename => '/fodsfw/fgsg/e/debug.log') }
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
metadata
CHANGED
@@ -1,75 +1,92 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: debuglog
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 1
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
version: 1.0.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- Gavin Sinclair
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
12
|
+
date: 2012-01-06 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: &2169395720 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *2169395720
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: whitestone
|
27
|
+
requirement: &2169395240 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *2169395240
|
36
|
+
description: ! " require 'debuglog' and record debugging information (including
|
37
|
+
variable traces\n and timing information) to the file debug.log -- cheap and
|
38
|
+
easy.\n"
|
39
|
+
email:
|
40
|
+
- gsinclair@gmail.com
|
23
41
|
executables: []
|
24
|
-
|
25
42
|
extensions: []
|
26
|
-
|
27
43
|
extra_rdoc_files: []
|
28
|
-
|
29
|
-
|
44
|
+
files:
|
45
|
+
- .gitignore
|
46
|
+
- Gemfile
|
47
|
+
- History.txt
|
48
|
+
- LICENCE
|
49
|
+
- README.txt
|
50
|
+
- Rakefile
|
51
|
+
- TODO.txt
|
52
|
+
- debuglog.gemspec
|
53
|
+
- doc/debuglog.markdown
|
54
|
+
- etc/example.rb
|
55
|
+
- lib/debuglog.rb
|
30
56
|
- lib/debuglog/auto.rb
|
31
57
|
- lib/debuglog/manual.rb
|
32
|
-
- lib/debuglog.rb
|
33
|
-
- README
|
58
|
+
- lib/debuglog/version.rb
|
34
59
|
- test/_setup.rb
|
35
60
|
- test/debuglog-auto.rb
|
36
61
|
- test/debuglog-manual-1.rb
|
37
62
|
- test/debuglog-manual-2.rb
|
38
|
-
- doc/debuglog.markdown
|
39
|
-
has_rdoc: true
|
40
63
|
homepage: http://gsinclair.github.com/debuglog.html
|
41
64
|
licenses: []
|
42
|
-
|
43
65
|
post_install_message:
|
44
66
|
rdoc_options: []
|
45
|
-
|
46
|
-
require_paths:
|
67
|
+
require_paths:
|
47
68
|
- lib
|
48
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
69
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
49
70
|
none: false
|
50
|
-
requirements:
|
51
|
-
- -
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
|
54
|
-
|
55
|
-
version: "0"
|
56
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ! '>='
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 1.8.6
|
75
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
57
76
|
none: false
|
58
|
-
requirements:
|
59
|
-
- -
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
|
62
|
-
- 0
|
63
|
-
version: "0"
|
77
|
+
requirements:
|
78
|
+
- - ! '>='
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '0'
|
64
81
|
requirements: []
|
65
|
-
|
66
|
-
|
67
|
-
rubygems_version: 1.3.7
|
82
|
+
rubyforge_project: ''
|
83
|
+
rubygems_version: 1.8.10
|
68
84
|
signing_key:
|
69
85
|
specification_version: 3
|
70
86
|
summary: Zero-conf debug.log file with 'debug', 'trace' and 'time' methods
|
71
|
-
test_files:
|
87
|
+
test_files:
|
72
88
|
- test/_setup.rb
|
73
89
|
- test/debuglog-auto.rb
|
74
90
|
- test/debuglog-manual-1.rb
|
75
91
|
- test/debuglog-manual-2.rb
|
92
|
+
has_rdoc: false
|
data/README
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
debuglog: zero-conf debug.log file for simple and hassle-free debugging
|
2
|
-
|
3
|
-
Synopsis
|
4
|
-
|
5
|
-
Debuglog gives you debug, trace and time methods that write their output to
|
6
|
-
the file ./debug.log.
|
7
|
-
|
8
|
-
require 'debuglog' # or require 'debuglog/auto'
|
9
|
-
|
10
|
-
debug "Message..."
|
11
|
-
trace :x, binding
|
12
|
-
time('Task') { action }
|
13
|
-
|
14
|
-
You can change the names of the methods and the filename.
|
15
|
-
|
16
|
-
require 'debuglog/manual'
|
17
|
-
|
18
|
-
DebugLog.configure(
|
19
|
-
:debug => :my_debug,
|
20
|
-
:trace => :my_trace,
|
21
|
-
:time => :my_time,
|
22
|
-
:filename => 'log/xyz.log'
|
23
|
-
)
|
24
|
-
|
25
|
-
my_debug "Message..."
|
26
|
-
my_trace :x, binding
|
27
|
-
my_time('Task') { action }
|
28
|
-
|
29
|
-
In either case, the log file will look something like this:
|
30
|
-
|
31
|
-
DebugLog -- 2010-07-25 18:58:22 +1000
|
32
|
-
-------------------------------------
|
33
|
-
[00.3] Message...
|
34
|
-
[00.5] x == 5
|
35
|
-
[00.6] Task: 1.0831 sec
|
36
|
-
|
37
|
-
|
38
|
-
See http://gsinclair.github.com/debuglog.html for full details.
|