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
@@ -0,0 +1,19 @@
1
+ class DebugHelper
2
+
3
+ class HashHandler < EachPairHandler
4
+
5
+ def calls_for_instance
6
+ [
7
+ [:size],
8
+ [:default],
9
+ [:default_proc],
10
+ ]
11
+ end
12
+ def show
13
+ self.pair_names = %w/Pair Key Value/
14
+ super
15
+ end
16
+
17
+ end
18
+
19
+ end
@@ -0,0 +1,15 @@
1
+ class DebugHelper
2
+
3
+ class IOHandler < Handler
4
+
5
+ def calls_for_instance
6
+ [
7
+ [:autoclose?],
8
+ [:binmode?],
9
+ [:closed?],
10
+ [:tty?],
11
+ ]
12
+ end
13
+ end
14
+
15
+ end
@@ -0,0 +1,17 @@
1
+ class DebugHelper
2
+
3
+ class MatchDataHandler < Handler
4
+
5
+ def calls_for_instance
6
+ [
7
+ [:size],
8
+ [:regexp],
9
+ [:to_a],
10
+ [:captures],
11
+ [:names],
12
+ ]
13
+ end
14
+
15
+ end
16
+
17
+ end
@@ -0,0 +1,13 @@
1
+ class DebugHelper
2
+
3
+ class ObjectHandler < Handler
4
+
5
+ def calls_for_instance
6
+ [
7
+ [:object_id],
8
+ ]
9
+ end
10
+
11
+ end
12
+
13
+ end
@@ -0,0 +1,16 @@
1
+ class DebugHelper
2
+
3
+ class OpenStructHandler < EachPairHandler
4
+
5
+ def show
6
+ self.pair_names = %w/Member Name Value/
7
+ super
8
+ end
9
+
10
+ def each_pair?
11
+ true
12
+ end
13
+
14
+ end
15
+
16
+ end
@@ -0,0 +1,14 @@
1
+ class DebugHelper
2
+
3
+ class RangeHandler < Handler
4
+
5
+ def calls_for_instance
6
+ [
7
+ [:first],
8
+ [:last],
9
+ [:exclude_end?],
10
+ ]
11
+ end
12
+
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ class DebugHelper
2
+
3
+ class RegexpHandler < Handler
4
+
5
+ def calls_for_instance
6
+ [
7
+ [:to_s],
8
+ [:casefold?],
9
+ [:named_captures],
10
+ [:encoding],
11
+ [:fixed_encoding?],
12
+ ]
13
+ end
14
+
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ class DebugHelper
2
+
3
+ class SetHandler < EachWithIndexHandler
4
+
5
+ def calls_for_instance
6
+ [
7
+ [:size],
8
+ ]
9
+ end
10
+
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ class DebugHelper
2
+
3
+ class StringHandler < Handler
4
+
5
+ def calls_for_instance
6
+ [
7
+ [:to_s],
8
+ [:size],
9
+ [:encoding],
10
+ [:ascii_only?],
11
+ [:bytesize],
12
+ ]
13
+ end
14
+
15
+ end
16
+
17
+ end
@@ -0,0 +1,18 @@
1
+ class DebugHelper
2
+
3
+ class StructHandler < EachPairHandler
4
+
5
+ def calls_for_instance
6
+ [
7
+ [:size],
8
+ ]
9
+ end
10
+
11
+ def show
12
+ self.pair_names = %w/Member Name Value/
13
+ super
14
+ end
15
+
16
+ end
17
+
18
+ end
@@ -0,0 +1,15 @@
1
+ class DebugHelper
2
+
3
+ class SymbolHandler < Handler
4
+
5
+ def calls_for_instance
6
+ [
7
+ [:to_s],
8
+ [:size],
9
+ [:encoding],
10
+ ]
11
+ end
12
+
13
+ end
14
+
15
+ end
@@ -1,3 +1,3 @@
1
- class DebugHelper
2
- VERSION = "1.7.0"
3
- end
1
+ class DebugHelper
2
+ VERSION = "1.8.0"
3
+ end
@@ -1,3 +1,4 @@
1
+ require 'debug_helper'
1
2
  require 'markdown_helper'
2
3
 
3
4
  namespace :build do
@@ -15,15 +16,35 @@ namespace :build do
15
16
  Dir.chdir('classes') do
16
17
  class_names = %w/
17
18
  Array
19
+ Dir
20
+ Exception
21
+ File
18
22
  Hash
