debug_helper 1.7.0 → 1.8.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.
Files changed (151) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +22 -22
  3. data/README.md +848 -218
  4. data/lib/debug_helper.rb +79 -160
  5. data/lib/debug_helper/array_handler.rb +12 -0
  6. data/lib/debug_helper/dir_handler.rb +19 -0
  7. data/lib/debug_helper/each_pair_handler.rb +13 -0
  8. data/lib/debug_helper/each_with_index_handler.rb +11 -0
  9. data/lib/debug_helper/exception_handler.rb +14 -0
  10. data/lib/debug_helper/file_handler.rb +29 -0
  11. data/lib/debug_helper/generic_handler.rb +12 -0
  12. data/lib/debug_helper/handler.rb +102 -0
  13. data/lib/debug_helper/hash_handler.rb +19 -0
  14. data/lib/debug_helper/io_handler.rb +15 -0
  15. data/lib/debug_helper/match_data_handler.rb +17 -0
  16. data/lib/debug_helper/object_handler.rb +13 -0
  17. data/lib/debug_helper/open_struct_handler.rb +16 -0
  18. data/lib/debug_helper/range_handler.rb +14 -0
  19. data/lib/debug_helper/regexp_handler.rb +16 -0
  20. data/lib/debug_helper/set_handler.rb +12 -0
  21. data/lib/debug_helper/string_handler.rb +17 -0
  22. data/lib/debug_helper/struct_handler.rb +18 -0
  23. data/lib/debug_helper/symbol_handler.rb +15 -0
  24. data/lib/debug_helper/version.rb +3 -3
  25. data/markdown/readme/Rakefile +36 -6
  26. data/markdown/readme/class_inclusions.md +10 -3
  27. data/markdown/readme/class_links.md +10 -3
  28. data/markdown/readme/classes/array/circular/show.md +4 -2
  29. data/markdown/readme/classes/array/circular/show.yaml +4 -2
  30. data/markdown/readme/classes/array/mixed/show.md +6 -3
  31. data/markdown/readme/classes/array/mixed/show.yaml +6 -3
  32. data/markdown/readme/classes/array/nested/show.md +6 -3
  33. data/markdown/readme/classes/array/nested/show.yaml +6 -3
  34. data/markdown/readme/classes/array/simple/show.md +2 -1
  35. data/markdown/readme/classes/array/simple/show.yaml +2 -1
  36. data/markdown/readme/classes/dir/simple/show.md +28 -0
  37. data/markdown/readme/classes/dir/simple/show.rb +4 -0
  38. data/markdown/readme/classes/dir/simple/show.yaml +11 -0
  39. data/markdown/readme/classes/dir/simple/template.md +9 -0
  40. data/markdown/readme/classes/dir/template.md +3 -0
  41. data/markdown/readme/classes/exception/simple/show.md +44 -0
  42. data/markdown/readme/classes/exception/simple/show.rb +22 -0
  43. data/markdown/readme/classes/exception/simple/show.yaml +9 -0
  44. data/markdown/readme/classes/exception/simple/template.md +9 -0
  45. data/markdown/readme/classes/exception/template.md +3 -0
  46. data/markdown/readme/classes/file/simple/show.md +3 -3
  47. data/markdown/readme/classes/file/simple/show.yaml +3 -3
  48. data/markdown/readme/classes/hash/circular/show.md +12 -4
  49. data/markdown/readme/classes/hash/circular/show.yaml +12 -4
  50. data/markdown/readme/classes/hash/mixed/show.md +14 -6
  51. data/markdown/readme/classes/hash/mixed/show.yaml +14 -6
  52. data/markdown/readme/classes/hash/nested/show.md +24 -9
  53. data/markdown/readme/classes/hash/nested/show.yaml +24 -9
  54. data/markdown/readme/classes/hash/simple/show.md +10 -4
  55. data/markdown/readme/classes/hash/simple/show.yaml +10 -4
  56. data/markdown/readme/classes/io/simple/show.md +23 -0
  57. data/markdown/readme/classes/io/simple/show.rb +4 -0
  58. data/markdown/readme/classes/io/simple/show.yaml +6 -0
  59. data/markdown/readme/classes/io/simple/template.md +9 -0
  60. data/markdown/readme/classes/io/template.md +3 -0
  61. data/markdown/readme/classes/match_data/multiple_captures/show.md +33 -0
  62. data/markdown/readme/classes/match_data/multiple_captures/show.rb +4 -0
  63. data/markdown/readme/classes/match_data/multiple_captures/show.yaml +16 -0
  64. data/markdown/readme/classes/match_data/multiple_captures/template.md +9 -0
  65. data/markdown/readme/classes/match_data/named_captures/show.md +31 -0
  66. data/markdown/readme/classes/match_data/named_captures/show.rb +4 -0
  67. data/markdown/readme/classes/match_data/named_captures/show.yaml +14 -0
  68. data/markdown/readme/classes/match_data/named_captures/template.md +9 -0
  69. data/markdown/readme/classes/match_data/simple/show.md +25 -0
  70. data/markdown/readme/classes/match_data/simple/show.rb +4 -0
  71. data/markdown/readme/classes/match_data/simple/show.yaml +8 -0
  72. data/markdown/readme/classes/match_data/simple/template.md +9 -0
  73. data/markdown/readme/classes/match_data/template.md +7 -0
  74. data/markdown/readme/classes/object/object/show.md +23 -0
  75. data/markdown/readme/classes/object/object/show.rb +8 -0
  76. data/markdown/readme/classes/object/object/show.yaml +2 -0
  77. data/markdown/readme/classes/object/object/template.md +9 -0
  78. data/markdown/readme/classes/object/template.md +1 -7
  79. data/markdown/readme/classes/open_struct/circular/show.md +40 -0
  80. data/markdown/readme/classes/open_struct/circular/show.rb +8 -0
  81. data/markdown/readme/classes/open_struct/circular/show.yaml +17 -0
  82. data/markdown/readme/classes/open_struct/circular/template.md +11 -0
  83. data/markdown/readme/classes/open_struct/mixed/show.md +51 -0
  84. data/markdown/readme/classes/open_struct/mixed/show.rb +5 -0
  85. data/markdown/readme/classes/open_struct/mixed/show.yaml +33 -0
  86. data/markdown/readme/classes/open_struct/mixed/template.md +9 -0
  87. data/markdown/readme/classes/open_struct/nested/show.md +73 -0
  88. data/markdown/readme/classes/open_struct/nested/show.rb +14 -0
  89. data/markdown/readme/classes/open_struct/nested/show.yaml +46 -0
  90. data/markdown/readme/classes/open_struct/nested/template.md +9 -0
  91. data/markdown/readme/classes/open_struct/simple/show.md +41 -0
  92. data/markdown/readme/classes/open_struct/simple/show.rb +5 -0
  93. data/markdown/readme/classes/open_struct/simple/show.yaml +23 -0
  94. data/markdown/readme/classes/open_struct/simple/template.md +9 -0
  95. data/markdown/readme/classes/open_struct/template.md +9 -0
  96. data/markdown/readme/classes/range/exclude_end/show.md +22 -0
  97. data/markdown/readme/classes/range/exclude_end/show.rb +4 -0
  98. data/markdown/readme/classes/range/exclude_end/show.yaml +5 -0
  99. data/markdown/readme/classes/range/exclude_end/template.md +9 -0
  100. data/markdown/readme/classes/range/include_end/show.md +22 -0
  101. data/markdown/readme/classes/range/include_end/show.rb +4 -0
  102. data/markdown/readme/classes/range/include_end/show.yaml +5 -0
  103. data/markdown/readme/classes/range/include_end/template.md +9 -0
  104. data/markdown/readme/classes/range/template.md +5 -0
  105. data/markdown/readme/classes/regexp/named_captures/show.md +28 -0
  106. data/markdown/readme/classes/regexp/named_captures/show.rb +4 -0
  107. data/markdown/readme/classes/regexp/named_captures/show.yaml +11 -0
  108. data/markdown/readme/classes/regexp/named_captures/template.md +9 -0
  109. data/markdown/readme/classes/regexp/simple/show.md +24 -0
  110. data/markdown/readme/classes/regexp/simple/show.rb +4 -0
  111. data/markdown/readme/classes/regexp/simple/show.yaml +7 -0
  112. data/markdown/readme/classes/regexp/simple/template.md +9 -0
  113. data/markdown/readme/classes/regexp/template.md +5 -0
  114. data/markdown/readme/classes/set/circular/show.md +4 -2
  115. data/markdown/readme/classes/set/circular/show.yaml +4 -2
  116. data/markdown/readme/classes/set/mixed/show.md +6 -3
  117. data/markdown/readme/classes/set/mixed/show.yaml +6 -3
  118. data/markdown/readme/classes/set/nested/show.md +6 -3
  119. data/markdown/readme/classes/set/nested/show.yaml +6 -3
  120. data/markdown/readme/classes/set/simple/show.md +2 -1
  121. data/markdown/readme/classes/set/simple/show.yaml +2 -1
  122. data/markdown/readme/classes/string/multiline/show.md +2 -1
  123. data/markdown/readme/classes/string/multiline/show.yaml +2 -1
  124. data/markdown/readme/classes/string/simple/show.md +2 -1
  125. data/markdown/readme/classes/string/simple/show.yaml +2 -1
  126. data/markdown/readme/classes/struct/circular/show.md +34 -8
  127. data/markdown/readme/classes/struct/circular/show.yaml +34 -8
  128. data/markdown/readme/classes/struct/mixed/show.md +21 -6
  129. data/markdown/readme/classes/struct/mixed/show.yaml +21 -6
  130. data/markdown/readme/classes/struct/nested/show.md +36 -9
  131. data/markdown/readme/classes/struct/nested/show.yaml +36 -9
  132. data/markdown/readme/classes/struct/simple/show.md +17 -4
  133. data/markdown/readme/classes/struct/simple/show.yaml +17 -4
  134. data/markdown/readme/classes/symbol/simple/show.md +2 -1
  135. data/markdown/readme/classes/symbol/simple/show.yaml +2 -1
  136. data/markdown/readme/options/depth/show.md +30 -15
  137. data/markdown/readme/options/depth/show.yaml +30 -15
  138. data/markdown/readme/template.md +8 -8
  139. metadata +88 -14
  140. data/markdown/readme/classes/object/datetime/show.md +0 -18
  141. data/markdown/readme/classes/object/datetime/show.rb +0 -4
  142. data/markdown/readme/classes/object/datetime/show.yaml +0 -1
  143. data/markdown/readme/classes/object/datetime/template.md +0 -9
  144. data/markdown/readme/classes/object/range/show.md +0 -19
  145. data/markdown/readme/classes/object/range/show.rb +0 -4
  146. data/markdown/readme/classes/object/range/show.yaml +0 -2
  147. data/markdown/readme/classes/object/range/template.md +0 -9
  148. data/markdown/readme/classes/object/regexp/show.md +0 -19
  149. data/markdown/readme/classes/object/regexp/show.rb +0 -4
  150. data/markdown/readme/classes/object/regexp/show.yaml +0 -2
  151. data/markdown/readme/classes/object/regexp/template.md +0 -9
