multiple_devices_logger 3.0.1 → 3.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 +5 -5
- data/README.mdown +6 -0
- data/VERSION +1 -1
- data/lib/multiple_devices_logger.rb +1 -1
- data/lib/multiple_devices_logger/ignore_exceptions.rb +17 -8
- data/multiple_devices_logger.gemspec +4 -4
- metadata +32 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b397a625366a33cd8036a0f3e8292124a282ba0e96767ef379550dfba3879cb3
|
4
|
+
data.tar.gz: 4a4a5cd8395e644a6fbc8e7a24ec3f45a2e5bdc0bda58a25b9206280a04b0deb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd57dd3ffc5a03e57fb036928c898b046dad34af3e4193a674de5a8d4cad91a3d6e8d4e5694814ecbf95d846ed9c5fb3ed65116090d1353b77d7a3390a448c7d
|
7
|
+
data.tar.gz: 1ddb9e5f28ab72cf30719cefc6e107548a933e971c7fd68ebe93ce4630bed3932d54b936e4853a1bfa2bab4bb4cee9bac798de79e4db9b451ddd088906aa3879
|
data/README.mdown
CHANGED
@@ -94,6 +94,12 @@ the device:
|
|
94
94
|
logger.add_device(STDERR, :debug, ignore_exceptions: [IOError, ArgumentError])
|
95
95
|
```
|
96
96
|
|
97
|
+
In addition to classes, A lambda can be given to ignore exception, example:
|
98
|
+
|
99
|
+
```ruby
|
100
|
+
logger.ignore_exceptions(ArgumentError, -> (e) { e.message =~ /404/ }
|
101
|
+
```
|
102
|
+
|
97
103
|
## Executing test suite
|
98
104
|
|
99
105
|
This project is fully tested with [Rspec 3](http://github.com/rspec/rspec).
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.0
|
1
|
+
3.2.0
|
@@ -51,7 +51,7 @@ class MultipleDevicesLogger < Logger
|
|
51
51
|
raise ArgumentError.new("Formatter must respond to #call, #{formatter.inspect} given") unless formatter.respond_to?(:call)
|
52
52
|
end
|
53
53
|
ignored_exceptions = options.delete(:ignore_exceptions)
|
54
|
-
device = LogDevice.new(device, options) unless device.is_a?(Logger::LogDevice)
|
54
|
+
device = LogDevice.new(device, **options) unless device.is_a?(Logger::LogDevice)
|
55
55
|
device.formatter = formatter
|
56
56
|
device.ignore_exceptions(ignored_exceptions) if ignored_exceptions.present?
|
57
57
|
if severities.empty?
|
@@ -5,17 +5,22 @@ class MultipleDevicesLogger
|
|
5
5
|
extend ActiveSupport::Concern
|
6
6
|
|
7
7
|
def exception_ignored?(exception)
|
8
|
-
exception.is_a?(Exception)
|
9
|
-
|
10
|
-
end
|
8
|
+
return false unless exception.is_a?(Exception)
|
9
|
+
ignored_exception_classes.any? { |klass| exception.is_a?(klass) } || ignored_exceptions_procs.any? { |proc| proc.call(exception) }
|
11
10
|
end
|
12
11
|
|
13
|
-
def ignore_exceptions(*
|
12
|
+
def ignore_exceptions(*arguments, &block)
|
14
13
|
@ignored_exception_class_names ||= []
|
15
|
-
[
|
16
|
-
|
17
|
-
|
18
|
-
|
14
|
+
@ignored_exceptions_procs ||= []
|
15
|
+
@ignored_exceptions_procs << Proc.new(&block) if block_given?
|
16
|
+
[arguments].flatten.each do |argument|
|
17
|
+
if argument.respond_to?(:call)
|
18
|
+
@ignored_exceptions_procs << argument
|
19
|
+
else
|
20
|
+
klass = argument.is_a?(Class) ? argument : argument.to_s.presence.try(:constantize)
|
21
|
+
raise("Invalid exception class: #{argument.inspect}") unless klass.is_a?(Class) && (klass == Exception || (klass < Exception))
|
22
|
+
@ignored_exception_class_names << klass.name
|
23
|
+
end
|
19
24
|
end
|
20
25
|
@ignored_exception_class_names.uniq!
|
21
26
|
nil
|
@@ -25,6 +30,10 @@ class MultipleDevicesLogger
|
|
25
30
|
(@ignored_exception_class_names || []).map(&:constantize)
|
26
31
|
end
|
27
32
|
|
33
|
+
def ignored_exceptions_procs
|
34
|
+
@ignored_exceptions_procs || []
|
35
|
+
end
|
36
|
+
|
28
37
|
end
|
29
38
|
|
30
39
|
end
|
@@ -15,9 +15,9 @@ Gem::Specification.new do |s|
|
|
15
15
|
|
16
16
|
s.required_ruby_version = '>= 2.0.0'
|
17
17
|
|
18
|
-
s.add_dependency 'activesupport', '>= 4.1.0', '<
|
18
|
+
s.add_dependency 'activesupport', '>= 4.1.0', '< 7.0.0'
|
19
19
|
|
20
|
-
s.add_development_dependency 'byebug', '>= 9.0.0', '<
|
21
|
-
s.add_development_dependency 'rake', '>= 12.0.0', '<
|
22
|
-
s.add_development_dependency 'rspec', '>= 3.5.0', '< 3.
|
20
|
+
s.add_development_dependency 'byebug', '>= 9.0.0', '< 12.0.0'
|
21
|
+
s.add_development_dependency 'rake', '>= 12.0.0', '< 14.0.0'
|
22
|
+
s.add_development_dependency 'rspec', '>= 3.5.0', '< 3.11.0'
|
23
23
|
end
|
metadata
CHANGED
@@ -1,95 +1,95 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: multiple_devices_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexis Toulotte
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-06-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 4.1.0
|
20
|
-
- - <
|
20
|
+
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
22
|
+
version: 7.0.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 4.1.0
|
30
|
-
- - <
|
30
|
+
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
32
|
+
version: 7.0.0
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: byebug
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- -
|
37
|
+
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: 9.0.0
|
40
|
-
- - <
|
40
|
+
- - "<"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version:
|
42
|
+
version: 12.0.0
|
43
43
|
type: :development
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- -
|
47
|
+
- - ">="
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: 9.0.0
|
50
|
-
- - <
|
50
|
+
- - "<"
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version:
|
52
|
+
version: 12.0.0
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: rake
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
56
56
|
requirements:
|
57
|
-
- -
|
57
|
+
- - ">="
|
58
58
|
- !ruby/object:Gem::Version
|
59
59
|
version: 12.0.0
|
60
|
-
- - <
|
60
|
+
- - "<"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version:
|
62
|
+
version: 14.0.0
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: 12.0.0
|
70
|
-
- - <
|
70
|
+
- - "<"
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version:
|
72
|
+
version: 14.0.0
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: rspec
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
76
76
|
requirements:
|
77
|
-
- -
|
77
|
+
- - ">="
|
78
78
|
- !ruby/object:Gem::Version
|
79
79
|
version: 3.5.0
|
80
|
-
- - <
|
80
|
+
- - "<"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 3.
|
82
|
+
version: 3.11.0
|
83
83
|
type: :development
|
84
84
|
prerelease: false
|
85
85
|
version_requirements: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: 3.5.0
|
90
|
-
- - <
|
90
|
+
- - "<"
|
91
91
|
- !ruby/object:Gem::Version
|
92
|
-
version: 3.
|
92
|
+
version: 3.11.0
|
93
93
|
description: Logger that support many and different devices for specified levels
|
94
94
|
email: al@alweb.org
|
95
95
|
executables: []
|
@@ -106,24 +106,23 @@ homepage: https://github.com/alexistoulotte/multiple_devices_logger
|
|
106
106
|
licenses:
|
107
107
|
- MIT
|
108
108
|
metadata: {}
|
109
|
-
post_install_message:
|
109
|
+
post_install_message:
|
110
110
|
rdoc_options: []
|
111
111
|
require_paths:
|
112
112
|
- lib
|
113
113
|
required_ruby_version: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: 2.0.0
|
118
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
119
|
requirements:
|
120
|
-
- -
|
120
|
+
- - ">="
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
version: '0'
|
123
123
|
requirements: []
|
124
|
-
|
125
|
-
|
126
|
-
signing_key:
|
124
|
+
rubygems_version: 3.2.15
|
125
|
+
signing_key:
|
127
126
|
specification_version: 4
|
128
127
|
summary: Logger than can have many devices
|
129
128
|
test_files: []
|