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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pretty_debug.rb +18 -6
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c1237356ace0031f04056ca6bc7097ba6bc367eb
4
- data.tar.gz: ed4743b978d360261bcb467df60cb3b39d2d494e
3
+ metadata.gz: 6d2334a29dba31ef4e56c003a7122882173a5b1c
4
+ data.tar.gz: 4ec14f7e4e70cfb36bf50452dc48ba75c3a3fc01
5
5
  SHA512:
6
- metadata.gz: 9c5636e2d593ec16c53e69e0428424ec0e58b9c94c0ef4a40be9c3e620aee1d1747f56aee5b86bc1f2d373013391d12563d7244491b70f392bec9aa0c86e2d4f
7
- data.tar.gz: 7c08b5f7be3459802e14524b085323352db0e167936bd0e52c9a7ca4eef73f9d2daa35b3507ea7d9f0fd4e015dc2c24d852f044239b5eba4566c663fdd7de756
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pretty_debug
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.12
4
+ version: 0.8.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - sawa