format_exception 0.2.2 → 0.3.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 +4 -4
- data/README.md +3 -1
- data/lib/format_exception.rb +84 -2
- data/lib/format_exception/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ffe2b381b1536f380b63639ec159f1464dd17b74
|
4
|
+
data.tar.gz: 465db21e56eb05d16147b8f55aff078850821b0d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6855f0be228cc57688decd3d9ccb4c74e8687d26c42eac23cedc772c4570552dff449cde14fbba05cfbea252befc4f5bbb9b0012e92d1c491b73883b2a55a69f
|
7
|
+
data.tar.gz: b3beeb426b4cd48d962de0bf441a7d11d60d4f087545048ce0dda33494c0b98d272dbd80a44dbc8eecd170c26803dd90b91f52f7a7d6d2b7eca57125cbef1e2b
|
data/README.md
CHANGED
@@ -1,10 +1,12 @@
|
|
1
|
+
[](http://badge.fury.io/rb/format_exception) [](https://travis-ci.org/hetznerZA/format_exception)
|
2
|
+
|
1
3
|
# FormatException
|
2
4
|
|
3
5
|
A module of utility methods for string formatting exceptions.
|
4
6
|
|
5
7
|
## Documentation
|
6
8
|
|
7
|
-
For documentation of the released gem
|
9
|
+
For documentation, follow the _Documentation_ link of the released gem on [rubygems.org](https://rubygems.org/gems/format_exception).
|
8
10
|
|
9
11
|
## Installation
|
10
12
|
|
data/lib/format_exception.rb
CHANGED
@@ -6,7 +6,26 @@ require "strscan"
|
|
6
6
|
#
|
7
7
|
# Provides utility methods for formatting an exception as a String.
|
8
8
|
#
|
9
|
-
# @example
|
9
|
+
# @example Classic format
|
10
|
+
#
|
11
|
+
# require "format_exception"
|
12
|
+
#
|
13
|
+
# def make_mistake
|
14
|
+
# begin
|
15
|
+
# raise "Deliberate mistake"
|
16
|
+
# rescue Exception => ex
|
17
|
+
# $stderr.puts FormatException.classic(ex)
|
18
|
+
# end
|
19
|
+
# end
|
20
|
+
#
|
21
|
+
# make_mistake
|
22
|
+
#
|
23
|
+
# # Prints:
|
24
|
+
# #
|
25
|
+
# # example.rb:7:in `make_mistake': Deliberate mistake (RuntimeError)
|
26
|
+
# # example.rb:13:in `<main>'
|
27
|
+
#
|
28
|
+
# @example Contextual clean format to Logger
|
10
29
|
#
|
11
30
|
# require "logger"
|
12
31
|
# require "format_exception"
|
@@ -16,7 +35,7 @@ require "strscan"
|
|
16
35
|
# File.open("message.txt", "r") do |io|
|
17
36
|
# puts io.read
|
18
37
|
# end
|
19
|
-
# rescue
|
38
|
+
# rescue StandardError => ex
|
20
39
|
# logger.error(FormatException[ex, "Printing welcome message"])
|
21
40
|
# end
|
22
41
|
#
|
@@ -27,6 +46,43 @@ require "strscan"
|
|
27
46
|
# # foo.rb:10:in `open'
|
28
47
|
# # foo.rb:10:in `<main>'
|
29
48
|
#
|
49
|
+
# @example Contextual custom format
|
50
|
+
#
|
51
|
+
# require "format_exception"
|
52
|
+
#
|
53
|
+
# def make_mistake
|
54
|
+
# begin
|
55
|
+
# raise "Deliberate mistake"
|
56
|
+
# rescue Exception => ex
|
57
|
+
# $stderr.puts FormatException.format("%:m%C(\"%M\") at %f\n%R", ex, "Testing formatter")
|
58
|
+
# end
|
59
|
+
# end
|
60
|
+
#
|
61
|
+
# make_mistake
|
62
|
+
#
|
63
|
+
# # Prints
|
64
|
+
# #
|
65
|
+
# # Testing formatter: RuntimeError("Deliberate mistake") at example.rb:7:in `make_mistake'
|
66
|
+
# # example.rb:13:in `<main>'
|
67
|
+
#
|
68
|
+
# @example Data format
|
69
|
+
#
|
70
|
+
# require "format_exception"
|
71
|
+
#
|
72
|
+
# def make_mistake
|
73
|
+
# begin
|
74
|
+
# raise "Deliberate mistake"
|
75
|
+
# rescue Exception => ex
|
76
|
+
# $stderr.puts FormatException.classic(ex).to_s
|
77
|
+
# end
|
78
|
+
# end
|
79
|
+
#
|
80
|
+
# make_mistake
|
81
|
+
#
|
82
|
+
# # Prints:
|
83
|
+
# #
|
84
|
+
# # {:name=>"RuntimeError", :message=>"Deliberate mistake", :backtrace=>["(irb):19:in `make_mistake'", ...]}
|
85
|
+
#
|
30
86
|
module FormatException
|
31
87
|
|
32
88
|
##
|
@@ -85,6 +141,31 @@ module FormatException
|
|
85
141
|
format(CLEAN_FORMAT, e, context_message)
|
86
142
|
end
|
87
143
|
|
144
|
+
##
|
145
|
+
# Format exception as symbol-keyed dictionary
|
146
|
+
#
|
147
|
+
# If the +context_message+ is given, it is included as the +:context_message+ key.
|
148
|
+
#
|
149
|
+
# @param [Exception] e
|
150
|
+
# the exception to format
|
151
|
+
# @param [String] context_message
|
152
|
+
# the additional message to include in the dictionary
|
153
|
+
# @return [Hash] the data representation of the exception
|
154
|
+
# * +:name+ (String) exception class name
|
155
|
+
# * +:message+ (String) exception message
|
156
|
+
# * +:backtrace+ (Array) exception backtrace
|
157
|
+
# * +:context_message+ (String) +context_message+ if specified
|
158
|
+
#
|
159
|
+
def self.data(e, context_message = nil)
|
160
|
+
{
|
161
|
+
name: e.class.to_s,
|
162
|
+
message: e.message,
|
163
|
+
backtrace: e.backtrace,
|
164
|
+
}.tap { |h|
|
165
|
+
h[:context_message] = context_message if context_message
|
166
|
+
}
|
167
|
+
end
|
168
|
+
|
88
169
|
##
|
89
170
|
# Format exception as per printf-like format specifier
|
90
171
|
#
|
@@ -126,4 +207,5 @@ module FormatException
|
|
126
207
|
end
|
127
208
|
formatted
|
128
209
|
end
|
210
|
+
|
129
211
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: format_exception
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sheldon Hearn
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-10-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -91,9 +91,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
91
91
|
version: '0'
|
92
92
|
requirements: []
|
93
93
|
rubyforge_project:
|
94
|
-
rubygems_version: 2.5.1
|
94
|
+
rubygems_version: 2.5.2.1
|
95
95
|
signing_key:
|
96
96
|
specification_version: 4
|
97
97
|
summary: Exception formatter
|
98
98
|
test_files: []
|
99
|
-
has_rdoc:
|