markdown_helper 2.3.0 → 2.4.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 (91) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/README.md +24 -17
  4. data/bin/_run_irb +46 -0
  5. data/lib/markdown_helper.rb +3 -384
  6. data/lib/markdown_helper/markdown_helper.rb +79 -0
  7. data/lib/markdown_helper/markdown_includer.rb +315 -0
  8. data/lib/markdown_helper/markdown_irb_runner.rb +65 -0
  9. data/lib/markdown_helper/version.rb +1 -1
  10. data/markdown/readme/README.template.md +21 -16
  11. data/markdown/use_cases/Rakefile +9 -2
  12. data/markdown/use_cases/include/diagnose_circular_includes/diagnose_circular_includes.err +26 -0
  13. data/markdown/use_cases/{include_files → include}/diagnose_circular_includes/includer.md +0 -0
  14. data/markdown/use_cases/{include_files → include}/diagnose_circular_includes/includer_0.md +0 -0
  15. data/markdown/use_cases/{include_files → include}/diagnose_circular_includes/includer_1.md +0 -0
  16. data/markdown/use_cases/{include_files → include}/diagnose_circular_includes/includer_2.md +0 -0
  17. data/markdown/use_cases/{include_files → include}/diagnose_circular_includes/use_case.md +8 -8
  18. data/markdown/use_cases/{include_files → include}/diagnose_circular_includes/use_case_template.md +0 -0
  19. data/markdown/use_cases/include/diagnose_missing_includee/diagnose_missing_includee.err +26 -0
  20. data/markdown/use_cases/{include_files → include}/diagnose_missing_includee/includer.md +0 -0
  21. data/markdown/use_cases/{include_files → include}/diagnose_missing_includee/includer_0.md +0 -0
  22. data/markdown/use_cases/{include_files → include}/diagnose_missing_includee/includer_1.md +0 -0
  23. data/markdown/use_cases/{include_files → include}/diagnose_missing_includee/includer_2.md +0 -0
  24. data/markdown/use_cases/{include_files → include}/diagnose_missing_includee/use_case.md +8 -8
  25. data/markdown/use_cases/{include_files → include}/diagnose_missing_includee/use_case_template.md +0 -0
  26. data/markdown/use_cases/{include_files → include}/include.rb +0 -0
  27. data/markdown/use_cases/{include_files → include}/include_code_block/hello.rb +0 -0
  28. data/markdown/use_cases/{include_files → include}/include_code_block/included.md +0 -0
  29. data/markdown/use_cases/{include_files → include}/include_code_block/includer.md +0 -0
  30. data/markdown/use_cases/{include_files → include}/include_code_block/use_case.md +0 -0
  31. data/markdown/use_cases/{include_files → include}/include_code_block/use_case_template.md +0 -0
  32. data/markdown/use_cases/{include_files → include}/include_generated_text/use_case.md +0 -0
  33. data/markdown/use_cases/{include_files → include}/include_generated_text/use_case_template.md +0 -0
  34. data/markdown/use_cases/{include_files → include}/include_highlighted_code/hello.rb +0 -0
  35. data/markdown/use_cases/{include_files → include}/include_highlighted_code/included.md +0 -0
  36. data/markdown/use_cases/{include_files → include}/include_highlighted_code/includer.md +0 -0
  37. data/markdown/use_cases/{include_files → include}/include_highlighted_code/use_case.md +0 -0
  38. data/markdown/use_cases/{include_files → include}/include_highlighted_code/use_case_template.md +0 -0
  39. data/markdown/use_cases/{include_files → include}/include_markdown/included.md +0 -0
  40. data/markdown/use_cases/{include_files → include}/include_markdown/includer.md +0 -0
  41. data/markdown/use_cases/{include_files → include}/include_markdown/markdown.md +0 -0
  42. data/markdown/use_cases/{include_files → include}/include_markdown/use_case.md +0 -0
  43. data/markdown/use_cases/{include_files → include}/include_markdown/use_case_template.md +0 -0
  44. data/markdown/use_cases/{include_files → include}/include_page_toc/included.md +0 -0
  45. data/markdown/use_cases/{include_files → include}/include_page_toc/includer.md +0 -0
  46. data/markdown/use_cases/{include_files → include}/include_page_toc/markdown_0.md +0 -0
  47. data/markdown/use_cases/{include_files → include}/include_page_toc/markdown_1.md +0 -0
  48. data/markdown/use_cases/{include_files → include}/include_page_toc/use_case.md +0 -0
  49. data/markdown/use_cases/{include_files → include}/include_page_toc/use_case_template.md +0 -0
  50. data/markdown/use_cases/{include_files → include}/include_text_as_comment/hello.rb +0 -0
  51. data/markdown/use_cases/{include_files → include}/include_text_as_comment/included.md +0 -0
  52. data/markdown/use_cases/{include_files → include}/include_text_as_comment/includer.md +0 -0
  53. data/markdown/use_cases/{include_files → include}/include_text_as_comment/use_case.md +0 -0
  54. data/markdown/use_cases/{include_files → include}/include_text_as_comment/use_case_template.md +0 -0
  55. data/markdown/use_cases/{include_files → include}/include_text_as_details/details.md +0 -0
  56. data/markdown/use_cases/{include_files → include}/include_text_as_details/included.md +0 -0
  57. data/markdown/use_cases/{include_files → include}/include_text_as_details/includer.md +0 -0
  58. data/markdown/use_cases/{include_files → include}/include_text_as_details/use_case.md +0 -0
  59. data/markdown/use_cases/{include_files → include}/include_text_as_details/use_case_template.md +0 -0
  60. data/markdown/use_cases/{include_files → include}/include_text_as_pre/included.md +0 -0
  61. data/markdown/use_cases/{include_files → include}/include_text_as_pre/includer.md +0 -0
  62. data/markdown/use_cases/{include_files → include}/include_text_as_pre/triple_backtick.md +0 -0
  63. data/markdown/use_cases/{include_files → include}/include_text_as_pre/use_case.md +0 -0
  64. data/markdown/use_cases/{include_files → include}/include_text_as_pre/use_case_template.md +0 -0
  65. data/markdown/use_cases/{include_files → include}/include_with_added_comments/included.md +0 -0
  66. data/markdown/use_cases/{include_files → include}/include_with_added_comments/includee.md +0 -0
  67. data/markdown/use_cases/{include_files → include}/include_with_added_comments/includer.md +0 -0
  68. data/markdown/use_cases/{include_files → include}/include_with_added_comments/use_case.md +0 -0
  69. data/markdown/use_cases/{include_files → include}/include_with_added_comments/use_case_template.md +0 -0
  70. data/markdown/use_cases/{include_files → include}/interface.md +0 -0
  71. data/markdown/use_cases/{include_files → include}/nest_inclusions/included.md +0 -0
  72. data/markdown/use_cases/{include_files → include}/nest_inclusions/includee.md +0 -0
  73. data/markdown/use_cases/{include_files → include}/nest_inclusions/includer.md +0 -0
  74. data/markdown/use_cases/{include_files → include}/nest_inclusions/nested_includee.md +0 -0
  75. data/markdown/use_cases/{include_files → include}/nest_inclusions/use_case.md +0 -0
  76. data/markdown/use_cases/{include_files → include}/nest_inclusions/use_case_template.md +0 -0
  77. data/markdown/use_cases/{include_files → include}/reuse_text/included.md +0 -0
  78. data/markdown/use_cases/{include_files → include}/reuse_text/includee.md +0 -0
  79. data/markdown/use_cases/{include_files → include}/reuse_text/includer.md +0 -0
  80. data/markdown/use_cases/{include_files → include}/reuse_text/use_case.md +0 -0
  81. data/markdown/use_cases/{include_files → include}/reuse_text/use_case_template.md +0 -0
  82. data/markdown/use_cases/run_irb/interface.md +16 -0
  83. data/markdown/use_cases/run_irb/run_irb.rb +5 -0
  84. data/markdown/use_cases/run_irb/run_irb/markdown.md +43 -0
  85. data/markdown/use_cases/run_irb/run_irb/template.md +37 -0
  86. data/markdown/use_cases/run_irb/run_irb/use_case.md +178 -0
  87. data/markdown/use_cases/run_irb/run_irb/use_case_template.md +33 -0
  88. data/markdown/use_cases/use_cases.md +17 -14
  89. metadata +82 -72
  90. data/markdown/use_cases/include_files/diagnose_circular_includes/diagnose_circular_includes.err +0 -26
  91. data/markdown/use_cases/include_files/diagnose_missing_includee/diagnose_missing_includee.err +0 -26
