debug_helper 1.7.0 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
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
+ ```