logging 0.9.1 → 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +7 -0
- data/Rakefile +4 -2
- data/lib/logging.rb +1 -1
- data/lib/logging/repository.rb +2 -2
- data/lib/logging/utils.rb +35 -2
- data/test/setup.rb +3 -1
- data/test/test_utils.rb +24 -0
- metadata +2 -2
data/History.txt
CHANGED
data/Rakefile
CHANGED
@@ -16,11 +16,13 @@ PROJ.rdoc.dir = 'doc/rdoc'
|
|
16
16
|
#PROJ.rdoc.remote_dir = 'rdoc'
|
17
17
|
PROJ.rdoc.remote_dir = ''
|
18
18
|
PROJ.version = Logging::VERSION
|
19
|
-
PROJ.release_name = %q{
|
19
|
+
PROJ.release_name = %q{Meta Class Madness}
|
20
20
|
|
21
21
|
PROJ.exclude << %w[^tags$ ^tasks/archive ^coverage]
|
22
22
|
PROJ.rdoc.exclude << '^data'
|
23
|
-
|
23
|
+
|
24
|
+
PROJ.ann.email[:server] = 'smtp.gmail.com'
|
25
|
+
PROJ.ann.email[:port] = 587
|
24
26
|
|
25
27
|
depend_on 'flexmock'
|
26
28
|
depend_on 'lockfile'
|
data/lib/logging.rb
CHANGED
@@ -10,7 +10,7 @@ unless defined? Logging
|
|
10
10
|
module Logging
|
11
11
|
|
12
12
|
# :stopdoc:
|
13
|
-
VERSION = '0.9.
|
13
|
+
VERSION = '0.9.2'
|
14
14
|
LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
|
15
15
|
PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
|
16
16
|
WIN32 = %r/djgpp|(cyg|ms|bcc)win|mingw/ =~ RUBY_PLATFORM
|
data/lib/logging/repository.rb
CHANGED
data/lib/logging/utils.rb
CHANGED
@@ -45,8 +45,8 @@ class String
|
|
45
45
|
# call-seq:
|
46
46
|
# reduce( width, ellipses = '...' ) #=> string
|
47
47
|
#
|
48
|
-
# Reduce the size of the current string to the given _width_ by
|
49
|
-
# characters from the middle of
|
48
|
+
# Reduce the size of the current string to the given _width_ by removing
|
49
|
+
# characters from the middle of the string and replacing them with
|
50
50
|
# _ellipses_. If the _width_ is greater than the length of the string, the
|
51
51
|
# string is returned unchanged. If the _width_ is less than the length of
|
52
52
|
# the _ellipses_, then the _ellipses_ are returned.
|
@@ -69,4 +69,37 @@ class String
|
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
|
+
class Module
|
73
|
+
|
74
|
+
# call-seq:
|
75
|
+
# logger_name #=> string
|
76
|
+
#
|
77
|
+
# Returns a predictable logger name for the current module or class. If
|
78
|
+
# used within an anonymous class, the first non-anonymous class name will
|
79
|
+
# be used as the logger name. If used within a meta-class, the name of the
|
80
|
+
# actual class will be used as the logger name. If used within an
|
81
|
+
# anonymous module, the string 'anonymous' will be returned.
|
82
|
+
#
|
83
|
+
def logger_name
|
84
|
+
return name unless name.empty?
|
85
|
+
|
86
|
+
# check if this is a metaclass (or eigenclass)
|
87
|
+
if ancestors.include? Class
|
88
|
+
inspect =~ %r/#<Class:([^#>]+)>/
|
89
|
+
return $1
|
90
|
+
end
|
91
|
+
|
92
|
+
# see if we have a superclass
|
93
|
+
if respond_to? :superclass
|
94
|
+
return superclass.logger_name
|
95
|
+
end
|
96
|
+
|
97
|
+
# we are an anonymous module
|
98
|
+
::Logging.log_internal(-2) {
|
99
|
+
'cannot return a predictable, unique name for anonymous modules'
|
100
|
+
}
|
101
|
+
return 'anonymous'
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
72
105
|
# EOF
|
data/test/setup.rb
CHANGED
@@ -8,7 +8,9 @@ require 'rubygems'
|
|
8
8
|
require 'test/unit'
|
9
9
|
require 'fileutils'
|
10
10
|
require 'stringio'
|
11
|
-
|
11
|
+
begin
|
12
|
+
require 'turn'
|
13
|
+
rescue LoadError; end
|
12
14
|
|
13
15
|
# This line is needed for Ruby 1.9 -- hashes throw a "KeyError" in 1.9
|
14
16
|
# whereas they throw an "IndexError" in 1.8
|
data/test/test_utils.rb
CHANGED
@@ -84,6 +84,30 @@ module TestLogging
|
|
84
84
|
assert_equal '##', r
|
85
85
|
end
|
86
86
|
|
87
|
+
def test_logger_name
|
88
|
+
assert_equal 'Array', Array.logger_name
|
89
|
+
|
90
|
+
c = Class.new(Array)
|
91
|
+
assert_equal '', c.name
|
92
|
+
assert_equal 'Array', c.logger_name
|
93
|
+
|
94
|
+
meta = class << Array; self; end
|
95
|
+
assert_equal '', meta.name
|
96
|
+
assert_equal 'Array', meta.logger_name
|
97
|
+
|
98
|
+
m = Module.new
|
99
|
+
assert_equal '', m.name
|
100
|
+
assert_equal 'anonymous', m.logger_name
|
101
|
+
|
102
|
+
c = Class.new(::Logging::Logger)
|
103
|
+
assert_equal '', c.name
|
104
|
+
assert_equal 'Logging::Logger', c.logger_name
|
105
|
+
|
106
|
+
meta = class << ::Logging::Logger; self; end
|
107
|
+
assert_equal '', meta.name
|
108
|
+
assert_equal 'Logging::Logger', meta.logger_name
|
109
|
+
end
|
110
|
+
|
87
111
|
end # class TestUtils
|
88
112
|
end # module TestLogging
|
89
113
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logging
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Pease
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-09-03 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|