pretty_debug 0.9.12 → 0.9.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pretty_debug.rb +31 -40
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 85a94e7aa02e3d1c98c8d18337326a9173712a4b
|
4
|
+
data.tar.gz: 9bc6dc1b6e0b76c2379855beb7b8506f42d49562
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24462db88297c904d6bc886014922ca8bed60c98a1176345a3a4467281edf7d8bd630e56e74d73191aa7181c623bcb5fc8c4d2eaa59e63cd30cf27642360df73
|
7
|
+
data.tar.gz: 51a43a899f32a2e6c5bf5c6fb8c62fe8fc8903549d0619bd0be96540ae1f8504e20531a8da8eccfd4e131b85dee42490e93d2c0ae60ff05fe9c99726986e2c48
|
data/lib/pretty_debug.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
#!ruby
|
2
2
|
|
3
|
-
#############################################
|
4
3
|
# File
|
5
|
-
#############################################
|
6
4
|
|
7
5
|
class File
|
8
6
|
def self.expand_path_relative f; expand_path(f, caller_location.realdirname) end
|
@@ -17,9 +15,7 @@ module Kernel
|
|
17
15
|
def load_relative f, *rest; load(File.expand_path(f, caller_location.realdirname), *rest) end
|
18
16
|
end
|
19
17
|
|
20
|
-
#############################################
|
21
18
|
# Debug
|
22
|
-
#############################################
|
23
19
|
|
24
20
|
class BasicObject
|
25
21
|
def intercept; self ensure
|
@@ -40,7 +36,7 @@ class Object
|
|
40
36
|
mt = method(m)
|
41
37
|
puts \
|
42
38
|
"[Debug] #{"#{l.realpath}:#{l.lineno}"}".bf.color(:yellow),
|
43
|
-
"#{self.class}(#{mt.owner})
|
39
|
+
"#{self.class}(#{mt.owner})\##{m}@#{mt.source_location.to_a.join(":".freeze)}"
|
44
40
|
end
|
45
41
|
end
|
46
42
|
|
@@ -103,7 +99,6 @@ class Thread::Backtrace::Location
|
|
103
99
|
end
|
104
100
|
|
105
101
|
module Kernel
|
106
|
-
# Suppress warning message ("already initialized constants".freeze, etc.).
|
107
102
|
def suppress_warning
|
108
103
|
original_verbose, $VERBOSE = $VERBOSE, nil
|
109
104
|
result = yield
|
@@ -111,7 +106,7 @@ module Kernel
|
|
111
106
|
result
|
112
107
|
end
|
113
108
|
at_exit do
|
114
|
-
# Terminated iterations (such as in `Sass::SyntaxError.backtrace`)
|
109
|
+
#Gotcha# Terminated iterations (such as in `Sass::SyntaxError.backtrace`) overwrite `$!`.
|
115
110
|
e = $!
|
116
111
|
case e
|
117
112
|
when nil, SystemExit, Interrupt
|
@@ -137,7 +132,7 @@ class PrettyDebug
|
|
137
132
|
def self.format ≺ @format = pr end
|
138
133
|
def self.message e
|
139
134
|
e.complement_backtrace_locations
|
140
|
-
e.message.to_s.
|
135
|
+
e.message.to_s.sub(/./, &:upcase).sub(/(?<=[^.])\z/, ".".freeze).tr("'".freeze, "`".freeze)
|
141
136
|
end
|
142
137
|
def self.backtrace_locations e
|
143
138
|
e.complement_backtrace_locations
|
@@ -192,9 +187,7 @@ end
|
|
192
187
|
PrettyDebug.select{|f, m| true}
|
193
188
|
PrettyDebug.format{|row| "#{row.join(" | ".freeze)} ".bg(:white).color(:black)}
|
194
189
|
|
195
|
-
#############################################
|
196
190
|
# Inspection
|
197
|
-
#############################################
|
198
191
|
|
199
192
|
class PrettyArray < Array
|
200
193
|
def initialize a
|
@@ -202,7 +195,7 @@ class PrettyArray < Array
|
|
202
195
|
reject!{
|
203
196
|
|f, l, m|
|
204
197
|
f == __FILE__ or
|
205
|
-
m =~ /\A<.*>\z/ # Such as `<top (required)>`, `<module:Foo>`.
|
198
|
+
m =~ /\A<.*>\z/ #Purpose# Such as `<top (required)>`, `<module:Foo>`.
|
206
199
|
}
|
207
200
|
reject, select =
|
208
201
|
[:@reject, :@select].map{|sym| PrettyDebug.instance_variable_get(sym)}
|
@@ -221,7 +214,7 @@ end
|
|
221
214
|
|
222
215
|
class Method; def inspect; "#{receiver}.#{name}" end end
|
223
216
|
|
224
|
-
class UnboundMethod; def inspect; "#{owner}
|
217
|
+
class UnboundMethod; def inspect; "#{owner}\##{name}" end end
|
225
218
|
|
226
219
|
class BasicObject
|
227
220
|
def recursive? *; false end
|
@@ -245,35 +238,37 @@ class Range
|
|
245
238
|
end
|
246
239
|
|
247
240
|
class Array
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
241
|
+
module PrettyInspect
|
242
|
+
SingleLength = 50
|
243
|
+
def inspect
|
244
|
+
return super if recursive?
|
245
|
+
s = map(&:inspect)
|
246
|
+
length < 2 || s.map(&:length).inject(:+) < SingleLength ?
|
247
|
+
"[#{s.join(", ".freeze)}]" : "[#$/#{s.join(",#$/".freeze).indent}#$/]"
|
248
|
+
end
|
255
249
|
end
|
250
|
+
prepend PrettyInspect
|
256
251
|
end
|
257
252
|
|
258
253
|
class Hash
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
254
|
+
module PrettyInspect
|
255
|
+
SingleLength = 50
|
256
|
+
KeyLengthMax = 30
|
257
|
+
def inspect
|
258
|
+
return super if recursive?
|
259
|
+
keys = keys().map(&:inspect)
|
260
|
+
#Purpose# When `self == empty?`, `...max` becomes `nil`. `to_i` turns it to `0`.
|
261
|
+
w = keys.map(&:length).max.to_i
|
262
|
+
w = w > KeyLengthMax ? KeyLengthMax : w
|
263
|
+
s = [keys, values].transpose.map{|k, v| "#{k.ljust(w)} => #{v.inspect}"}
|
264
|
+
length < 2 || s.map(&:length).inject(:+) < SingleLength ?
|
265
|
+
"{#{s.join(", ".freeze)}}" : "{#$/#{s.join(",#$/".freeze).indent}#$/}"
|
266
|
+
end
|
271
267
|
end
|
268
|
+
prepend PrettyInspect
|
272
269
|
end
|
273
270
|
|
274
|
-
#############################################
|
275
271
|
# Terminal
|
276
|
-
#############################################
|
277
272
|
|
278
273
|
class BasicObject
|
279
274
|
def expand; inspect.verbatim end
|
@@ -291,14 +286,10 @@ class String
|
|
291
286
|
{black: 0, red: 1, green: 2, yellow: 3, blue: 4, magenta: 5, cyan: 6, white: 7}[sym.to_sym]
|
292
287
|
)}#{self}#{vt100}" end
|
293
288
|
def de_vt100; gsub(/\e\[\d*m/, "".freeze) end
|
294
|
-
|
295
|
-
private
|
296
|
-
def vt100 s = "".freeze; "\e[#{s}m" end
|
289
|
+
private def vt100 s = "".freeze; "\e[#{s}m" end
|
297
290
|
end
|
298
291
|
|
299
|
-
#############################################
|
300
292
|
# String Formatting
|
301
|
-
#############################################
|
302
293
|
|
303
294
|
class Array
|
304
295
|
def align ellipsis_limit = nil
|
@@ -316,8 +307,8 @@ class Array
|
|
316
307
|
i = 0
|
317
308
|
i += 1 while first[i] and others.all?{|s| first[i] == s[i]}
|
318
309
|
first[0, i]
|
319
|
-
|
320
|
-
|
310
|
+
## This is more elegant, but cannot be generalized to `common_affix`.
|
311
|
+
# first[0, (0...first.length).find{|i| first[i].! or others.any?{|s| first[i] != s[i]}}.to_i]
|
321
312
|
end
|
322
313
|
def common_affix
|
323
314
|
each{|e| class_check(String, e){"All elements must be a String".freeze}}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pretty_debug
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sawa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-03-14 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: ''
|
14
14
|
email: []
|
@@ -36,7 +36,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
36
36
|
version: '0'
|
37
37
|
requirements: []
|
38
38
|
rubyforge_project:
|
39
|
-
rubygems_version: 2.4.
|
39
|
+
rubygems_version: 2.4.6
|
40
40
|
signing_key:
|
41
41
|
specification_version: 4
|
42
42
|
summary: ''
|