@@ -15,23 +15,29 @@ The output shows details of the hash.
15
15
  ```show.yaml```:
16
16
  ```yaml
17
17
  ---
18
- Hash (size=3 message='My simple hash'):
18
+ Hash (message='My simple hash'):
19
+ size: 3
20
+ default:
21
+ default_proc:
19
22
  Pair 0:
20
23
  Key:
21
- Symbol (size=1):
24
+ Symbol:
22
25
  to_s: a
26
+ size: 1
23
27
  encoding: !ruby/encoding US-ASCII
24
28
  Value: Fixnum 0
25
29
  Pair 1:
26
30
  Key:
27
- Symbol (size=1):
31
+ Symbol:
28
32
  to_s: b
33
+ size: 1
29
34
  encoding: !ruby/encoding US-ASCII
30
35
  Value: Fixnum 1
31
36
  Pair 2:
32
37
  Key:
33
- Symbol (size=1):
38
+ Symbol:
34
39
  to_s: c
40
+ size: 1
35
41
  encoding: !ruby/encoding US-ASCII
36
42
  Value: Fixnum 2
37
43
  ```
@@ -1,20 +1,26 @@
1
1
  ---
2
- Hash (size=3 message='My simple hash'):
2
+ Hash (message='My simple hash'):
3
+ size: 3
4
+ default:
5
+ default_proc:
3
6
  Pair 0:
