lumber 0.9.5 → 0.9.6

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/CHANGELOG CHANGED
@@ -1,3 +1,9 @@
1
+ 0.9.5
2
+ -----
3
+
4
+ add ability to define loggers by including a module <566c88c> [Matt Conway]
5
+ ruby 1.9 fix <db07d8f> [Matt Conway]
6
+
1
7
  0.9.4
2
8
  -----
3
9
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.9.5
1
+ 0.9.6
@@ -5,22 +5,9 @@ module Lumber
5
5
  module LoggerSupport
6
6
 
7
7
  def self.included(receiver)
8
- receiver.class_eval do
9
- class_inheritable_accessor :logger
10
- last_logger = nil
11
- name_parts = self.name.split("::")
12
- name_parts.insert(0, Lumber::BASE_LOGGER)
13
- name_parts.each_with_index do |part, i|
14
- partial = name_parts[0..i].join("::")
15
- last_logger = Log4r::Logger[partial]
16
- if ! last_logger
17
- last_logger = Log4r::Logger.new(partial)
18
- end
19
- end
20
- self.logger = last_logger
21
- end
8
+ Lumber.setup_logger_hierarchy(receiver.name, "#{Lumber::BASE_LOGGER}::#{receiver.name}")
22
9
  end
23
10
 
24
11
  end
25
-
12
+
26
13
  end
data/lib/lumber/lumber.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  require "socket"
2
2
 
3
+ require "active_support/core_ext/string/inflections"
4
+
3
5
  begin
4
6
  # rails(active_support) 2
5
7
  require "active_support/core_ext/duplicable"
@@ -72,23 +74,18 @@ module Lumber
72
74
  def self.setup_logger_hierarchy(class_name, class_logger_fullname)
73
75
  @@registered_loggers[class_name] = class_logger_fullname
74
76
 
75
- obj = nil
76
- names = class_name.split '::'
77
- names.each do |name|
78
- root ||= Object
79
- if root.const_defined?(name)
80
- obj = root.const_get(name)
81
- root = obj
82
- else
83
- obj = nil
84
- end
85
- end
77
+ begin
78
+ clazz = class_name.constantize
86
79
 
87
- if obj
88
- obj.class_eval do
89
- class_inheritable_accessor :logger
90
- self.logger = Log4r::Logger.new(class_logger_fullname)
80
+ if clazz.respond_to? :class_inheritable_accessor
81
+ clazz.class_eval do
82
+ class_inheritable_accessor :logger
83
+ self.logger = Log4r::Logger.new(class_logger_fullname)
84
+ end
91
85
  end
86
+
87
+ rescue NameError
88
+ # The class hasn't been defined yet. No problem, we've registered the logger for when the class is created.
92
89
  end
93
90
  end
94
91
 
@@ -98,9 +95,9 @@ module Lumber
98
95
  # for classes as they get defined.
99
96
  def self.register_inheritance_handler()
100
97
  return if defined?(Object.inherited_with_lumber_log4r)
101
-
98
+
102
99
  Object.class_eval do
103
-
100
+
104
101
  class << self
105
102
 
106
103
  def inherited_with_lumber_log4r(subclass)
@@ -115,7 +112,7 @@ module Lumber
115
112
  Lumber.derive_lumber_logger(subclass)
116
113
  end
117
114
  end
118
-
115
+
119
116
  alias_method_chain :inherited, :lumber_log4r
120
117
 
121
118
  end
@@ -126,7 +123,6 @@ module Lumber
126
123
 
127
124
  def self.add_lumber_logger(clazz, logger_name)
128
125
  clazz.class_eval do
129
-
130
126
  class_inheritable_accessor :logger
131
127
  self.logger = Log4r::Logger.new(logger_name)
132
128
 
@@ -153,7 +149,7 @@ module Lumber
153
149
  parent_logger_name = parent.logger.fullname rescue ''
