pretty_debug 0.8.12 → 0.8.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 +18 -6
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d2334a29dba31ef4e56c003a7122882173a5b1c
|
4
|
+
data.tar.gz: 4ec14f7e4e70cfb36bf50452dc48ba75c3a3fc01
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e979879cffc0be93bdb1756aca1408683cc440e45b1a8e4f9d4f9b615a547d9089d3bc59383c21c7059d4cabd1d5018ba77e1d51507839c9be252fa6bb2222f7
|
7
|
+
data.tar.gz: d25b95a831e139c5a9d6231158e592e290faab58fa8601ecbc7948b62a39a850ae96087bbed707a81ddf17b43cc6f5997f9260abc608f53784aa8b6a5da13735
|
data/lib/pretty_debug.rb
CHANGED
@@ -204,15 +204,25 @@ class Method; def inspect; "#{receiver}.#{name}" end end
|
|
204
204
|
|
205
205
|
class UnboundMethod; def inspect; "#{owner}##{name}" end end
|
206
206
|
|
207
|
+
class Object
|
208
|
+
def recursive? known = {}; false end
|
209
|
+
end
|
210
|
+
|
211
|
+
module Enumerable
|
212
|
+
def recursive? known = {}
|
213
|
+
return true if known.include?(self)
|
214
|
+
known[self] = true
|
215
|
+
begin
|
216
|
+
any?{|*args| args.any?{|item| item.recursive?(known)}}
|
217
|
+
ensure
|
218
|
+
known[self] = false
|
219
|
+
end
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
207
223
|
class Array
|
208
224
|
SingleLength = 50
|
209
225
|
alias original_inspect inspect
|
210
|
-
def recursive?
|
211
|
-
flatten
|
212
|
-
false
|
213
|
-
rescue ArgumentError
|
214
|
-
true
|
215
|
-
end
|
216
226
|
def inspect
|
217
227
|
return original_inspect if recursive?
|
218
228
|
s = map(&:inspect)
|
@@ -224,7 +234,9 @@ end
|
|
224
234
|
class Hash
|
225
235
|
SingleLength = 50
|
226
236
|
KeyLengthMax = 30
|
237
|
+
alias original_inspect inspect
|
227
238
|
def inspect
|
239
|
+
return original_inspect if recursive?
|
228
240
|
keys = self.keys.map(&:inspect)
|
229
241
|
# When `self == empty?`, `...max` becomes `nil`. `to_i` turns it to `0`.
|
230
242
|
w = keys.map(&:length).max.to_i
|