4
7
  Key:
5
- Symbol (size=1):
8
+ Symbol:
6
9
  to_s: a
10
+ size: 1
7
11
  encoding: !ruby/encoding US-ASCII
8
12
  Value: Fixnum 0
9
13
  Pair 1:
10
14
  Key:
11
- Symbol (size=1):
15
+ Symbol:
12
16
  to_s: b
17
+ size: 1
13
18
  encoding: !ruby/encoding US-ASCII
14
19
  Value: Fixnum 1
15
20
  Pair 2:
16
21
  Key:
17
- Symbol (size=1):
22
+ Symbol:
18
23
  to_s: c
24
+ size: 1
19
25
  encoding: !ruby/encoding US-ASCII
20
26
  Value: Fixnum 2
@@ -0,0 +1,23 @@
1
+ #### Simple IO
2
+
3
+ This example shows a simple ```IO```.
4
+
5
+ ```show.rb```:
6
+ ```ruby
7
+ require 'debug_helper'
8
+
9
+ io = IO.new(IO.sysopen(__FILE__, 'r'), 'r')
10
+ DebugHelper.show(io, 'My simple io')
11
+ ```
12
+
13
+ The output shows details of the ```IO```.
14
+
15
+ ```show.yaml```:
16
+ ```yaml
17
+ ---
18
+ IO (message='My simple io'):
19
+ autoclose?: true
20
+ binmode?: false
21
+ closed?: false
22
+ tty?: false
23
+ ```
@@ -0,0 +1,4 @@
1
+ require 'debug_helper'
2
+
3
+ io = IO.new(IO.sysopen(__FILE__, 'r'), 'r')
4
+ DebugHelper.show(io, 'My simple io')
@@ -0,0 +1,6 @@
1
+ ---
2
+ IO (message='My simple io'):
3
+ autoclose?: true
4
+ binmode?: false
5
+ closed?: false
6
+ tty?: false
@@ -0,0 +1,9 @@
1
+ #### Simple IO
2
+
3
+ This example shows a simple ```IO```.
4
+
5
+ @[ruby](show.rb)
6
+
7
+ The output shows details of the ```IO```.
8
+
9
+ @[yaml](show.yaml)
@@ -0,0 +1,3 @@
1
+ ### IO
2
+
3
+ @[:markdown](simple/show.md)
@@ -0,0 +1,33 @@
1
+ #### Multiple Captures
2
+
3
+ This example shows a ```MatchData``` with multiple captures.
4
+
5
+ ```show.rb```:
6
+ ```ruby
7
+ require 'debug_helper'
8
+
9
+ match_data = /(.)(.)(\d+)(\d)/.match('THX1138.')
10
+ DebugHelper.show(match_data, 'My MatchData with named captures')
11
+ ```
12
+
13
+ The output shows details of the ```MatchData```.
14
+
15
+ ```show.yaml```:
16
+ ```yaml
17
+ ---
18
+ MatchData (message='My MatchData with named captures'):
19
+ size: 5
20
+ regexp: !ruby/regexp /(.)(.)(\d+)(\d)/
21
+ to_a:
22
+ - HX1138
23
+ - H
24
+ - X
25
+ - '113'
26
+ - '8'
27
+ captures:
28
+ - H
29
+ - X
30
+ - '113'
31
+ - '8'
32
+ names: []
33
+ ```
@@ -0,0 +1,4 @@
1
+ require 'debug_helper'
2
+
3
+ match_data = /(.)(.)(\d+)(\d)/.match('THX1138.')
4
+ DebugHelper.show(match_data, 'My MatchData with named captures')
@@ -0,0 +1,16 @@
1
+ ---
2
+ MatchData (message='My MatchData with named captures'):
3
+ size: 5
4
+ regexp: !ruby/regexp /(.)(.)(\d+)(\d)/
5
+ to_a:
6
+ - HX1138
7
+ - H
8
+ - X
9
+ - '113'
10
+ - '8'
11
+ captures:
12
+ - H
13
+ - X
14
+ - '113'
15
+ - '8'
16
+ names: []
@@ -0,0 +1,9 @@
1
+ #### Multiple Captures
2
+
3
+ This example shows a ```MatchData``` with multiple captures.
4
+
5
+ @[ruby](show.rb)
6
+
7
+ The output shows details of the ```MatchData```.
8
+
9
+ @[yaml](show.yaml)
@@ -0,0 +1,31 @@
1
+ #### Named Captures
2
+
3
+ This example shows a ```MatchData``` with named captures.
4
+
5
+ ```show.rb```:
6
+ ```ruby
7
+ require 'debug_helper'
8
+
9
+ match_data = /(?<x>.)(?<y>.)?/.match("a")
10
+ DebugHelper.show(match_data, 'My MatchData with named captures')
11
+ ```
12
+
13
+ The output shows details of the ```MatchData```.
14
+
15
+ ```show.yaml```:
16
+ ```yaml
17
+ ---
18
+ MatchData (message='My MatchData with named captures'):
19
+ size: 3
20
+ regexp: !ruby/regexp /(?<x>.)(?<y>.)?/
21
+ to_a:
22
+ - a
23
+ - a
24
+ -
25
+ captures:
26
+ - a
27
+ -
28
+ names:
29
+ - x
30
+ - y
31
+ ```
@@ -0,0 +1,4 @@
1
+ require 'debug_helper'
2
+
3
+ match_data = /(?<x>.)(?<y>.)?/.match("a")
4
+ DebugHelper.show(match_data, 'My MatchData with named captures')
@@ -0,0 +1,14 @@
1
+ ---
2
+ MatchData (message='My MatchData with named captures'):
3
+ size: 3
4
+ regexp: !ruby/regexp /(?<x>.)(?<y>.)?/
5
+ to_a:
6
+ - a
7
+ - a
8
+ -
9
+ captures:
10
+ - a
11
+ -
12
+ names:
13
+ - x
14
+ - y
@@ -0,0 +1,9 @@
1
+ #### Named Captures
2
+
3
+ This example shows a ```MatchData``` with named captures.
4
+
5
+ @[ruby](show.rb)
6
+
7
+ The output shows details of the ```MatchData```.
8
+
9
+ @[yaml](show.yaml)
@@ -0,0 +1,25 @@
1
+ #### Simple MatchData
2
+
3
+ This example shows a simple ```MatchData```.
4
+
5
+ ```show.rb```:
6
+ ```ruby
7
+ require 'debug_helper'
8
+
9
+ match_data = /[a-z]/.match('abc')
10
+ DebugHelper.show(match_data, 'My simple MatchData')
11
+ ```
12
+
13
+ The output shows details of the ```MatchData```.
14
+
15
+ ```show.yaml```:
16
+ ```yaml
17
+ ---
18
+ MatchData (message='My simple MatchData'):
19
+ size: 1
20
+ regexp: !ruby/regexp /[a-z]/
21
+ to_a:
22
+ - a
23
+ captures: []
24
+ names: []
25
+ ```
@@ -0,0 +1,4 @@
1
+ require 'debug_helper'
2
+
3
+ match_data = /[a-z]/.match('abc')
4
+ DebugHelper.show(match_data, 'My simple MatchData')
@@ -0,0 +1,8 @@
1
+ ---
2
+ MatchData (message='My simple MatchData'):
3
+ size: 1
4
+ regexp: !ruby/regexp /[a-z]/
5
+ to_a:
6
+ - a
7
+ captures: []
8
+ names: []
@@ -0,0 +1,9 @@
1
+ #### Simple MatchData
2
+
3
+ This example shows a simple ```MatchData```.
4
+
5
+ @[ruby](show.rb)
6
+
7
+ The output shows details of the ```MatchData```.
8
+
9
+ @[yaml](show.yaml)
@@ -0,0 +1,7 @@
1
+ ### MatchData
2
+
3
+ @[:markdown](simple/show.md)
4
+
5
+ @[:markdown](multiple_captures/show.md)
6
+
7
+ @[:markdown](named_captures/show.md)
@@ -0,0 +1,23 @@
1
+ #### Unanalyzed Object
2
+
3
+ This example shows an object that will not be analyzed.
4
+
5
+ ```show.rb```:
6
+ ```ruby
7
+ require 'debug_helper'
8
+
9
+ class MyClass
10
+ def inspect
11
+ 'My class inspection'
12
+ end
13
+ end
14
+ DebugHelper.show(MyClass.new, 'My class')
15
+ ```
16
+
17
+ The output shows details of the object.
18
+
19
+ ```show.yaml```:
20
+ ```yaml
21
+ --- MyClass (message='My class') My class inspection
22
+ ...
23
+ ```
@@ -0,0 +1,8 @@
1
+ require 'debug_helper'
2
+
3
+ class MyClass
4
+ def inspect
5
+ 'My class inspection'
6
+ end
7
+ end
8
+ DebugHelper.show(MyClass.new, 'My class')
@@ -0,0 +1,2 @@
1
+ --- MyClass (message='My class') My class inspection
2
+ ...
@@ -0,0 +1,9 @@
1
+ #### Unanalyzed Object
2
+
3
+ This example shows an object that will not be analyzed.
4
+
5
+ @[ruby](show.rb)
6
+
7
+ The output shows details of the object.
8
+
9
+ @[yaml](show.yaml)
@@ -2,10 +2,4 @@
2
2
 
