multiple_devices_logger 3.0.1 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
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: []