sappho-basics 0.0.7 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
@@ -11,8 +11,6 @@ module Sappho
|
|
11
11
|
|
12
12
|
class AutoFlushLog
|
13
13
|
|
14
|
-
include Singleton
|
15
|
-
|
16
14
|
LOG_LEVELS = {
|
17
15
|
'debug' => Logger::DEBUG,
|
18
16
|
'info' => Logger::INFO,
|
@@ -24,23 +22,11 @@ module Sappho
|
|
24
22
|
'message' => proc { |severity, datetime, progname, message| "#{message}\n" },
|
25
23
|
'test' => proc { |severity, datetime, progname, message| "#{severity} #{message}\n" }
|
26
24
|
}
|
27
|
-
@@file = nil
|
28
|
-
|
29
|
-
def AutoFlushLog.file file
|
30
|
-
@@file = file
|
31
|
-
end
|
32
25
|
|
33
|
-
def initialize
|
26
|
+
def initialize file, level, detail
|
34
27
|
@mutex = Mutex.new
|
35
|
-
|
36
|
-
filename = ENV['application.log.filename']
|
37
|
-
mode = File.exists?(filename) ? 'a' : 'w' if filename
|
38
|
-
@@file = filename ? File.open(filename, mode) : $stdout
|
39
|
-
end
|
40
|
-
@log = Logger.new @@file
|
41
|
-
level = ENV['application.log.level']
|
28
|
+
@log = Logger.new file
|
42
29
|
@log.level = LOG_LEVELS.has_key?(level) ? LOG_LEVELS[level] : Logger::INFO
|
43
|
-
detail = ENV['application.log.detail']
|
44
30
|
@log.formatter = LOG_DETAIL[detail] if LOG_DETAIL.has_key?(detail)
|
45
31
|
end
|
46
32
|
|
@@ -87,6 +73,27 @@ module Sappho
|
|
87
73
|
|
88
74
|
end
|
89
75
|
|
76
|
+
class ApplicationAutoFlushLog < AutoFlushLog
|
77
|
+
|
78
|
+
include Singleton
|
79
|
+
|
80
|
+
@@file = nil
|
81
|
+
|
82
|
+
def AutoFlushLog.file file
|
83
|
+
@@file = file
|
84
|
+
end
|
85
|
+
|
86
|
+
def initialize
|
87
|
+
unless @@file
|
88
|
+
filename = ENV['application.log.filename']
|
89
|
+
mode = File.exists?(filename) ? 'a' : 'w' if filename
|
90
|
+
@@file = filename ? File.open(filename, mode) : $stdout
|
91
|
+
end
|
92
|
+
super @@file, ENV['application.log.level'], ENV['application.log.detail']
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
96
|
+
|
90
97
|
module LogUtilities
|
91
98
|
|
92
99
|
def hexString bytes
|
@@ -10,10 +10,8 @@ module Sappho
|
|
10
10
|
|
11
11
|
class ModuleRegister
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
def initialize
|
16
|
-
@modules = { :log => AutoFlushLog.instance }
|
13
|
+
def initialize modules = {}
|
14
|
+
@modules = modules
|
17
15
|
end
|
18
16
|
|
19
17
|
def set name, mod
|
@@ -34,14 +32,28 @@ module Sappho
|
|
34
32
|
|
35
33
|
def each
|
36
34
|
@modules.each do |name, mod|
|
37
|
-
|
38
|
-
yield mod
|
39
|
-
|
40
|
-
|
35
|
+
if mod.instance_of? ModuleRegister
|
36
|
+
mod.each { |mod| yield mod }
|
37
|
+
else
|
38
|
+
begin
|
39
|
+
yield mod
|
40
|
+
rescue
|
41
|
+
# do nothing here - modules must report if they need to
|
42
|
+
end
|
41
43
|
end
|
42
44
|
end
|
43
45
|
end
|
44
46
|
|
45
47
|
end
|
46
48
|
|
49
|
+
class ApplicationModuleRegister < ModuleRegister
|
50
|
+
|
51
|
+
include Singleton
|
52
|
+
|
53
|
+
def initialize
|
54
|
+
super :log => ApplicationAutoFlushLog.instance
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
47
59
|
end
|
@@ -13,13 +13,13 @@ class AutoFlushLogTest < Test::Unit::TestCase
|
|
13
13
|
|
14
14
|
def test_logging
|
15
15
|
file = StringIO.new
|
16
|
-
Sappho::
|
16
|
+
Sappho::ApplicationAutoFlushLog.file file
|
17
17
|
assert_raises NoMethodError do
|
18
|
-
Sappho::
|
18
|
+
Sappho::ApplicationAutoFlushLog.new
|
19
19
|
end
|
20
20
|
ENV['application.log.level'] = 'debug'
|
21
21
|
ENV['application.log.detail'] = 'test'
|
22
|
-
log = Sappho::
|
22
|
+
log = Sappho::ApplicationAutoFlushLog.instance
|
23
23
|
assert log.debug?
|
24
24
|
log.debug 'Test 1'
|
25
25
|
log.info 'Test 2'
|
@@ -10,38 +10,45 @@ class ModuleRegisterTest < Test::Unit::TestCase
|
|
10
10
|
|
11
11
|
def test_module_register
|
12
12
|
assert_raises NoMethodError do
|
13
|
-
Sappho::
|
13
|
+
Sappho::ApplicationModuleRegister.new
|
14
14
|
end
|
15
|
-
modules = Sappho::
|
15
|
+
modules = Sappho::ApplicationModuleRegister.instance
|
16
16
|
assert_nil modules.get(:missing)
|
17
17
|
assert !modules.set?(:missing)
|
18
18
|
assert modules.set?(:log)
|
19
|
-
assert_instance_of Sappho::
|
19
|
+
assert_instance_of Sappho::ApplicationAutoFlushLog, modules.get(:log)
|
20
20
|
test1 = TestModule.new
|
21
21
|
test2 = TestModule.new
|
22
|
+
test3 = TestModule.new
|
23
|
+
test4 = TestModule.new
|
24
|
+
test5 = Sappho::ModuleRegister.new
|
25
|
+
test5.set :test3, test3
|
26
|
+
test5.set :test4, test4
|
22
27
|
modules.set :test1, test1
|
23
28
|
modules.set :test2, test2
|
24
29
|
modules.set :test1, test1
|
30
|
+
modules.set :test5, test5
|
25
31
|
assert_equal test1, modules.get(:test1)
|
26
32
|
assert_equal test2, modules.get(:test2)
|
33
|
+
assert_equal test5, modules.get(:test5)
|
27
34
|
assert modules.set?(:test1)
|
28
35
|
assert modules.set?(:test2)
|
36
|
+
assert !modules.set?(:test4)
|
29
37
|
assert test1.alive
|
30
38
|
assert test2.alive
|
39
|
+
assert test3.alive
|
40
|
+
assert test4.alive
|
31
41
|
modules.shutdown
|
32
42
|
assert !test1.alive
|
33
43
|
assert !test2.alive
|
34
|
-
|
44
|
+
assert !test3.alive
|
45
|
+
assert !test4.alive
|
46
|
+
assert_instance_of Sappho::ApplicationAutoFlushLog, modules.get(:log)
|
35
47
|
assert_equal test1, modules.get(:test1)
|
36
|
-
|
37
|
-
|
38
|
-
test2.alive = true
|
48
|
+
test4.alive = true
|
49
|
+
modules.set :notmod, 42
|
39
50
|
modules.shutdown
|
40
|
-
assert !
|
41
|
-
assert !test2.alive
|
42
|
-
assert_instance_of Sappho::AutoFlushLog, modules.get(:log)
|
43
|
-
assert_equal test1, modules.get(:test1)
|
44
|
-
assert_equal test2, modules.get(:test2)
|
51
|
+
assert !test4.alive
|
45
52
|
end
|
46
53
|
|
47
54
|
class TestModule
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sappho-basics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 0.0.7
|
10
|
+
version: 0.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andrew Heald
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-03-
|
18
|
+
date: 2012-03-16 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: rake
|