3
3
  Classes not mentioned above are not analyzed, but are treated more simply.
4
4
 
5
- A few examples are shown below.
6
-
7
- @[:markdown](datetime/show.md)
8
-
9
- @[:markdown](range/show.md)
10
-
11
- @[:markdown](regexp/show.md)
5
+ @[:markdown](object/show.md)
@@ -0,0 +1,40 @@
1
+ #### Circular OpenStructs
2
+
3
+ This example shows open structs that make a circular reference.
4
+
5
+ ```show.rb```:
6
+ ```ruby
7
+ require 'ostruct'
8
+ require 'debug_helper'
9
+
10
+ ostruct_0 = OpenStruct.new
11
+ ostruct_1 = OpenStruct.new
12
+ ostruct_0.a = ostruct_1
13
+ ostruct_1.a = ostruct_0
14
+ DebugHelper.show(ostruct_0, 'My circular ostruct')
15
+ ```
16
+
17
+ The output shows details of the open structs.
18
+
19
+ The circular reference is not followed.
20
+
21
+ ```show.yaml```:
22
+ ```yaml
23
+ ---
24
+ OpenStruct (message='My circular ostruct'):
25
+ Member 0:
26
+ Name:
27
+ Symbol:
28
+ to_s: a
29
+ size: 1
30
+ encoding: !ruby/encoding US-ASCII
31
+ Value:
32
+ OpenStruct:
33
+ Member 0:
34
+ Name:
35
+ Symbol:
36
+ to_s: a
37
+ size: 1
38
+ encoding: !ruby/encoding US-ASCII
39
+ Value: 'OpenStruct #<OpenStruct a=#<OpenStruct a=#<OpenStruct ...>>>'
40
+ ```
@@ -0,0 +1,8 @@
1
+ require 'ostruct'
2
+ require 'debug_helper'
3
+
4
+ ostruct_0 = OpenStruct.new
5
+ ostruct_1 = OpenStruct.new
6
+ ostruct_0.a = ostruct_1
7
+ ostruct_1.a = ostruct_0
8
+ DebugHelper.show(ostruct_0, 'My circular ostruct')
@@ -0,0 +1,17 @@
1
+ ---
2
+ OpenStruct (message='My circular ostruct'):
3
+ Member 0:
4
+ Name:
5
+ Symbol:
6
+ to_s: a
7
+ size: 1
8
+ encoding: !ruby/encoding US-ASCII
9
+ Value:
10
+ OpenStruct:
11
+ Member 0:
12
+ Name:
13
+ Symbol:
14
+ to_s: a
15
+ size: 1
16
+ encoding: !ruby/encoding US-ASCII
17
+ Value: 'OpenStruct #<OpenStruct a=#<OpenStruct a=#<OpenStruct ...>>>'