dedicated_logger 0.0.3 → 0.0.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 24f5acbfe3a2a1c8d5098ac2bca5cb3948ba63ef
4
- data.tar.gz: a4b95d9ef7068fd492c2291c7b3c91a877ade2d0
3
+ metadata.gz: fb97931c134fb06563ce55d12adc128231daea07
4
+ data.tar.gz: d2660f9c14f370d1585a7d216ff4df6d68ae9749
5
5
  SHA512:
6
- metadata.gz: e3bef859f0910ff3f90c8106bb0a677e003c34cbc1dd5dd9718166a756183b88f1bc4dffe5d8028e739fca4cf33c39a5da5f8e32839850fa807dadb99b5ccd94
7
- data.tar.gz: 847a71cbdc3bdf1cf016583b7e3349212e2b9651b64f7a1bfd2099ae7a47823a234ec76dca1f5c2ce47a82d3d9819542948ebb48069a870f88c08601b21b9bee
6
+ metadata.gz: 338b104449fd44e1971fb1e7da758fc63b5073c6da3d8fe3374d185f8d7869c84e7eecfc49f7a6adba838c2eeca85abf3b6668d9915cbdcf9b6247bbd3e66175
7
+ data.tar.gz: ad48f6fc7c59c7543dafcc3a0645d12a318bb7cdb6e1f433b7e9b03a1bc79093d0468cb364d7c686c142b2338d6edd4464f3135f5c214a6b1db088eb49b082da
data/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ /log/*.log
2
+ *.swp
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.1.3
data/README.md CHANGED
@@ -6,7 +6,11 @@ Used for any ruby class, perhaps running as background tasks, in desperate need
6
6
  Installation
7
7
  -----------
8
8
 
9
- TODO
9
+ gem install dedicated_logger
10
+
11
+ or by including this line in your Gemfile
12
+
13
+ gem "dedicated_logger", :git => "git://github.com/tskorupa/dedicated_logger.git"
10
14
 
11
15
  Usage
12
16
  -----
@@ -14,6 +18,7 @@ Usage
14
18
  require 'dedicated_logger'
15
19
 
16
20
  class Foo
21
+ include DedicatedLogger
17
22
 
18
23
  def self.bar
19
24
  logger.info "info from class method"
@@ -29,19 +34,10 @@ Usage
29
34
  logger.fatal "fatal"
30
35
  end
31
36
 
32
- private
33
-
34
- def logger
35
- self.class.logger
36
- end
37
-
38
- def self.logger
39
- @logger ||= DedicatedLogger.new(self, "test")
40
- end
41
37
  end
42
38
 
43
39
  TODO
44
40
  ================
45
41
 
46
- * Add tests
47
- * convert to acts_as_* module
42
+ * write docs on how to use acts_as_* module
43
+ * show how to specify a custom logger file and/or filepath
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'dedicated_logger'
5
- s.version = '0.0.3'
5
+ s.version = '0.0.4'
6
6
  s.description = %q{Output formatter for the ruby Logger class}
7
7
  s.summary = %q{Standardize the logged output for background tasks and store it in a dedicated file}
8
8
  s.authors = ['Tomasz Skorupa']
@@ -11,4 +11,5 @@ Gem::Specification.new do |s|
11
11
 
12
12
  s.required_ruby_version = '>= 1.9.3'
13
13
  s.add_development_dependency 'rake'
14
+ s.add_dependency 'activesupport'
14
15
  end
@@ -0,0 +1,30 @@
1
+ require 'logger'
2
+ require 'fileutils'
3
+
4
+ module DedicatedLogger
5
+ class Base < Logger
6
+
7
+ def initialize logger_name, filepath, options={}
8
+ @logger_name = logger_name
9
+ filename = File.basename filepath
10
+ dir_path = File.dirname(File.absolute_path(filepath))
11
+
12
+ FileUtils.mkdir_p(dir_path) unless File.exists? dir_path
13
+
14
+ super File.join(dir_path, filename)
15
+ end
16
+
17
+ def format_message severity, timestamp, progname, msg
18
+ msg = "#{timestamp.strftime("%Y-%m-%d %H:%M:%S")} #{@logger_name} [#{$$}] #{severity}: #{msg}\n"
19
+
20
+ if %w(WARN ERROR FATAL).include?(severity.to_s)
21
+ STDERR.puts(msg)
22
+ else
23
+ STDOUT.puts(msg)
24
+ end
25
+
26
+ msg
27
+ end
28
+
29
+ end
30
+ end
@@ -1,27 +1,26 @@
1
- require 'logger'
2
- require 'fileutils'
1
+ require 'active_support/concern'
2
+ require 'active_support/inflector'
3
+ require 'dedicated_logger/base'
3
4
 
4
- class DedicatedLogger < Logger
5
+ module DedicatedLogger
6
+ extend ActiveSupport::Concern
5
7
 
6
- def initialize logger_name, filename, options={}
7
- @logger_name = logger_name
8
-
9
- log_dir = File.absolute_path(options[:log_dir] || "log")
10
- FileUtils.mkdir_p(log_dir) unless File.exists? log_dir
11
-
12
- super File.join(log_dir, "#{filename}.log")
8
+ included do
9
+ def logger
10
+ self.class.logger
11
+ end
13
12
  end
14
13
 
15
- def format_message severity, timestamp, progname, msg
16
- msg = "#{timestamp.strftime("%Y-%m-%d %H:%M:%S")} #{@logger_name} [#{$$}] #{severity}: #{msg}\n"
14
+ module ClassMethods
15
+ def acts_as_dedicated_logger options={}
16
+ name = options[:name] || self.name.to_s.underscore
17
+ filepath = options[:filepath] || File.join("log", "#{name}.log")
18
+ @logger = DedicatedLogger::Base.new(name, filepath)
19
+ end
17
20
 
18
- if %w(WARN ERROR FATAL).include?(severity.to_s)
19
- STDERR.puts(msg)
20
- else
21
- STDOUT.puts(msg)
21
+ def logger
22
+ @logger || acts_as_dedicated_logger
22
23
  end
23
24
 
24
- msg
25
25
  end
26
-
27
26
  end
data/test/test_base.rb ADDED
@@ -0,0 +1,14 @@
1
+ require 'minitest/autorun'
2
+ require 'dedicated_logger/base'
3
+
4
+ class BaseTest < Minitest::Test
5
+
6
+ def setup
7
+ @logger = DedicatedLogger::Base.new("TEST", "test/log/test.log")
8
+ end
9
+
10
+ def test_instantiation
11
+ assert_kind_of DedicatedLogger::Base, @logger
12
+ end
13
+
14
+ end
@@ -1,14 +1,45 @@
1
1
  require 'minitest/autorun'
2
2
  require 'dedicated_logger'
3
3
 
4
- class DedicatedLoggerTest < MiniTest::Unit::TestCase
4
+ class DedicatedLoggerTest < Minitest::Test
5
5
 
6
- def setup
7
- @logger = DedicatedLogger.new("TEST", "test")
6
+ def test_dummy_instance_does_not_define_logger_method
7
+ assert_raises(NoMethodError) do
8
+ dummy_class.new.logger
9
+ end
8
10
  end
9
11
 
10
- def test_instantiation
11
- assert_kind_of DedicatedLogger, @logger
12
+ def test_dummy_class_does_not_define_logger_method
13
+ assert_raises(NoMethodError) do
14
+ dummy_class.logger
15
+ end
16
+ end
17
+
18
+ def test_dummy_instance_with_module_defines_logger_method
19
+ assert_kind_of DedicatedLogger::Base, dummy_class_with_module.new.logger
20
+ end
21
+
22
+ def test_dummy_class_with_module_defines_logger_method
23
+ assert_kind_of DedicatedLogger::Base, dummy_class_with_module.logger
24
+ end
25
+
26
+ private
27
+
28
+ def dummy_class
29
+ Class.new do
30
+ def self.name
31
+ "Dummy"
32
+ end
33
+ end
34
+ end
35
+
36
+ def dummy_class_with_module
37
+ Class.new do
38
+ include DedicatedLogger
39
+ def self.name
40
+ "DummyWithModule"
41
+ end
42
+ end
12
43
  end
13
44
 
14
45
  end
metadata CHANGED
@@ -1,27 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dedicated_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomasz Skorupa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-20 00:00:00.000000000 Z
11
+ date: 2014-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
25
39
  - !ruby/object:Gem::Version
26
40
  version: '0'
27
41
  description: Output formatter for the ruby Logger class
@@ -30,11 +44,15 @@ executables: []
30
44
  extensions: []
31
45
  extra_rdoc_files: []
32
46
  files:
47
+ - ".gitignore"
48
+ - ".ruby-version"
33
49
  - LICENSE
34
50
  - README.md
35
51
  - Rakefile
36
52
  - dedicated_logger.gemspec
37
53
  - lib/dedicated_logger.rb
54
+ - lib/dedicated_logger/base.rb
55
+ - test/test_base.rb
38
56
  - test/test_dedicated_logger.rb
39
57
  homepage:
40
58
  licenses: []
@@ -45,17 +63,17 @@ require_paths:
45
63
  - lib
46
64
  required_ruby_version: !ruby/object:Gem::Requirement
47
65
  requirements:
48
- - - '>='
66
+ - - ">="
49
67
  - !ruby/object:Gem::Version
50
68
  version: 1.9.3
51
69
  required_rubygems_version: !ruby/object:Gem::Requirement
52
70
  requirements:
53
- - - '>='
71
+ - - ">="
54
72
  - !ruby/object:Gem::Version
55
73
  version: '0'
56
74
  requirements: []
57
75
  rubyforge_project:
58
- rubygems_version: 2.0.14
76
+ rubygems_version: 2.2.2
59
77
  signing_key:
60
78
  specification_version: 4
61
79
  summary: Standardize the logged output for background tasks and store it in a dedicated