structured_warnings 0.3.0 → 0.4.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
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 9d6ae32c5d463eb0efeba1057728863feb4d4dcbce402934626f3423efb545b6
|
4
|
+
data.tar.gz: a9f5fd53fa29a245d0190a27d4743225ea02af03fdcd04865d14625a3c9bfdc4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3e0245fce924551f6881319642edba0685abe1a16b4e572b8532789c4188b9a529a9fd629125c10e27e0dbccc7bee1caef394fd690775e62de0769763d112d98
|
7
|
+
data.tar.gz: 6625b90aca3e9c0245608bdb3b81c4fb882c9f564a40abc29aaa598909e93a08ac2a99bdd4921284561c9253125f0d68e3191d92a3fb81068b36d30c246570d6
|
data/README.md
CHANGED
@@ -1,9 +1,5 @@
|
|
1
1
|
# StructuredWarnings
|
2
2
|
|
3
|
-
> **Disclaimer:** This is an experimental reimplementation of structured
|
4
|
-
> warnings, based on Ruby 2.4's new warning module. This is not yet ready for
|
5
|
-
> prime time.
|
6
|
-
|
7
3
|
This is an implementation of Daniel Berger's [proposal of structured warnings
|
8
4
|
for Ruby](https://web.archive.org/web/20140328021259/http://www.oreillynet.com/ruby/blog/2008/02/structured_warnings_now.html).
|
9
5
|
They provide dynamic suppression and activation, as well as, an inheritance
|
@@ -5,7 +5,7 @@ class StructuredWarnings::Test::Warner < StructuredWarnings::Warner
|
|
5
5
|
# Overrides the public interface of StructuredWarnings::Warner. This
|
6
6
|
# method always returns nil to avoid warnings on stdout during assert_warn
|
7
7
|
# and assert_no_warn blocks.
|
8
|
-
def format(warning, message, call_stack)
|
8
|
+
def format(warning, message, options, call_stack)
|
9
9
|
given_warnings << warning.new(message)
|
10
10
|
nil
|
11
11
|
end
|
@@ -5,11 +5,15 @@
|
|
5
5
|
class StructuredWarnings::Warner
|
6
6
|
# Warner.new.format(StructuredWarning::DeprecationWarning, "more info..", caller)
|
7
7
|
# # => "demo.rb:5 : more info.. (StructuredWarning::DeprecationWarning)"
|
8
|
-
def format(warning, message, stack)
|
8
|
+
def format(warning, message, options, stack)
|
9
9
|
frame = stack.shift
|
10
10
|
# This file contains the backwards compatibility code for Ruby 2.3 and
|
11
11
|
# lower, let's skip it
|
12
12
|
frame = stack.shift if frame.include? 'lib/structured_warnings/kernel.rb'
|
13
|
-
|
13
|
+
|
14
|
+
# Handle introduced uplevel introduced in Ruby 2.5
|
15
|
+
frame = stack.shift(options[:uplevel]).last if options[:uplevel]
|
16
|
+
|
17
|
+
"#{frame}: #{message} (#{warning})\n"
|
14
18
|
end
|
15
19
|
end
|
@@ -46,23 +46,24 @@ module StructuredWarnings::Warning
|
|
46
46
|
warning = first.class
|
47
47
|
message = first.message
|
48
48
|
|
49
|
-
|
50
|
-
warning =
|
51
|
-
if caller.shift.include? 'lib/structured_warnings/kernel.rb'
|
52
|
-
StructuredWarnings::StandardWarning
|
53
|
-
else
|
54
|
-
StructuredWarnings::BuiltInWarning
|
55
|
-
end
|
49
|
+
elsif caller.shift.include? 'lib/structured_warnings/kernel.rb'
|
50
|
+
warning = StructuredWarnings::StandardWarning
|
56
51
|
message = first.to_s
|
52
|
+
|
53
|
+
else
|
54
|
+
warning = StructuredWarnings::BuiltInWarning
|
55
|
+
message = first.to_s.split(':', 4).last[1..-2]
|
57
56
|
end
|
58
57
|
|
58
|
+
options = args.first.is_a?(Hash) ? args.shift : {}
|
59
|
+
|
59
60
|
# If args is not empty, user passed an incompatible set of arguments.
|
60
61
|
# Maybe somebody else is overriding warn as well and knows, what to do.
|
61
62
|
# Better do nothing in this case. See #5
|
62
63
|
return super unless args.empty?
|
63
64
|
|
64
65
|
if warning.active?
|
65
|
-
output = StructuredWarnings.warner.format(warning, message, caller(1))
|
66
|
+
output = StructuredWarnings.warner.format(warning, message, options, caller(1))
|
66
67
|
super(output) unless output.nil? or output.to_s.empty?
|
67
68
|
end
|
68
69
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: structured_warnings
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gregor Schmidt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -107,8 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
107
|
- !ruby/object:Gem::Version
|
108
108
|
version: '0'
|
109
109
|
requirements: []
|
110
|
-
|
111
|
-
rubygems_version: 2.6.10
|
110
|
+
rubygems_version: 3.0.6
|
112
111
|
signing_key:
|
113
112
|
specification_version: 4
|
114
113
|
summary: Provides structured warnings for Ruby, using an exception-like interface
|