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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 6ff791771ff967eefdab5f35a76f510f2ae946b4
4
- data.tar.gz: a064e0884d969d4f436c9d0979a54b204e3c8e06
2
+ SHA256:
3
+ metadata.gz: b397a625366a33cd8036a0f3e8292124a282ba0e96767ef379550dfba3879cb3
4
+ data.tar.gz: 4a4a5cd8395e644a6fbc8e7a24ec3f45a2e5bdc0bda58a25b9206280a04b0deb
5
5
  SHA512:
6
- metadata.gz: 9c3dc5dc90df7c5779c95e3f84f5ed770ce4bc3a7f1f722cb2d15d180c3f57a2dbe726f926b63371a6ecdb8690103fc74067172d57ed06be0512b4203c3fad96
7
- data.tar.gz: c0a18626679ca71dde88e484544e62004ff61f103ecf2ed2f38a28b4e015a2ed688308e2c5ab0e0112576209bc12a0c25eaee84cfa3b05f77459bbf8993c16f3
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
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) && ignored_exception_classes.any? do |klass|
9
- exception.is_a?(klass)
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(*classes)
12
+ def ignore_exceptions(*arguments, &block)
14
13
  @ignored_exception_class_names ||= []
15
- [classes].flatten.each do |class_name|
16
- klass = class_name.is_a?(Class) ? class_name : class_name.to_s.presence.try(:constantize)
17
- raise("Invalid exception class: #{class_name.inspect}") unless klass.is_a?(Class) && (klass == Exception || (klass < Exception))
18
- @ignored_exception_class_names << klass.name
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', '< 5.2.0'
18
+ s.add_dependency 'activesupport', '>= 4.1.0', '< 7.0.0'
19
19
 
20
- s.add_development_dependency 'byebug', '>= 9.0.0', '< 10.0.0'
21
- s.add_development_dependency 'rake', '>= 12.0.0', '< 13.0.0'
22
- s.add_development_dependency 'rspec', '>= 3.5.0', '< 3.6.0'
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.1
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: 2017-05-26 00:00:00.000000000 Z
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: 5.2.0
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: 5.2.0
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: 10.0.0
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: 10.0.0
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: 13.0.0
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: 13.0.0
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.6.0
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.6.0
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
- rubyforge_project:
125
- rubygems_version: 2.0.14.1
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: []