pretty_debug 0.8.12 → 0.8.13
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/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
|