sappho-basics 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.
@@ -18,8 +18,7 @@ module Sappho
18
18
  'info' => Logger::INFO,
19
19
  'warn' => Logger::WARN,
20
20
  'error' => Logger::ERROR,
21
- 'fatal' => Logger::FATAL,
22
- 'unknown' => Logger::UNKNOWN
21
+ 'fatal' => Logger::FATAL
23
22
  }
24
23
  LOG_DETAIL = {
25
24
  'message' => proc { |severity, datetime, progname, message| "#{message}\n" }
@@ -35,18 +34,18 @@ module Sappho
35
34
  @log.formatter = LOG_DETAIL[detail] if LOG_DETAIL.has_key?(detail)
36
35
  end
37
36
 
38
- def info message
37
+ def debug message
39
38
  @mutex.synchronize do
40
- @log.info message
39
+ @log.debug message
41
40
  $stdout.flush
42
- end if @log.info?
41
+ end if @log.debug?
43
42
  end
44
43
 
45
- def debug message
44
+ def info message
46
45
  @mutex.synchronize do
47
- @log.debug message
46
+ @log.info message
48
47
  $stdout.flush
49
- end if @log.debug?
48
+ end if @log.info?
50
49
  end
51
50
 
52
51
  def warn message
@@ -64,6 +63,14 @@ module Sappho
64
63
  end if @log.error?
65
64
  end
66
65
 
66
+ def fatal error
67
+ @mutex.synchronize do
68
+ @log.fatal "fatal error! #{error.message}"
69
+ error.backtrace.each { |error| @log.fatal error }
70
+ $stdout.flush
71
+ end if @log.fatal?
72
+ end
73
+
67
74
  def debug?
68
75
  @log.debug?
69
76
  end
@@ -0,0 +1,46 @@
1
+ # See https://github.com/sappho/sappho-basics/wiki for project documentation.
2
+ # This software is licensed under the GNU Affero General Public License, version 3.
3
+ # See http://www.gnu.org/licenses/agpl.html for full details of the license terms.
4
+ # Copyright 2012 Andrew Heald.
5
+
6
+ require 'singleton'
7
+ require 'sappho-basics/auto_flush_log'
8
+
9
+ module Sappho
10
+
11
+ class ModuleRegister
12
+
13
+ include Singleton
14
+
15
+ def initialize
16
+ @modules = { :log => AutoFlushLog.instance }
17
+ end
18
+
19
+ def set name, mod
20
+ @modules[name] = mod
21
+ end
22
+
23
+ def get name
24
+ @modules[name]
25
+ end
26
+
27
+ def set? name
28
+ @modules.has_key? name
29
+ end
30
+
31
+ def shutdown
32
+ each { |mod| mod.shutdown }
33
+ end
34
+
35
+ def each
36
+ @modules.each do |name, mod|
37
+ begin
38
+ yield mod
39
+ rescue
40
+ end
41
+ end
42
+ end
43
+
44
+ end
45
+
46
+ end
@@ -5,7 +5,7 @@
5
5
 
6
6
  module Sappho
7
7
  NAME = 'sappho-basics'
8
- VERSION = '0.0.3'
8
+ VERSION = '0.0.4'
9
9
  AUTHORS = ['Andrew Heald']
10
10
  EMAILS = ['andrew@heald.co.uk']
11
11
  HOMEPAGE = 'https://github.com/sappho/sappho-basics/wiki'
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: 25
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 3
10
- version: 0.0.3
9
+ - 4
10
+ version: 0.0.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andrew Heald
@@ -45,6 +45,7 @@ extra_rdoc_files: []
45
45
 
46
46
  files:
47
47
  - lib/sappho-basics/auto_flush_log.rb
48
+ - lib/sappho-basics/module_register.rb
48
49
  - lib/sappho-basics/version.rb
49
50
  homepage: https://github.com/sappho/sappho-basics/wiki
50
51
  licenses: []