cuvva_log 0.1.1 → 0.2.0

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: e8c256c0b317b2d1705ba6c0ab87c68ca9be0742
4
- data.tar.gz: b08b23ee272258f86b493c21efee5c1222c2e579
3
+ metadata.gz: 0bd7378f01d66b6a681e794724f2ee3785a08edf
4
+ data.tar.gz: 958324e423948843689e0cac2866bd3e49a1910e
5
5
  SHA512:
6
- metadata.gz: 7e3de01174a658e1ea53ab7e460caad935612e854fca40a7de54f8381e2e33fddac131b794cb832cd9b42586c97f3569636601b0e51b0e1da19ad663f001239f
7
- data.tar.gz: 7fa3a0ad51c279016d6826b8f9ced49706712554be984f3f81c6c615736782983dfb69e20e8f2245236b4b7aa9ef9bcb232537d8994d6b35b9e65f7c3024f40f
6
+ metadata.gz: bccf3402936a94223657131aaa9eca3b51401bf366a67fe1b5df20a710f0496684d6356ec7bd15bc5df75b96e0cc637a3fb5c30e1e815df7865136bbafbae810
7
+ data.tar.gz: a37741335070a1b75f4e4528ec12d951d40033eff05c62ff4b428fe030072da71df31acc87635fe8be248f380c888f8598aa9c34e1047c76f4c6d6e63cd28959
data/lib/cuvva_error.rb CHANGED
@@ -1,13 +1,8 @@
1
- require 'json'
2
-
3
1
  class CuvvaError < StandardError
4
- @@http_status_map = { }
5
-
6
2
  attr_accessor :code
7
3
  attr_accessor :reasons
8
4
  attr_accessor :meta
9
5
  attr_reader :stack
10
- attr_reader :http_status
11
6
 
12
7
  def initialize(*args)
13
8
  code, reasons, meta = args
@@ -21,23 +16,17 @@ class CuvvaError < StandardError
21
16
  @reasons = reasons
22
17
  @meta = meta
23
18
  @stack = caller
24
- @http_status = CuvvaError.http_status_map.has_key?(code) &&
25
- CuvvaError.http_status_map[code] ?
26
- CuvvaError.http_status_map[code] :
27
- 500
28
- end
29
-
30
- def to_json
31
- JSON.generate(to_hash)
32
19
  end
33
20
 
34
- def self.http_status_map
35
- @@http_status_map
21
+ def to_hash
22
+ {
23
+ code: self.code,
24
+ reasons: self.reasons ? self.reasons.to_hash : nil,
25
+ meta: self.meta ? self.meta.to_hash : nil,
26
+ }
36
27
  end
37
28
 
38
- private
39
-
40
- def to_hash
41
- { :code => self.code, :reasons => self.reasons, :meta => self.meta }
29
+ def to_json(*args)
30
+ to_hash.to_json(*args)
42
31
  end
43
32
  end
data/lib/cuvva_log.rb CHANGED
@@ -1,24 +1,34 @@
1
1
  require 'cuvva_error'
2
- require 'cuvva_log_handler'
2
+ require 'json'
3
3
 
4
4
  class Log
5
5
  ERROR_LEVELS = {
6
- :debug => 0,
7
- :info => 1,
8
- :warn => 2,
9
- :error => 3,
10
- :fatal => 4,
6
+ debug: 0,
7
+ info: 1,
8
+ warn: 2,
9
+ error: 3,
10
+ fatal: 4,
11
11
  }
12
12
 
13
- def self.get_level(level_name)
14
- ERROR_LEVELS[level_name]
13
+ @@conf_min_log_level = :info
14
+ @@conf_handlers = {}
15
+
16
+ def self.set_handler(*args)
17
+ if args.length == 1
18
+ handler = args[0]
19
+
20
+ for level in ERROR_LEVELS.keys
21
+ @@conf_handlers[level] = handler
22
+ end
23
+ else
24
+ level, handler = args
25
+ @@conf_handlers[level] = handler
26
+ end
15
27
  end
16
28
 