19
- Struct
23
+ IO
24
+ MatchData
25
+ OpenStruct
26
+ Range
27
+ Regexp
28
+ Set
20
29
  String
30
+ Struct
21
31
  Symbol
22
- File
23
- Set
24
32
  Object
25
33
  /
26
- class_dir_names = class_names.collect {|x| x.downcase}
34
+ class_dir_names = []
35
+ correct_dir_names = {
36
+ :IO => 'io',
37
+ :MatchData => 'match_data',
38
+ :OpenStruct => 'open_struct',
39
+ }
40
+ class_names.each do |class_name|
41
+ if correct_dir_names.include?(class_name.to_sym)
42
+ class_dir_name = correct_dir_names.fetch(class_name.to_sym)
43
+ else
44
+ class_dir_name = class_name.downcase
45
+ end
46
+ class_dir_names.push(class_dir_name)
47
+ end
27
48
  class_dir_names.each do |class_dir_name|
28
49
  Dir.chdir(class_dir_name) do
29
50
  case_dir_names = Dir.glob('*').select {|f| File.directory? f}
@@ -40,10 +61,19 @@ namespace :build do
40
61
  end
41
62
  # Make list of links to class sections.
42
63
  File.open('class_links.md', 'w') do |file|
64
+ correct_class_names = {
65
+ :io => 'IO',
66
+ :match_data => 'MatchData',
67
+ :open_struct => 'OpenStruct',
68
+ }
43
69
  class_dir_names.each do |class_dir_name|
44
70
  next if class_dir_name == 'object'
45
- proper_class_name = class_dir_name.capitalize
46
- link_line = "- [#{proper_class_name}](##{class_dir_name})"
71
+ if correct_class_names.include?(class_dir_name.to_sym)
72
+ class_name = correct_class_names.fetch(class_dir_name.to_sym)
73
+ else
74
+ class_name = class_dir_name.capitalize
75
+ end
76
+ link_line = "- [#{class_name}](##{class_name.downcase})"
47
77
  file.puts(link_line)
48
78
  end
49
79
  end
@@ -1,8 +1,15 @@
1
1
  @[:markdown](classes/array/template.md)
2
+ @[:markdown](classes/dir/template.md)
3
+ @[:markdown](classes/exception/template.md)
4
+ @[:markdown](classes/file/template.md)
2
5
  @[:markdown](classes/hash/template.md)
3
- @[:markdown](classes/struct/template.md)
6
+ @[:markdown](classes/io/template.md)
7
+ @[:markdown](classes/match_data/template.md)
8
+ @[:markdown](classes/open_struct/template.md)
9
+ @[:markdown](classes/range/template.md)
10
+ @[:markdown](classes/regexp/template.md)
11
+ @[:markdown](classes/set/template.md)
4
12
  @[:markdown](classes/string/template.md)
13
+ @[:markdown](classes/struct/template.md)
5
14
  @[:markdown](classes/symbol/template.md)
6
- @[:markdown](classes/file/template.md)
7
- @[:markdown](classes/set/template.md)
8
15
  @[:markdown](classes/object/template.md)