@@ -1,3 +1,3 @@
1
1
  class MarkdownHelper
2
- VERSION = '2.3.0'
2
+ VERSION = '2.4.0'
3
3
  end
@@ -2,11 +2,11 @@
2
2
 
3
3
  [![Gem](https://img.shields.io/gem/v/markdown_helper.svg?style=flat)](http://rubygems.org/gems/markdown_helper "View this project in Rubygems")
4
4
 
5
- ## What's New?
5
+ @[:page_toc](## Contents)
6
6
 
7
- Inclusion of text as details is added. See the [use case](markdown/use_cases/include_files/include_text_as_details/use_case.md#include-text-as-details).
7
+ ## Installation
8
8
 
9
- @[:page_toc](## Contents)
9
+ ```gem install markdown_helper```
10
10
 
11
11
  ## What's a Markdown Helper?
12
12
 
@@ -14,6 +14,7 @@ Class <code>MarkdownHelper</code> supports:
14
14
 
15
15
  * [File inclusion](#file-inclusion): to include text from other files, as code-block or markdown.
16
16
  * [Page TOC](#page-toc): to create and insert the table of contents for a markdown page.
17
+ * [Run irb](#run-irb): to execute Ruby snippets in the Ruby interactive shell (```irb```) and include the output in markdown.
17
18
 
18
19
  ## How It Works
19
20
 
@@ -46,41 +47,41 @@ See all [use cases](markdown/use_cases/use_cases.md#use-cases).
46
47
 
47
48
  ### Re-use Text
48
49
 
49
- Keep your markdown DRY (Don't Repeat Yourself) by re-using text. See the [use case](markdown/use_cases/include_files/reuse_text/use_case.md#reuse-text).
50
+ Keep your markdown DRY (Don't Repeat Yourself) by re-using text. See the [use case](markdown/use_cases/include/reuse_text/use_case.md#reuse-text).
50
51
 
51
52
  ### Include Generated Text
52
53
 
53
- In particular, you can include text that's built during your "readme build." See the [use case](markdown/use_cases/include_files/include_generated_text/use_case.md#include-generated-text).
54
+ In particular, you can include text that's built during your "readme build." See the [use case](markdown/use_cases/include/include_generated_text/use_case.md#include-generated-text).
54
55
 
55
56
  ### Nest Inclusions
56
57
 
57
- You can nest inclusions. See the [use case](markdown/use_cases/include_files/nest_inclusions/use_case.md#nest-inclusions).
58
+ You can nest inclusions. See the [use case](markdown/use_cases/include/nest_inclusions/use_case.md#nest-inclusions).
58
59
 
59
60
  ### Merged Text Formats
60
61
 
61
62
  #### Markdown
62
63
 
63
- You can include text that is to be treated simply as markdown. See the [use case](markdown/use_cases/include_files/include_markdown/use_case.md#include-markdown).
64
+ You can include text that is to be treated simply as markdown. See the [use case](markdown/use_cases/include/include_markdown/use_case.md#include-markdown).
64
65
 
65
66
  #### Highlighted Code Block
66
67
 
67
- You can include a code block that's to be highlighted. See the [use case](markdown/use_cases/include_files/include_highlighted_code/use_case.md#include-highlighted-code).
68
+ You can include a code block that's to be highlighted. See the [use case](markdown/use_cases/include/include_highlighted_code/use_case.md#include-highlighted-code).
68
69
 
69
70
  #### Plain Code Block
70
71
 
71
- You can also include a code block without highlighting. See the [use case](markdown/use_cases/include_files/include_code_block/use_case.md#include-code-block).
72
+ You can also include a code block without highlighting. See the [use case](markdown/use_cases/include/include_code_block/use_case.md#include-code-block).
72
73
 
73
74
  #### Comment
74
75
 
75
- You can include text that's to become a comment in the markdown. See the [use case](markdown/use_cases/include_files/include_text_as_comment/use_case.md#include-text-as-comment).
76
+ You can include text that's to become a comment in the markdown. See the [use case](markdown/use_cases/include/include_text_as_comment/use_case.md#include-text-as-comment).
76
77
 
77
78
  #### Details
78
79
 
79
- You can include text that's to become details in the markdown. See the [use case](markdown/use_cases/include_files/include_text_as_details/use_case.md#include-text-as-details).
80
+ You can include text that's to become details in the markdown. See the [use case](markdown/use_cases/include/include_text_as_details/use_case.md#include-text-as-details).
80
81
 
81
82
  ### Pre-Formatted Text
82
83
 
83
- You can include text that's pre-formatted. See the [use case](markdown/use_cases/include_files/include_text_as_pre/use_case.md#include-text-as-pre).
84
+ You can include text that's pre-formatted. See the [use case](markdown/use_cases/include/include_text_as_pre/use_case.md#include-text-as-pre).
84
85
 
85
86
  ### Usage
86
87
 
@@ -115,21 +116,25 @@ where:
115
116
 
116
117
  #### Page TOC
117
118
 
118
- You can specify the location for an automatically-generated page TOC (table of cotents). See the [use case](markdown/use_cases/include_files/include_page_toc/use_case.md#include-page-toc).
119
+ You can specify the location for an automatically-generated page TOC (table of cotents). See the [use case](markdown/use_cases/include/include_page_toc/use_case.md#include-page-toc).
119
120
 
120
121
  #### Diagnostics
121
122
 
122
123
  ##### "Noisy" (Not Pristine)
123
124
 
124
- By default, the markdown helper inserts comments indicating inclusions. See the [use case](markdown/use_cases/include_files/include_with_added_comments/use_case.md#include-with-added-comments).
125
+ By default, the markdown helper inserts comments indicating inclusions. See the [use case](markdown/use_cases/include/include_with_added_comments/use_case.md#include-with-added-comments).
125
126
 
126
127
  ##### Missing Includee File
127
128
 
128
- A missing includee file causes an exception that shows an inclusion backtrace. See the [use case](markdown/use_cases/include_files/diagnose_missing_includee/use_case.md#diagnose-missing-includee).
129
+ A missing includee file causes an exception that shows an inclusion backtrace. See the [use case](markdown/use_cases/include/diagnose_missing_includee/use_case.md#diagnose-missing-includee).
129
130
 
130
131
  ##### Circular Inclusion
131
132
 
132
- A circular inclusion causes an exception that shows an inclusion backtrace. See the [use case](markdown/use_cases/include_files/diagnose_circular_includes/use_case.md#diagnose-circular-includes).
133
+ A circular inclusion causes an exception that shows an inclusion backtrace. See the [use case](markdown/use_cases/include/diagnose_circular_includes/use_case.md#diagnose-circular-includes).
134
+
135
+ ## Run ```irb```
136
+
137
+ * Execute Ruby snippets in the Ruby interactive shell (```irb```) and include the output in markdown. See the [use case](markdown/use_cases/run_irb/run_irb/use_case.md#run-irb).
133
138
 
134
139
  ## What Should Be Next?
135
140
 
@@ -18,7 +18,7 @@ EOT
18
18
  dir_path = File.dirname(__FILE__)
19
19
  Dir.chdir(dir_path) do
20
20
  use_case_dirs = {
21
- :include_files => %w/
21
+ :include => %w/
22
22
  reuse_text
23
23
  nest_inclusions
24
24
  include_markdown
@@ -33,6 +33,9 @@ EOT
33
33
  diagnose_missing_includee
34
34
  diagnose_circular_includes
35
35
  /,
36
+ :run_irb => %w/
37
+ run_irb
38
+ /
36
39
  }
37
40
  use_case_dirs.each_pair do |section, dir_names|
38
41
 
@@ -54,7 +57,7 @@ EOT
54
57
  dir_names.each do |dir_name|
55
58
  Dir.chdir("#{section}/#{dir_name}") do
56
59
  if File.exist?('includer.md')
57
- command = 'markdown_helper include --pristine includer.md included.md'
60
+ command = "markdown_helper #{section} --pristine includer.md included.md"
58
61
  if backtrace_cases.include?(dir_name)
59
62
  # Capture the exception.
60
63
  command += " 2> #{dir_name}.err"
@@ -68,6 +71,10 @@ EOT
68
71
  system(command)
69
72
  end
70
73
  end
74
+ if File.exist?('template.md')
75
+ command = "markdown_helper #{section} --pristine template.md markdown.md"
76
+ system(command)
77
+ end
71
78
  command = 'markdown_helper include --pristine use_case_template.md use_case.md'
72
79
  system(command)
73
80
 
@@ -0,0 +1,26 @@
1
+ C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/markdown_helper-2.3.0/bin/_include: Includes are circular: (MarkdownHelper::CircularIncludeError)
2
+ Backtrace (innermost include first):
3
+ Level 0:
4
+ Includer:
5
+ Location: markdown/use_cases/include/diagnose_circular_includes/includer_2.md:0
6
+ Include pragma: @[:markdown](includer_0.md)
7
+ Includee:
8
+ File path: markdown/use_cases/include/diagnose_circular_includes/includer_0.md
9
+ Level 1:
10
+ Includer:
11
+ Location: markdown/use_cases/include/diagnose_circular_includes/includer_1.md:0
12
+ Include pragma: @[:markdown](includer_2.md)
13
+ Includee:
14
+ File path: markdown/use_cases/include/diagnose_circular_includes/includer_2.md
15
+ Level 2:
16
+ Includer:
17
+ Location: markdown/use_cases/include/diagnose_circular_includes/includer_0.md:0
18
+ Include pragma: @[:markdown](includer_1.md)
19
+ Includee:
20
+ File path: markdown/use_cases/include/diagnose_circular_includes/includer_1.md
21
+ Level 3:
22
+ Includer:
23
+ Location: markdown/use_cases/include/diagnose_circular_includes/includer.md:0
24
+ Include pragma: @[:markdown](includer_0.md)
25
+ Includee:
26
+ File path: markdown/use_cases/include/diagnose_circular_includes/includer_0.md
@@ -64,26 +64,26 @@ C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/markdown_helper-2.3.0/bin/_include: Inclu
64
64
  Backtrace (innermost include first):
65
65
  Level 0:
66
66
  Includer:
67
- Location: markdown/use_cases/include_files/diagnose_circular_includes/includer_2.md:0
67
+ Location: markdown/use_cases/include/diagnose_circular_includes/includer_2.md:0
68
68
  Include pragma: @[:markdown](includer_0.md)
69
69
  Includee:
70
- File path: markdown/use_cases/include_files/diagnose_circular_includes/includer_0.md
70
+ File path: markdown/use_cases/include/diagnose_circular_includes/includer_0.md
71
71
  Level 1:
72
72
  Includer:
73
- Location: markdown/use_cases/include_files/diagnose_circular_includes/includer_1.md:0
73
+ Location: markdown/use_cases/include/diagnose_circular_includes/includer_1.md:0
74
74
  Include pragma: @[:markdown](includer_2.md)
75
75
  Includee:
76
- File path: markdown/use_cases/include_files/diagnose_circular_includes/includer_2.md
76
+ File path: markdown/use_cases/include/diagnose_circular_includes/includer_2.md
77
77
  Level 2:
78
78
  Includer:
79
- Location: markdown/use_cases/include_files/diagnose_circular_includes/includer_0.md:0
79
+ Location: markdown/use_cases/include/diagnose_circular_includes/includer_0.md:0
80
80
  Include pragma: @[:markdown](includer_1.md)
81
81
  Includee:
82
- File path: markdown/use_cases/include_files/diagnose_circular_includes/includer_1.md
82
+ File path: markdown/use_cases/include/diagnose_circular_includes/includer_1.md
83
83
  Level 3:
84
84
  Includer:
85
- Location: markdown/use_cases/include_files/diagnose_circular_includes/includer.md:0
85
+ Location: markdown/use_cases/include/diagnose_circular_includes/includer.md:0
86
86
  Include pragma: @[:markdown](includer_0.md)
87
87
  Includee:
88
- File path: markdown/use_cases/include_files/diagnose_circular_includes/includer_0.md
88
+ File path: markdown/use_cases/include/diagnose_circular_includes/includer_0.md
89
89
  ```
@@ -0,0 +1,26 @@
1
+ C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/markdown_helper-2.3.0/bin/_include: Could not read includee file: (MarkdownHelper::UnreadableIncludeeError)
2
+ Backtrace (innermost include first):
3
+ Level 0:
4
+ Includer:
5
+ Location: markdown/use_cases/include/diagnose_missing_includee/includer_2.md:0
6
+ Include pragma: @[:markdown](includer_3.md)
7
+ Includee:
8
+ File path: markdown/use_cases/include/diagnose_missing_includee/includer_3.md
9
+ Level 1:
10
+ Includer:
11
+ Location: markdown/use_cases/include/diagnose_missing_includee/includer_1.md:0
12
+ Include pragma: @[:markdown](includer_2.md)
13
+ Includee:
14
+ File path: markdown/use_cases/include/diagnose_missing_includee/includer_2.md
15
+ Level 2:
16
+ Includer:
17
+ Location: markdown/use_cases/include/diagnose_missing_includee/includer_0.md:0
18
+ Include pragma: @[:markdown](includer_1.md)
19
+ Includee:
20
+ File path: markdown/use_cases/include/diagnose_missing_includee/includer_1.md
21
+ Level 3:
22
+ Includer:
23
+ Location: markdown/use_cases/include/diagnose_missing_includee/includer.md:0
24
+ Include pragma: @[:markdown](includer_0.md)
25
+ Includee:
26
+ File path: markdown/use_cases/include/diagnose_missing_includee/includer_0.md
@@ -66,26 +66,26 @@ C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/markdown_helper-2.3.0/bin/_include: Could
66
66
  Backtrace (innermost include first):
67
67
  Level 0:
68
68
  Includer:
69
- Location: markdown/use_cases/include_files/diagnose_missing_includee/includer_2.md:0
69
+ Location: markdown/use_cases/include/diagnose_missing_includee/includer_2.md:0
70
70
  Include pragma: @[:markdown](includer_3.md)
71
71
  Includee:
72
- File path: markdown/use_cases/include_files/diagnose_missing_includee/includer_3.md
72
+ File path: markdown/use_cases/include/diagnose_missing_includee/includer_3.md
73
73
  Level 1:
74
74
  Includer:
75
- Location: markdown/use_cases/include_files/diagnose_missing_includee/includer_1.md:0
75
+ Location: markdown/use_cases/include/diagnose_missing_includee/includer_1.md:0
76
76
  Include pragma: @[:markdown](includer_2.md)
77
77
  Includee:
78
- File path: markdown/use_cases/include_files/diagnose_missing_includee/includer_2.md
78
+ File path: markdown/use_cases/include/diagnose_missing_includee/includer_2.md
79
79
  Level 2:
80
80
  Includer:
81
- Location: markdown/use_cases/include_files/diagnose_missing_includee/includer_0.md:0
81
+ Location: markdown/use_cases/include/diagnose_missing_includee/includer_0.md:0
82
82
  Include pragma: @[:markdown](includer_1.md)
83
83
  Includee:
84
- File path: markdown/use_cases/include_files/diagnose_missing_includee/includer_1.md
84
+ File path: markdown/use_cases/include/diagnose_missing_includee/includer_1.md
85
85
  Level 3:
86
86
  Includer:
87
- Location: markdown/use_cases/include_files/diagnose_missing_includee/includer.md:0
87
+ Location: markdown/use_cases/include/diagnose_missing_includee/includer.md:0
88
88
  Include pragma: @[:markdown](includer_0.md)
89
89
  Includee:
90
- File path: markdown/use_cases/include_files/diagnose_missing_includee/includer_0.md
90
+ File path: markdown/use_cases/include/diagnose_missing_includee/includer_0.md
91
91
  ```
@@ -0,0 +1,16 @@
1
+ #### Run Irb Via <code>markdown_helper</code>
2
+ <details>
3
+ <summary>CLI</summary>
4
+
5
+ ```sh
6
+ markdown_helper run_irb --pristine template.md markdown.md
7
+ ```
8
+
9
+ @[:markdown](../pristine.md)
10
+ </details>
11
+ <details>
12
+ <summary>API</summary>
13
+
14
+ @[ruby](../run_irb.rb)
15
+
16
+ </details>