154
150
  parent_is_registered = @@registered_loggers.values.find {|v| parent_logger_name.index(v) == 0}
155
151
  if parent_is_registered && parent.method_defined?(:logger=)
156
- clazz.logger = Log4r::Logger.new("#{parent_logger_name}::#{clazz.name}")
152
+ clazz.logger = Log4r::Logger.new("#{parent_logger_name}::#{clazz.name.nil? ? 'anonymous' : clazz.name.split('::').last}")
157
153
  break
158
154
  end
159
155
  parent = parent.superclass
@@ -2,8 +2,15 @@ require 'test_helper.rb'
2
2
 
3
3
  class LoggerSupportTest < Test::Unit::TestCase
4
4
 
5
+ def setup
6
+ root = "#{File.dirname(__FILE__)}/.."
7
+ Lumber.init(:root => root,
8
+ :env => 'test',
9
+ :config_file => "#{root}/generators/lumber/templates/log4r.yml",
10
+ :log_file => "/tmp/lumber-test.log")
11
+ end
12
+
5
13
  def teardown
6
- Log4r::Logger::Repository.instance.loggers.clear
7
14
  LoggerSupportTest.constants.grep(/^Foo/).each do |c|
8
15
  LoggerSupportTest.send(:remove_const, c)
9
16
  end
@@ -11,10 +18,10 @@ class LoggerSupportTest < Test::Unit::TestCase
11
18
 
12
19
  should "create logger for chain" do
13
20
  class Foo; include Lumber::LoggerSupport; end
14
- assert_equal Log4r::Logger["rails::LoggerSupportTest::Foo"], Foo.logger
15
- assert_equal Log4r::Logger["rails::LoggerSupportTest"], Foo.logger.parent
16
- assert_equal Log4r::Logger["rails"], Foo.logger.parent.parent
17
- assert_equal Log4r::Logger.root, Foo.logger.parent.parent.parent
21
+ class Bar < Foo; end;
22
+ assert_equal Foo.logger, Log4r::Logger["rails::LoggerSupportTest::Foo"]
23
+ assert_equal Bar.logger, Log4r::Logger["rails::LoggerSupportTest::Foo::Bar"]
24
+ assert_equal Bar.logger.parent, Log4r::Logger["rails::LoggerSupportTest::Foo"]
18
25
  end
19
26
 
20
27
  should "have a logger instance accessible from an instance method" do
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lumber
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 55
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
8
  - 9
8
- - 5
9
- version: 0.9.5
9
+ - 6
10
+ version: 0.9.6
10
11
  platform: ruby
11
12
  authors:
12
13
  - Matt Conway
@@ -14,7 +15,7 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-07-01 00:00:00 -04:00
18
+ date: 2010-10-12 00:00:00 -04:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
@@ -25,6 +26,7 @@ dependencies:
25
26
  requirements:
26
27
  - - ">="
27
28
  - !ruby/object:Gem::Version
29
+ hash: 3
28
30
  segments:
29
31
  - 0
30
32
  version: "0"
@@ -38,6 +40,7 @@ dependencies:
38
40
  requirements:
39
41
  - - ">="
40
42
  - !ruby/object:Gem::Version
43
+ hash: 3
41
44
  segments:
42
45
  - 0
43
46
  version: "0"
@@ -51,6 +54,7 @@ dependencies:
51
54
  requirements:
52
55
  - - ">="
53
56
  - !ruby/object:Gem::Version
57
+ hash: 3
54
58
  segments:
55
59
  - 0
56
60
  version: "0"
@@ -96,6 +100,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
96
100
  requirements:
97
101
  - - ">="
98
102
  - !ruby/object:Gem::Version
103
+ hash: 3
99
104
  segments:
100
105
  - 0
101
106
  version: "0"
@@ -104,6 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
109
  requirements:
105
110
  - - ">="
106
111
  - !ruby/object:Gem::Version
112
+ hash: 3
107
113
  segments:
108
114
  - 0
109
115
  version: "0"