markdown_exec 1.7 → 1.8.1
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +5 -2
- data/CHANGELOG.md +28 -0
- data/Gemfile.lock +1 -1
- data/Rakefile +1 -0
- data/bin/tab_completion.sh +19 -3
- data/examples/colors.md +48 -0
- data/examples/include.md +11 -4
- data/examples/opts.md +7 -0
- data/lib/ansi_formatter.rb +161 -0
- data/lib/directory_searcher.rb +239 -0
- data/lib/env.rb +1 -2
- data/lib/hash_delegator.rb +152 -58
- data/lib/markdown_exec/version.rb +1 -1
- data/lib/markdown_exec.rb +66 -29
- data/lib/mdoc.rb +148 -33
- data/lib/menu.src.yml +94 -17
- data/lib/menu.yml +86 -18
- data/lib/option_value.rb +2 -4
- data/lib/regexp.rb +1 -2
- data/lib/saved_assets.rb +2 -4
- data/lib/saved_files_matcher.rb +3 -7
- data/lib/tap.rb +2 -5
- metadata +5 -2
data/lib/menu.yml
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# MDE - Markdown Executor (1.
|
1
|
+
# MDE - Markdown Executor (1.8.1)
|
2
2
|
---
|
3
3
|
- :description: Show current configuration values
|
4
4
|
:procname: show_config
|
@@ -77,6 +77,46 @@
|
|
77
77
|
:env_var: MDE_DOCUMENT_LOAD_OPTS_BLOCK_NAME
|
78
78
|
:opt_name: document_load_opts_block_name
|
79
79
|
:procname: val_as_str
|
80
|
+
- :arg_name: BOOL
|
81
|
+
:default: false
|
82
|
+
:description: Dump BlocksInFile (stage 1)
|
83
|
+
:env_var: MDE_DUMP_BLOCKS_IN_FILE
|
84
|
+
:opt_name: dump_blocks_in_file
|
85
|
+
:procname: val_as_bool
|
86
|
+
- :arg_name: BOOL
|
87
|
+
:default: false
|
88
|
+
:description: Dump MenuBlocks (stage 2)
|
89
|
+
:env_var: MDE_DUMP_MENU_BLOCKS
|
90
|
+
:opt_name: dump_menu_blocks
|
91
|
+
:procname: val_as_bool
|
92
|
+
- :arg_name: BOOL
|
93
|
+
:default: false
|
94
|
+
:description: Dump selected block
|
95
|
+
:env_var: MDE_DUMP_SELECTED_BLOCK
|
96
|
+
:opt_name: dump_selected_block
|
97
|
+
:procname: val_as_bool
|
98
|
+
- :default: fg_rgbh_E0_E0_20
|
99
|
+
:description: Color of exception detail
|
100
|
+
:env_var: MDE_EXCEPTION_COLOR_DETAIL
|
101
|
+
:opt_name: exception_color_detail
|
102
|
+
:procname: val_as_str
|
103
|
+
- :default: " - %{detail}\n"
|
104
|
+
:description: Format for exception detail
|
105
|
+
:env_var: MDE_EXCEPTION_FORMAT_DETAIL
|
106
|
+
:opt_name: exception_format_detail
|
107
|
+
:procname: val_as_str
|
108
|
+
- :default: fg_rgbh_E0_20_20
|
109
|
+
:description: Color of exception name
|
110
|
+
:env_var: MDE_EXCEPTION_COLOR_NAME
|
111
|
+
:opt_name: exception_color_name
|
112
|
+
:procname: val_as_str
|
113
|
+
- :default: |2-
|
114
|
+
|
115
|
+
%{name}
|
116
|
+
:description: Format for exception name
|
117
|
+
:env_var: MDE_EXCEPTION_FORMAT_NAME
|
118
|
+
:opt_name: exception_format_name
|
119
|
+
:procname: val_as_str
|
80
120
|
- :arg_name: REGEX
|
81
121
|
:default:
|
82
122
|
:description: Exclude blocks with name matching
|
@@ -95,7 +135,7 @@
|
|
95
135
|
:env_var: MDE_EXCLUDE_EXPECT_BLOCKS
|
96
136
|
:opt_name: exclude_expect_blocks
|
97
137
|
:procname: val_as_bool
|
98
|
-
- :default:
|
138
|
+
- :default: fg_rgbh_20_80_80
|
99
139
|
:description: execution_report_preview_frame_color
|
100
140
|
:env_var: MDE_EXECUTION_REPORT_PREVIEW_FRAME_COLOR
|
101
141
|
:opt_name: execution_report_preview_frame_color
|
@@ -133,6 +173,12 @@
|
|
133
173
|
:opt_name: filename
|
134
174
|
:procname: val_as_str
|
135
175
|
:short_name: f
|
176
|
+
- :arg_name: FIND
|
177
|
+
:default: ''
|
178
|
+
:description: Find in documents
|
179
|
+
:long_name: find
|
180
|
+
:procname: find
|
181
|
+
:short_name: "?"
|
136
182
|
- :default: "^# *(?<name>[^#]*?) *$"
|
137
183
|
:env_var: MDE_HEADING1_MATCH
|
138
184
|
:opt_name: heading1_match
|
@@ -165,6 +211,12 @@
|
|
165
211
|
:env_var: MDE_HISTORY_PROPERTY_SEPARATOR
|
166
212
|
:opt_name: history_property_separator
|
167
213
|
:procname: val_as_str
|
214
|
+
- :arg_name: HOW
|
215
|
+
:default: ''
|
216
|
+
:description: Find in YAML configuration options
|
217
|
+
:long_name: how
|
218
|
+
:procname: how
|
219
|
+
:short_name: "?"
|
168
220
|
- :default: "^ *@import +(?<name>.+?) *$"
|
169
221
|
:env_var: MDE_IMPORT_PATTERN
|
170
222
|
:opt_name: import_pattern
|
@@ -218,7 +270,7 @@
|
|
218
270
|
:env_var: MDE_MENU_BACK_AT_TOP
|
219
271
|
:opt_name: menu_back_at_top
|
220
272
|
:procname: val_as_bool
|
221
|
-
- :default:
|
273
|
+
- :default: fg_rgbh_40_c0_f0
|
222
274
|
:description: Color of menu bash
|
223
275
|
:env_var: MDE_MENU_BASH_COLOR
|
224
276
|
:opt_name: menu_bash_color
|
@@ -235,7 +287,7 @@
|
|
235
287
|
:env_var: MDE_MENU_BLOCKS_WITH_HEADINGS
|
236
288
|
:opt_name: menu_blocks_with_headings
|
237
289
|
:procname: val_as_bool
|
238
|
-
- :default:
|
290
|
+
- :default: fg_rgbh_80_80_20
|
239
291
|
:description: Color of menu chrome
|
240
292
|
:env_var: MDE_MENU_CHROME_COLOR
|
241
293
|
:opt_name: menu_chrome_color
|
@@ -245,7 +297,7 @@
|
|
245
297
|
:env_var: MDE_MENU_CHROME_FORMAT
|
246
298
|
:opt_name: menu_chrome_format
|
247
299
|
:procname: val_as_str
|
248
|
-
- :default:
|
300
|
+
- :default: fg_rgbh_20_98_80
|
249
301
|
:description: Color of menu divider
|
250
302
|
:env_var: MDE_MENU_DIVIDER_COLOR
|
251
303
|
:opt_name: menu_divider_color
|
@@ -300,7 +352,7 @@
|
|
300
352
|
:env_var: MDE_MENU_INITIAL_DIVIDER
|
301
353
|
:opt_name: menu_initial_divider
|
302
354
|
:procname: val_as_str
|
303
|
-
- :default:
|
355
|
+
- :default: fg_rgbh_20_E0_20
|
304
356
|
:description: Color of menu link
|
305
357
|
:env_var: MDE_MENU_LINK_COLOR
|
306
358
|
:opt_name: menu_link_color
|
@@ -310,7 +362,7 @@
|
|
310
362
|
:env_var: MDE_MENU_LINK_FORMAT
|
311
363
|
:opt_name: menu_link_format
|
312
364
|
:procname: val_as_str
|
313
|
-
- :default:
|
365
|
+
- :default: fg_rgbh_40_a0_a0
|
314
366
|
:description: Color of menu note
|
315
367
|
:env_var: MDE_MENU_NOTE_COLOR
|
316
368
|
:opt_name: menu_note_color
|
@@ -337,12 +389,12 @@
|
|
337
389
|
:env_var: MDE_MENU_OPTION_EXIT_NAME
|
338
390
|
:opt_name: menu_option_exit_name
|
339
391
|
:procname: val_as_str
|
340
|
-
- :default:
|
392
|
+
- :default: fg_rgbh_E0_60_E0
|
341
393
|
:description: Color of menu opts
|
342
394
|
:env_var: MDE_MENU_OPTS_COLOR
|
343
395
|
:opt_name: menu_opts_color
|
344
396
|
:procname: val_as_str
|
345
|
-
- :default:
|
397
|
+
- :default: fg_rgbh_E0_20_20
|
346
398
|
:description: Color of menu opts
|
347
399
|
:env_var: MDE_MENU_OPTS_SET_COLOR
|
348
400
|
:opt_name: menu_opts_set_color
|
@@ -352,7 +404,7 @@
|
|
352
404
|
:env_var: MDE_MENU_OPTS_SET_FORMAT
|
353
405
|
:opt_name: menu_opts_set_format
|
354
406
|
:procname: val_as_str
|
355
|
-
- :default:
|
407
|
+
- :default: fg_rgbh_A0_20_D0
|
356
408
|
:description: Color of menu task
|
357
409
|
:env_var: MDE_MENU_TASK_COLOR
|
358
410
|
:opt_name: menu_task_color
|
@@ -372,12 +424,12 @@
|
|
372
424
|
:env_var: MDE_MENU_TASK_SYMBOL
|
373
425
|
:opt_name: menu_task_symbol
|
374
426
|
:procname: val_as_str
|
375
|
-
- :default:
|
427
|
+
- :default: fg_rgbh_E0_80_20
|
376
428
|
:description: Color of menu vars
|
377
429
|
:env_var: MDE_MENU_VARS_COLOR
|
378
430
|
:opt_name: menu_vars_color
|
379
431
|
:procname: val_as_str
|
380
|
-
- :default:
|
432
|
+
- :default: fg_rgbh_E0_80_20
|
381
433
|
:description: Color of menu vars
|
382
434
|
:env_var: MDE_MENU_VARS_SET_COLOR
|
383
435
|
:opt_name: menu_vars_set_color
|
@@ -417,12 +469,12 @@
|
|
417
469
|
:env_var: MDE_OUTPUT_EXECUTION_LABEL_FORMAT
|
418
470
|
:opt_name: output_execution_label_format
|
419
471
|
:procname: val_as_str
|
420
|
-
- :default:
|
472
|
+
- :default: fg_rgbh_20_D8_80
|
421
473
|
:description: Color of output_execution_label_name
|
422
474
|
:env_var: MDE_OUTPUT_EXECUTION_LABEL_NAME_COLOR
|
423
475
|
:opt_name: output_execution_label_name_color
|
424
476
|
:procname: val_as_str
|
425
|
-
- :default:
|
477
|
+
- :default: fg_rgbh_20_E0_80
|
426
478
|
:description: Color of output_execution_label_value
|
427
479
|
:env_var: MDE_OUTPUT_EXECUTION_LABEL_VALUE_COLOR
|
428
480
|
:opt_name: output_execution_label_value_color
|
@@ -479,7 +531,7 @@
|
|
479
531
|
:env_var: MDE_PROMPT_APPROVE_BLOCK
|
480
532
|
:opt_name: prompt_approve_block
|
481
533
|
:procname: val_as_str
|
482
|
-
- :default:
|
534
|
+
- :default: fg_rgbh_20_E8_80
|
483
535
|
:description: Color of prompt after script execution
|
484
536
|
:env_var: MDE_PROMPT_COLOR_AFTER_SCRIPT_EXECUTION
|
485
537
|
:opt_name: prompt_color_after_script_execution
|
@@ -538,6 +590,12 @@
|
|
538
590
|
:long_name: run-last-script
|
539
591
|
:opt_name: run_last_script
|
540
592
|
:procname: val_as_bool
|
593
|
+
- :default: 1
|
594
|
+
:description: Runtime exception error level (warn if < 0, ignore if 0, abort if
|
595
|
+
> 0)
|
596
|
+
:env_var: MDE_RUNTIME_EXCEPTION_ERROR_LEVEL
|
597
|
+
:opt_name: runtime_exception_error_level
|
598
|
+
:procname: val_as_int
|
541
599
|
- :arg_name: BOOL
|
542
600
|
:default: false
|
543
601
|
:description: Save executed script
|
@@ -600,7 +658,7 @@
|
|
600
658
|
:env_var: MDE_SAVED_STDOUT_GLOB
|
601
659
|
:opt_name: saved_stdout_glob
|
602
660
|
:procname: val_as_str
|
603
|
-
- :default:
|
661
|
+
- :default: fg_rgbh_20_80_80
|
604
662
|
:description: script_execution_frame_color
|
605
663
|
:env_var: MDE_SCRIPT_EXECUTION_FRAME_COLOR
|
606
664
|
:opt_name: script_execution_frame_color
|
@@ -617,7 +675,7 @@
|
|
617
675
|
:env_var: MDE_SCRIPT_EXECUTION_TAIL
|
618
676
|
:opt_name: script_execution_tail
|
619
677
|
:procname: val_as_str
|
620
|
-
- :default:
|
678
|
+
- :default: fg_rgbh_20_80_80
|
621
679
|
:description: Color of output divider
|
622
680
|
:env_var: MDE_OUTPUT_DIVIDER_COLOR
|
623
681
|
:opt_name: script_preview_frame_color
|
@@ -669,6 +727,16 @@
|
|
669
727
|
:env_var: MDE_SHELL
|
670
728
|
:opt_name: shell
|
671
729
|
:procname: val_as_str
|
730
|
+
- :default: "# -^- +%{name} -^-"
|
731
|
+
:description: shell_code_label_format_above
|
732
|
+
:env_var: MDE_SHELL_CODE_LABEL_FORMAT_ABOVE
|
733
|
+
:opt_name: shell_code_label_format_above
|
734
|
+
:procname: val_as_str
|
735
|
+
- :default: "# -v- +%{name} -v-"
|
736
|
+
:description: shell_code_label_format_below
|
737
|
+
:env_var: MDE_SHELL_CODE_LABEL_FORMAT_BELOW
|
738
|
+
:opt_name: shell_code_label_format_below
|
739
|
+
:procname: val_as_str
|
672
740
|
- :description: List tab completions
|
673
741
|
:long_name: tab-completions
|
674
742
|
:opt_name: tab_completions
|
@@ -685,7 +753,7 @@
|
|
685
753
|
:long_name: version
|
686
754
|
:procname: version
|
687
755
|
:short_name: v
|
688
|
-
- :default:
|
756
|
+
- :default: fg_rgbh_E0_E0_20
|
689
757
|
:description: Color of warning message
|
690
758
|
:env_var: MDE_WARNING_COLOR
|
691
759
|
:opt_name: warning_color
|
data/lib/option_value.rb
CHANGED
@@ -65,8 +65,7 @@ if $PROGRAM_NAME == __FILE__
|
|
65
65
|
end
|
66
66
|
|
67
67
|
def test_for_hash_with_empty_value
|
68
|
-
assert_equal 'default',
|
69
|
-
MarkdownExec::OptionValue.for_hash([], 'default')
|
68
|
+
assert_equal 'default', MarkdownExec::OptionValue.for_hash([], 'default')
|
70
69
|
end
|
71
70
|
|
72
71
|
def test_for_yaml_with_string
|
@@ -83,8 +82,7 @@ if $PROGRAM_NAME == __FILE__
|
|
83
82
|
end
|
84
83
|
|
85
84
|
def test_for_yaml_with_empty_value
|
86
|
-
assert_equal 'default',
|
87
|
-
MarkdownExec::OptionValue.for_yaml([], 'default')
|
85
|
+
assert_equal 'default', MarkdownExec::OptionValue.for_yaml([], 'default')
|
88
86
|
end
|
89
87
|
end
|
90
88
|
end
|
data/lib/regexp.rb
CHANGED
@@ -90,8 +90,7 @@ if $PROGRAM_NAME == __FILE__
|
|
90
90
|
re = /^(?<name>\w+) is (?<age>\d+).*$/
|
91
91
|
fmt = "%<name>s's age is %<age>d and she lives in %<city>s"
|
92
92
|
|
93
|
-
result = re.gsub_format(input_str, re, fmt,
|
94
|
-
context: { city: 'New York' })
|
93
|
+
result = re.gsub_format(input_str, re, fmt, context: { city: 'New York' })
|
95
94
|
|
96
95
|
assert_equal "Jane's age is 25 and she lives in New York", result
|
97
96
|
end
|
data/lib/saved_assets.rb
CHANGED
@@ -18,14 +18,12 @@ module MarkdownExec
|
|
18
18
|
# Generates a formatted script name based on the provided parameters.
|
19
19
|
def self.script_name(filename:, prefix:, time:, blockname:)
|
20
20
|
fne = filename.gsub(FNR11, FNR12)
|
21
|
-
"#{[prefix, time.strftime('%F-%H-%M-%S'), fne, ',',
|
22
|
-
blockname].join('_')}.sh"
|
21
|
+
"#{[prefix, time.strftime('%F-%H-%M-%S'), fne, ',', blockname].join('_')}.sh"
|
23
22
|
end
|
24
23
|
|
25
24
|
# Generates a formatted stdout name based on the provided parameters.
|
26
25
|
def self.stdout_name(filename:, prefix:, time:, blockname:)
|
27
|
-
"#{[prefix, time.strftime('%F-%H-%M-%S'), filename,
|
28
|
-
blockname].join('_')}.out.txt"
|
26
|
+
"#{[prefix, time.strftime('%F-%H-%M-%S'), filename, blockname].join('_')}.out.txt"
|
29
27
|
end
|
30
28
|
end
|
31
29
|
end
|
data/lib/saved_files_matcher.rb
CHANGED
@@ -45,19 +45,15 @@ if $PROGRAM_NAME == __FILE__
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def test_list_all
|
48
|
-
assert_kind_of Array,
|
49
|
-
MarkdownExec::SavedFilesMatcher.list_all(@folder, @glob)
|
48
|
+
assert_kind_of Array, MarkdownExec::SavedFilesMatcher.list_all(@folder, @glob)
|
50
49
|
end
|
51
50
|
|
52
51
|
def test_most_recent
|
53
|
-
assert_match(/\.md$/,
|
54
|
-
MarkdownExec::SavedFilesMatcher.most_recent(@folder,
|
55
|
-
@glob))
|
52
|
+
assert_match(/\.md$/, MarkdownExec::SavedFilesMatcher.most_recent(@folder, @glob))
|
56
53
|
end
|
57
54
|
|
58
55
|
def test_most_recent_list
|
59
|
-
result = MarkdownExec::SavedFilesMatcher.most_recent_list(@folder,
|
60
|
-
@glob, 5)
|
56
|
+
result = MarkdownExec::SavedFilesMatcher.most_recent_list(@folder, @glob, 5)
|
61
57
|
assert_kind_of Array, result
|
62
58
|
assert_operator result.size, :<=, 16
|
63
59
|
end
|
data/lib/tap.rb
CHANGED
@@ -107,9 +107,7 @@ module Tap
|
|
107
107
|
outs = []
|
108
108
|
outs.push(source.to_s) if source.present?
|
109
109
|
|
110
|
-
vs = (caller_first || caller[0]).scan(/in `?(\S+)'$/).fetch(0, []).fetch(
|
111
|
-
0, ''
|
112
|
-
)
|
110
|
+
vs = (caller_first || caller[0]).scan(/in `?(\S+)'$/).fetch(0, []).fetch(0, '')
|
113
111
|
outs.push("#{vs}()") if vs.present?
|
114
112
|
|
115
113
|
outs.push(tap_named_value(name_ || name, method(fn).call))
|
@@ -144,8 +142,7 @@ module Tap
|
|
144
142
|
|
145
143
|
# :reek:ControlParameter
|
146
144
|
# :reek:LongParameterList
|
147
|
-
def tap_yaml(name_ = nil, caller_first: nil, mask: TDD, name: DN,
|
148
|
-
source: nil)
|
145
|
+
def tap_yaml(name_ = nil, caller_first: nil, mask: TDD, name: DN, source: nil)
|
149
146
|
tap_inspect name_, caller_first: (caller_first || caller[0]),
|
150
147
|
mask: mask, name: name, source: source, type: :yaml
|
151
148
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: markdown_exec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fareed Stevenson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-12-
|
11
|
+
date: 2023-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: clipboard
|
@@ -113,6 +113,7 @@ files:
|
|
113
113
|
- bin/setup
|
114
114
|
- bin/tab_completion.sh
|
115
115
|
- bin/tab_completion.sh.erb
|
116
|
+
- examples/colors.md
|
116
117
|
- examples/duplicate_block.md
|
117
118
|
- examples/import0.md
|
118
119
|
- examples/import1.md
|
@@ -127,6 +128,7 @@ files:
|
|
127
128
|
- examples/port.md
|
128
129
|
- examples/vars.md
|
129
130
|
- examples/wrap.md
|
131
|
+
- lib/ansi_formatter.rb
|
130
132
|
- lib/array.rb
|
131
133
|
- lib/array_util.rb
|
132
134
|
- lib/block_label.rb
|
@@ -135,6 +137,7 @@ files:
|
|
135
137
|
- lib/cli.rb
|
136
138
|
- lib/colorize.rb
|
137
139
|
- lib/constants.rb
|
140
|
+
- lib/directory_searcher.rb
|
138
141
|
- lib/env.rb
|
139
142
|
- lib/exceptions.rb
|
140
143
|
- lib/fcb.rb
|