@@ -1,7 +1,14 @@
1
1
  - [Array](#array)
2
+ - [Dir](#dir)
3
+ - [Exception](#exception)
4
+ - [File](#file)
2
5
  - [Hash](#hash)
3
- - [Struct](#struct)
6
+ - [IO](#io)
7
+ - [MatchData](#matchdata)
8
+ - [OpenStruct](#openstruct)
9
+ - [Range](#range)
10
+ - [Regexp](#regexp)
11
+ - [Set](#set)
4
12
  - [String](#string)
13
+ - [Struct](#struct)
5
14
  - [Symbol](#symbol)
6
- - [File](#file)
7
- - [Set](#set)
@@ -20,8 +20,10 @@ The circular reference is not followed.
20
20
  ```show.yaml```:
21
21
  ```yaml
22
22
  ---
23
- Array (message='My circular arrays' size=1):
23
+ Array (message='My circular arrays'):
24
+ size: 1
24
25
  Element 0:
25
- Array (size=1):
26
+ Array:
27
+ size: 1
26
28
  Element 0: Array [[[...]]]
27
29
  ```
@@ -1,5 +1,7 @@
1
1
  ---
2
- Array (message='My circular arrays' size=1):
2
+ Array (message='My circular arrays'):
3
+ size: 1
3
4
  Element 0:
4
- Array (size=1):
5
+ Array:
6
+ size: 1
5
7
  Element 0: Array [[[...]]]
@@ -15,16 +15,19 @@ The output shows details of the array.
15
15
  ```show.yaml```:
16
16
  ```yaml
17
17
  ---
18
- Array (message='My mixed array' size=3):
18
+ Array (message='My mixed array'):
19
+ size: 3
19
20
  Element 0: Fixnum 0
20
21
  Element 1:
21
- String (size=3):
22
+ String:
22
23
  to_s: one
24
+ size: 3
23
25
  encoding: !ruby/encoding UTF-8
24
26
  ascii_only?: true
25
27
  bytesize: 3
26
28
  Element 2:
27
- Symbol (size=3):
29
+ Symbol:
28
30
  to_s: two
31
+ size: 3
29
32
  encoding: !ruby/encoding US-ASCII
30
33
  ```
@@ -1,13 +1,16 @@
1
1
  ---
2
- Array (message='My mixed array' size=3):
2
+ Array (message='My mixed array'):
3
+ size: 3
3
4
  Element 0: Fixnum 0
4
5
  Element 1:
5
- String (size=3):
6
+ String:
6
7
  to_s: one
8
+ size: 3
7
9
  encoding: !ruby/encoding UTF-8
8
10
  ascii_only?: true
9
11
  bytesize: 3
10
12
  Element 2:
11
- Symbol (size=3):
13
+ Symbol:
12
14
  to_s: two
15
+ size: 3
13
16
  encoding: !ruby/encoding US-ASCII
@@ -15,14 +15,17 @@ The output shows details of the arrays.
15
15
  ```show.yaml```:
16
16
  ```yaml
17
17
  ---
18
- Array (message='My nested arrays' size=3):
18
+ Array (message='My nested arrays'):
19
+ size: 3
19
20
  Element 0: Fixnum 0
20
21
  Element 1:
21
- Array (size=2):
22
+ Array:
23
+ size: 2
22
24
  Element 0: Fixnum 1
23
25
  Element 1: Fixnum 2
24
26
  Element 2:
25
- Array (size=2):
27
+ Array:
28
+ size: 2
26
29
  Element 0: Fixnum 3
27
30
  Element 1: Fixnum 4
28
31
  ```
@@ -1,11 +1,14 @@
1
1
  ---
2
- Array (message='My nested arrays' size=3):
2
+ Array (message='My nested arrays'):
3
+ size: 3
3
4
  Element 0: Fixnum 0
4
5
  Element 1:
5
- Array (size=2):
6
+ Array:
7
+ size: 2
6
8
  Element 0: Fixnum 1
7
9
  Element 1: Fixnum 2
8
10
  Element 2:
9
- Array (size=2):
11
+ Array:
12
+ size: 2
10
13
  Element 0: Fixnum 3
11
14
  Element 1: Fixnum 4
@@ -15,7 +15,8 @@ The output shows details of the array.
15
15
  ```show.yaml```:
16
16
  ```yaml
17
17
  ---
18
- Array (message='My simple array' size=3):
18
+ Array (message='My simple array'):
19
+ size: 3
19
20
  Element 0: Fixnum 5
20
21
  Element 1: Fixnum 10
21
22
  Element 2: Fixnum 15
@@ -1,5 +1,6 @@
1
1
  ---
2
- Array (message='My simple array' size=3):
2
+ Array (message='My simple array'):
3
+ size: 3
3
4
  Element 0: Fixnum 5
4
5
  Element 1: Fixnum 10
5
6
  Element 2: Fixnum 15
@@ -0,0 +1,28 @@
1
+ #### Simple Dir
2
+
3
+ This example shows a simple ```Dir```.
4
+
5
+ ```show.rb```:
6
+ ```ruby
7
+ require 'debug_helper'
8
+
9
+ dir = Dir.new(File.dirname(__FILE__))
10
+ DebugHelper.show(dir, 'My simple dir')
11
+ ```
12
+
13
+ The output shows details of the ```Dir```.
14
+
15
+ ```show.yaml```:
16
+ ```yaml
17
+ ---
18
+ Dir (message='My simple dir'):
19
+ path: "."
20
+ entries:
21
+ - "."
22
+ - ".."
23
+ - show.md
24
+ - show.rb
25
+ - show.yaml
26
+ - template.md
27
+ exist?: true
28
+ ```