17
- @@min_log_level = get_level(:info)
18
- @@default_handler = LogHandler.new
19
- @@handlers = Hash[ [:debug, :info, :warn, :error, :fatal].collect do |a|
20
- [a, @@default_handler]
21
- end ]
29
+ def self.set_min_log_level(level)
30
+ @@conf_min_log_level = level
31
+ end
22
32
 
23
33
  def self.debug(*args)
24
34
  make_error(:debug, *args)
@@ -34,48 +44,39 @@ class Log
34
44
 
35
45
  def self.error(*args)
36
46
  make_error(:error, *args)
37
- end
47
+ end
38
48
 
39
49
  def self.fatal(*args)
40
50
  make_error(:fatal, *args)
41
51
  end
42
52
 
43
- def self.min_log_level
44
- @@min_log_level
45
- end
46
-
47
- def self.min_log_level=(log_level)
48
- @@min_log_level = get_level(log_level)
49
- end
53
+ private
50
54
 
51
- def self.set_http_statuses(error_descriptor)
52
- error_descriptor.each do |key, val|
53
- CuvvaError.http_status_map[key] = Integer(val[:httpStatus]) rescue 500
54
- end
55
+ def self.make_error(level, *args)
56
+ error = args[0].is_a?(CuvvaError) ? args[0] : CuvvaError.new(*args)
57
+ handle_error(level, error)
58
+ error
55
59
  end
56
60
 
57
- def self.set_handler(*args)
58
- if args.length == 1
59
- handler = args[0]
61
+ def self.handle_error(level, error)
62
+ handler = @@conf_handlers[level]
60
63
 
61
- for level in ERROR_LEVELS.keys
62
- set_handler(level, handler)
63
- end
64
+ if handler
65
+ handler.handle(level, error)
64
66
  else
65
- level, handler = args
66
- @@handlers[level] = handler
67
+ default_handler(level, error)
67
68
  end
68
69
  end
69
70
 
70
- private
71
+ def self.default_handler(level, error)
72
+ return if ERROR_LEVELS[level] < ERROR_LEVELS[@@conf_min_log_level]
71
73
 
72
- def self.handle_error(level, error)
73
- @@handlers[level].handle(level, error)
74
- end
74
+ error_string = "#{level}:#{JSON.generate(error)}"
75
75
 
76
- def self.make_error(level, *args)
77
- error = args[0].is_a?(CuvvaError) ? args[0] : CuvvaError.new(*args)
78
- handle_error(level, error)
79
- error
76
+ if [:warn, :error, :fatal].include?(level)
77
+ STDERR.puts error_string
78
+ else
79
+ puts error_string
80
+ end
80
81
  end
81
82
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cuvva_log
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jack Fransham
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-11 00:00:00.000000000 Z
11
+ date: 2015-10-01 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Super-simple logs for the Ruby-based Cuvva systems
14
14
  email: jack.fransham@cuvva.co
@@ -18,7 +18,6 @@ extra_rdoc_files: []
18
18
  files:
19
19
  - lib/cuvva_error.rb
20
20
  - lib/cuvva_log.rb
21
- - lib/cuvva_log_handler.rb
22
21
  homepage: https://github.com/cuvva/cuvva-log-ruby
23
22
  licenses:
24
23
  - MIT
@@ -39,7 +38,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
39
38
  version: '0'
40
39
  requirements: []
41
40
  rubyforge_project:
42
- rubygems_version: 2.4.8
41
+ rubygems_version: 2.4.6
43
42
  signing_key:
44
43
  specification_version: 4
45
44
  summary: Super-simple logs for the Ruby-based Cuvva systems
@@ -1,15 +0,0 @@
1
- require 'cuvva_log'
2
-
3
- class LogHandler
4
- def handle(level, error)
5
- return if Log.get_level(level) < Log.min_log_level
6
-
7
- error_string = "#{level}:#{error.to_json}"
8
-
9
- if [ :warn, :error, :fatal ].include?(level)
10
- STDERR.puts error_string
11
- else
12
- puts error_string
13
- end
14
- end
15
- end