markdown_exec 1.5 → 1.7
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 +1 -1
- data/CHANGELOG.md +10 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +6 -1
- data/Rakefile +1 -0
- data/bin/tab_completion.sh +2 -2
- data/examples/import0.md +41 -5
- data/examples/import1.md +9 -8
- data/examples/linked1.md +8 -4
- data/examples/opts.md +4 -7
- data/lib/array.rb +27 -0
- data/lib/array_util.rb +21 -0
- data/lib/cached_nested_file_reader.rb +51 -31
- data/lib/constants.rb +46 -0
- data/lib/env.rb +2 -1
- data/lib/exceptions.rb +34 -0
- data/lib/fcb.rb +41 -1
- data/lib/filter.rb +32 -17
- data/lib/fout.rb +52 -0
- data/lib/hash.rb +21 -0
- data/lib/hash_delegator.rb +2709 -0
- data/lib/markdown_exec/version.rb +1 -1
- data/lib/markdown_exec.rb +137 -1456
- data/lib/mdoc.rb +0 -3
- data/lib/menu.src.yml +145 -31
- data/lib/menu.yml +136 -27
- data/lib/method_sorter.rb +19 -17
- data/lib/object_present.rb +1 -1
- data/lib/option_value.rb +4 -2
- data/lib/pty1.rb +26 -0
- data/lib/regexp.rb +4 -5
- data/lib/saved_assets.rb +4 -2
- data/lib/saved_files_matcher.rb +7 -3
- data/lib/shared.rb +0 -5
- data/lib/string_util.rb +22 -0
- data/lib/tap.rb +5 -2
- metadata +11 -3
- data/lib/environment_opt_parse.rb +0 -209
data/lib/mdoc.rb
CHANGED
@@ -209,9 +209,6 @@ module MarkdownExec
|
|
209
209
|
end
|
210
210
|
end
|
211
211
|
|
212
|
-
# def load_auto_blocks(opts)
|
213
|
-
# end
|
214
|
-
|
215
212
|
# Recursively fetches required code blocks for a given list of requirements.
|
216
213
|
#
|
217
214
|
# @param reqs [Array<String>] An array of requirements to start the recursion from.
|
data/lib/menu.src.yml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
- :description: Show current configuration values
|
3
3
|
:procname: show_config
|
4
|
-
:short_name:
|
4
|
+
:short_name: "0"
|
5
5
|
|
6
6
|
- :arg_name: BOOL
|
7
7
|
:default: false
|
@@ -113,17 +113,37 @@
|
|
113
113
|
:opt_name: exclude_expect_blocks
|
114
114
|
:procname: val_as_bool
|
115
115
|
|
116
|
+
- :default: magenta
|
117
|
+
:description: execution_report_preview_frame_color
|
118
|
+
:env_var: MDE_EXECUTION_REPORT_PREVIEW_FRAME_COLOR
|
119
|
+
:opt_name: execution_report_preview_frame_color
|
120
|
+
:procname: val_as_str
|
121
|
+
|
122
|
+
- :default: "\n -^-"
|
123
|
+
:description: execution_report_preview_head
|
124
|
+
:env_var: MDE_EXECUTION_REPORT_PREVIEW_HEAD
|
125
|
+
:opt_name: execution_report_preview_head
|
126
|
+
:procname: val_as_str
|
127
|
+
|
128
|
+
- :default: " -v-"
|
129
|
+
:description: execution_report_preview_tail
|
130
|
+
:env_var: MDE_EXECUTION_REPORT_PREVIEW_TAIL
|
131
|
+
:opt_name: execution_report_preview_tail
|
132
|
+
:procname: val_as_str
|
133
|
+
|
116
134
|
- :description: Exit app
|
117
135
|
:long_name: exit
|
118
136
|
:procname: exit
|
119
137
|
:short_name: x
|
120
138
|
|
121
|
-
|
139
|
+
## match fenced code indented by spaces
|
140
|
+
#
|
141
|
+
- :default: "^(?<indent> *)`{3,}"
|
122
142
|
:env_var: MDE_FENCED_START_AND_END_REGEX
|
123
143
|
:opt_name: fenced_start_and_end_regex
|
124
144
|
:procname: val_as_str
|
125
145
|
|
126
|
-
- :default: "
|
146
|
+
- :default: "^(?<indent> *)`{3,}(?<shell>[^`\\s]*) *:?(?<name>[^\\s]*) *(?<rest>.*) *$"
|
127
147
|
:env_var: MDE_FENCED_START_EXTENDED_REGEX
|
128
148
|
:opt_name: fenced_start_extended_regex
|
129
149
|
:procname: val_as_str
|
@@ -176,7 +196,7 @@
|
|
176
196
|
:opt_name: history_property_separator
|
177
197
|
:procname: val_as_str
|
178
198
|
|
179
|
-
- :default: "^ *@import (
|
199
|
+
- :default: "^ *@import +(?<name>.+?) *$"
|
180
200
|
:env_var: MDE_IMPORT_PATTERN
|
181
201
|
:opt_name: import_pattern
|
182
202
|
:procname: val_as_str
|
@@ -311,6 +331,26 @@
|
|
311
331
|
:opt_name: menu_final_divider
|
312
332
|
:procname: val_as_str
|
313
333
|
|
334
|
+
- :default: "0"
|
335
|
+
:description: Import levels for blocks to appear in menu. Empty is all.
|
336
|
+
:env_var: MDE_MENU_IMPORT_LEVEL_MATCH
|
337
|
+
:opt_name: menu_import_level_match
|
338
|
+
:procname: val_as_str
|
339
|
+
|
340
|
+
- :arg_name: BOOL
|
341
|
+
:default: true
|
342
|
+
:description: Include imported blocks in menu
|
343
|
+
:env_var: MDE_MENU_INCLUDE_IMPORTED_BLOCKS
|
344
|
+
:opt_name: menu_include_imported_blocks
|
345
|
+
:procname: val_as_bool
|
346
|
+
|
347
|
+
- :arg_name: BOOL
|
348
|
+
:default: false
|
349
|
+
:description: Include imported notes in menu
|
350
|
+
:env_var: MDE_MENU_INCLUDE_IMPORTED_NOTES
|
351
|
+
:opt_name: menu_include_imported_notes
|
352
|
+
:procname: val_as_bool
|
353
|
+
|
314
354
|
- :default:
|
315
355
|
:line: ""
|
316
356
|
:description: opening demarcation for menu
|
@@ -330,7 +370,7 @@
|
|
330
370
|
:opt_name: menu_link_format
|
331
371
|
:procname: val_as_str
|
332
372
|
|
333
|
-
- :default:
|
373
|
+
- :default: fg_rgbh_88_88_88
|
334
374
|
:description: Color of menu note
|
335
375
|
:env_var: MDE_MENU_NOTE_COLOR
|
336
376
|
:opt_name: menu_note_color
|
@@ -342,7 +382,9 @@
|
|
342
382
|
:opt_name: menu_note_format
|
343
383
|
:procname: val_as_str
|
344
384
|
|
345
|
-
-
|
385
|
+
## all non-blank lines are notes
|
386
|
+
#
|
387
|
+
- :default: "^(?<line>.*?) *$"
|
346
388
|
:description: Pattern for notes in block selection menu
|
347
389
|
:env_var: MDE_MENU_NOTE_MATCH
|
348
390
|
:opt_name: menu_note_match
|
@@ -443,18 +485,6 @@
|
|
443
485
|
:opt_name: no_chrome
|
444
486
|
:procname: val_as_bool
|
445
487
|
|
446
|
-
- :default: " #=#=#"
|
447
|
-
:description: Output divider
|
448
|
-
:env_var: MDE_OUTPUT_DIVIDER
|
449
|
-
:opt_name: output_divider
|
450
|
-
:procname: val_as_str
|
451
|
-
|
452
|
-
- :default: yellow
|
453
|
-
:description: Color of output divider
|
454
|
-
:env_var: MDE_OUTPUT_DIVIDER_COLOR
|
455
|
-
:opt_name: output_divider_color
|
456
|
-
:procname: val_as_str
|
457
|
-
|
458
488
|
- :arg_name: BOOL
|
459
489
|
:default: false
|
460
490
|
:description: Display summary for execution
|
@@ -463,6 +493,24 @@
|
|
463
493
|
:opt_name: output_execution_summary
|
464
494
|
:procname: val_as_bool
|
465
495
|
|
496
|
+
- :default: "%{name}: %{value}"
|
497
|
+
:description: format for menu dividers and demarcations
|
498
|
+
:env_var: MDE_OUTPUT_EXECUTION_LABEL_FORMAT
|
499
|
+
:opt_name: output_execution_label_format
|
500
|
+
:procname: val_as_str
|
501
|
+
|
502
|
+
- :default: yellow
|
503
|
+
:description: Color of output_execution_label_name
|
504
|
+
:env_var: MDE_OUTPUT_EXECUTION_LABEL_NAME_COLOR
|
505
|
+
:opt_name: output_execution_label_name_color
|
506
|
+
:procname: val_as_str
|
507
|
+
|
508
|
+
- :default: plain
|
509
|
+
:description: Color of output_execution_label_value
|
510
|
+
:env_var: MDE_OUTPUT_EXECUTION_LABEL_VALUE_COLOR
|
511
|
+
:opt_name: output_execution_label_value_color
|
512
|
+
:procname: val_as_str
|
513
|
+
|
466
514
|
- :arg_name: BOOL
|
467
515
|
:default: false
|
468
516
|
:description: Output saved script filename at end of execution
|
@@ -503,29 +551,35 @@
|
|
503
551
|
- :arg_name: BOOL
|
504
552
|
:default: true
|
505
553
|
:description: Pause afte executing a BASH block
|
506
|
-
:env_var:
|
507
|
-
:opt_name:
|
554
|
+
:env_var: MDE_PAUSE_after_script_execution
|
555
|
+
:opt_name: pause_after_script_execution
|
508
556
|
:procname: val_as_bool
|
509
557
|
|
510
|
-
- :default:
|
511
|
-
:description: Prompt
|
512
|
-
:env_var:
|
513
|
-
:opt_name:
|
558
|
+
- :default: "\nContinue?"
|
559
|
+
:description: Prompt after script execution
|
560
|
+
:env_var: MDE_PROMPT_after_script_execution
|
561
|
+
:opt_name: prompt_after_script_execution
|
514
562
|
:procname: val_as_str
|
515
563
|
|
516
|
-
- :default:
|
564
|
+
- :default: "\nProcess?"
|
517
565
|
:description: Prompt to approve a block
|
518
566
|
:env_var: MDE_PROMPT_APPROVE_BLOCK
|
519
567
|
:opt_name: prompt_approve_block
|
520
568
|
:procname: val_as_str
|
521
569
|
|
570
|
+
- :default: cyan
|
571
|
+
:description: Color of prompt after script execution
|
572
|
+
:env_var: MDE_PROMPT_COLOR_AFTER_SCRIPT_EXECUTION
|
573
|
+
:opt_name: prompt_color_after_script_execution
|
574
|
+
:procname: val_as_str
|
575
|
+
|
522
576
|
- :default: Exit
|
523
577
|
:description: Prompt to exit app
|
524
578
|
:env_var: MDE_PROMPT_EXIT
|
525
579
|
:opt_name: prompt_exit
|
526
580
|
:procname: val_as_str
|
527
581
|
|
528
|
-
- :default:
|
582
|
+
- :default: "No"
|
529
583
|
:description: Prompt for no
|
530
584
|
:env_var: MDE_PROMPT_NO
|
531
585
|
:opt_name: prompt_no
|
@@ -543,25 +597,25 @@
|
|
543
597
|
:opt_name: prompt_script_to_clipboard
|
544
598
|
:procname: val_as_str
|
545
599
|
|
546
|
-
- :default:
|
600
|
+
- :default: "\nChoose a block:"
|
547
601
|
:description: Prompt to select a block
|
548
602
|
:env_var: MDE_PROMPT_SELECT_BLOCK
|
549
603
|
:opt_name: prompt_select_block
|
550
604
|
:procname: val_as_str
|
551
605
|
|
552
|
-
- :default:
|
606
|
+
- :default: "\nChoose a file:"
|
553
607
|
:description: Prompt to select a markdown document
|
554
608
|
:env_var: MDE_PROMPT_SELECT_MD
|
555
609
|
:opt_name: prompt_select_md
|
556
610
|
:procname: val_as_str
|
557
611
|
|
558
|
-
- :default:
|
612
|
+
- :default: "\nChoose a file:"
|
559
613
|
:description: Prompt to select a saved file
|
560
614
|
:env_var: MDE_PROMPT_SELECT_OUTPUT
|
561
615
|
:opt_name: prompt_select_output
|
562
616
|
:procname: val_as_str
|
563
617
|
|
564
|
-
- :default:
|
618
|
+
- :default: "Yes"
|
565
619
|
:description: Prompt for yes
|
566
620
|
:env_var: MDE_PROMPT_YES
|
567
621
|
:opt_name: prompt_yes
|
@@ -593,6 +647,18 @@
|
|
593
647
|
:opt_name: save_execution_output
|
594
648
|
:procname: val_as_bool
|
595
649
|
|
650
|
+
- :default: "/"
|
651
|
+
:description: Pattern to replace in file names
|
652
|
+
:env_var: MDE_SAVED_FILENAME_PATTERN
|
653
|
+
:opt_name: saved_filename_pattern
|
654
|
+
:procname: val_as_str
|
655
|
+
|
656
|
+
- :default: ",~"
|
657
|
+
:description: Replacement for pattern in file names
|
658
|
+
:env_var: MDE_SAVED_FILENAME_REPLACEMENT
|
659
|
+
:opt_name: saved_filename_replacement
|
660
|
+
:procname: val_as_str
|
661
|
+
|
596
662
|
- :arg_name: INT
|
597
663
|
:default: 493
|
598
664
|
:description: chmod for saved scripts
|
@@ -637,6 +703,42 @@
|
|
637
703
|
:opt_name: saved_stdout_glob
|
638
704
|
:procname: val_as_str
|
639
705
|
|
706
|
+
- :default: green
|
707
|
+
:description: script_execution_frame_color
|
708
|
+
:env_var: MDE_SCRIPT_EXECUTION_FRAME_COLOR
|
709
|
+
:opt_name: script_execution_frame_color
|
710
|
+
:procname: val_as_str
|
711
|
+
|
712
|
+
- :default: "\n -^-"
|
713
|
+
:description: script_execution_head
|
714
|
+
:env_var: MDE_SCRIPT_EXECUTION_HEAD
|
715
|
+
:opt_name: script_execution_head
|
716
|
+
:procname: val_as_str
|
717
|
+
|
718
|
+
- :default: " -v-\n"
|
719
|
+
:description: script_execution_tail
|
720
|
+
:env_var: MDE_SCRIPT_EXECUTION_TAIL
|
721
|
+
:opt_name: script_execution_tail
|
722
|
+
:procname: val_as_str
|
723
|
+
|
724
|
+
- :default: yellow
|
725
|
+
:description: Color of output divider
|
726
|
+
:env_var: MDE_OUTPUT_DIVIDER_COLOR
|
727
|
+
:opt_name: script_preview_frame_color
|
728
|
+
:procname: val_as_str
|
729
|
+
|
730
|
+
- :default: "\n -^-"
|
731
|
+
:description: script_preview_head
|
732
|
+
:env_var: MDE_SCRIPT_PREVIEW_HEAD
|
733
|
+
:opt_name: script_preview_head
|
734
|
+
:procname: val_as_str
|
735
|
+
|
736
|
+
- :default: " -v-\n"
|
737
|
+
:description: script_preview_tail
|
738
|
+
:env_var: MDE_SCRIPT_PREVIEW_TAIL
|
739
|
+
:opt_name: script_preview_tail
|
740
|
+
:procname: val_as_str
|
741
|
+
|
640
742
|
- :arg_name: REGEX
|
641
743
|
:default:
|
642
744
|
:description: Select blocks with name matching
|
@@ -652,7 +754,7 @@
|
|
652
754
|
:procname: val_as_str
|
653
755
|
|
654
756
|
- :default: 36
|
655
|
-
:description:
|
757
|
+
:description: "Maximum # of rows in select list"
|
656
758
|
:env_var: MDE_SELECT_PAGE_HEIGHT
|
657
759
|
:opt_name: select_page_height
|
658
760
|
:procname: val_as_int
|
@@ -697,3 +799,15 @@
|
|
697
799
|
:long_name: version
|
698
800
|
:procname: version
|
699
801
|
:short_name: v
|
802
|
+
|
803
|
+
- :default: red
|
804
|
+
:description: Color of warning message
|
805
|
+
:env_var: MDE_WARNING_COLOR
|
806
|
+
:opt_name: warning_color
|
807
|
+
:procname: val_as_str
|
808
|
+
|
809
|
+
- :default: "Error: %{error}"
|
810
|
+
:description: Format of warning message
|
811
|
+
:env_var: MDE_WARNING_FORMAT
|
812
|
+
:opt_name: warning_format
|
813
|
+
:procname: val_as_str
|
data/lib/menu.yml
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# MDE - Markdown Executor (1.
|
1
|
+
# MDE - Markdown Executor (1.7)
|
2
2
|
---
|
3
3
|
- :description: Show current configuration values
|
4
4
|
:procname: show_config
|
@@ -95,15 +95,33 @@
|
|
95
95
|
:env_var: MDE_EXCLUDE_EXPECT_BLOCKS
|
96
96
|
:opt_name: exclude_expect_blocks
|
97
97
|
:procname: val_as_bool
|
98
|
+
- :default: magenta
|
99
|
+
:description: execution_report_preview_frame_color
|
100
|
+
:env_var: MDE_EXECUTION_REPORT_PREVIEW_FRAME_COLOR
|
101
|
+
:opt_name: execution_report_preview_frame_color
|
102
|
+
:procname: val_as_str
|
103
|
+
- :default: |2-
|
104
|
+
|
105
|
+
-^-
|
106
|
+
:description: execution_report_preview_head
|
107
|
+
:env_var: MDE_EXECUTION_REPORT_PREVIEW_HEAD
|
108
|
+
:opt_name: execution_report_preview_head
|
109
|
+
:procname: val_as_str
|
110
|
+
- :default: " -v-"
|
111
|
+
:description: execution_report_preview_tail
|
112
|
+
:env_var: MDE_EXECUTION_REPORT_PREVIEW_TAIL
|
113
|
+
:opt_name: execution_report_preview_tail
|
114
|
+
:procname: val_as_str
|
98
115
|
- :description: Exit app
|
99
116
|
:long_name: exit
|
100
117
|
:procname: exit
|
101
118
|
:short_name: x
|
102
|
-
- :default: "
|
119
|
+
- :default: "^(?<indent> *)`{3,}"
|
103
120
|
:env_var: MDE_FENCED_START_AND_END_REGEX
|
104
121
|
:opt_name: fenced_start_and_end_regex
|
105
122
|
:procname: val_as_str
|
106
|
-
- :default: "
|
123
|
+
- :default: "^(?<indent> *)`{3,}(?<shell>[^`\\s]*) *:?(?<name>[^\\s]*) *(?<rest>.*)
|
124
|
+
*$"
|
107
125
|
:env_var: MDE_FENCED_START_EXTENDED_REGEX
|
108
126
|
:opt_name: fenced_start_extended_regex
|
109
127
|
:procname: val_as_str
|
@@ -147,7 +165,7 @@
|
|
147
165
|
:env_var: MDE_HISTORY_PROPERTY_SEPARATOR
|
148
166
|
:opt_name: history_property_separator
|
149
167
|
:procname: val_as_str
|
150
|
-
- :default: "^ *@import (
|
168
|
+
- :default: "^ *@import +(?<name>.+?) *$"
|
151
169
|
:env_var: MDE_IMPORT_PATTERN
|
152
170
|
:opt_name: import_pattern
|
153
171
|
:procname: val_as_str
|
@@ -259,6 +277,23 @@
|
|
259
277
|
:env_var: MDE_MENU_FINAL_DIVIDER
|
260
278
|
:opt_name: menu_final_divider
|
261
279
|
:procname: val_as_str
|
280
|
+
- :default: '0'
|
281
|
+
:description: Import levels for blocks to appear in menu. Empty is all.
|
282
|
+
:env_var: MDE_MENU_IMPORT_LEVEL_MATCH
|
283
|
+
:opt_name: menu_import_level_match
|
284
|
+
:procname: val_as_str
|
285
|
+
- :arg_name: BOOL
|
286
|
+
:default: true
|
287
|
+
:description: Include imported blocks in menu
|
288
|
+
:env_var: MDE_MENU_INCLUDE_IMPORTED_BLOCKS
|
289
|
+
:opt_name: menu_include_imported_blocks
|
290
|
+
:procname: val_as_bool
|
291
|
+
- :arg_name: BOOL
|
292
|
+
:default: false
|
293
|
+
:description: Include imported notes in menu
|
294
|
+
:env_var: MDE_MENU_INCLUDE_IMPORTED_NOTES
|
295
|
+
:opt_name: menu_include_imported_notes
|
296
|
+
:procname: val_as_bool
|
262
297
|
- :default:
|
263
298
|
:line: ''
|
264
299
|
:description: opening demarcation for menu
|
@@ -275,7 +310,7 @@
|
|
275
310
|
:env_var: MDE_MENU_LINK_FORMAT
|
276
311
|
:opt_name: menu_link_format
|
277
312
|
:procname: val_as_str
|
278
|
-
- :default:
|
313
|
+
- :default: fg_rgbh_88_88_88
|
279
314
|
:description: Color of menu note
|
280
315
|
:env_var: MDE_MENU_NOTE_COLOR
|
281
316
|
:opt_name: menu_note_color
|
@@ -285,7 +320,7 @@
|
|
285
320
|
:env_var: MDE_MENU_NOTE_FORMAT
|
286
321
|
:opt_name: menu_note_format
|
287
322
|
:procname: val_as_str
|
288
|
-
- :default: "
|
323
|
+
- :default: "^(?<line>.*?) *$"
|
289
324
|
:description: Pattern for notes in block selection menu
|
290
325
|
:env_var: MDE_MENU_NOTE_MATCH
|
291
326
|
:opt_name: menu_note_match
|
@@ -370,16 +405,6 @@
|
|
370
405
|
:env_var: MDE_NO_CHROME
|
371
406
|
:opt_name: no_chrome
|
372
407
|
:procname: val_as_bool
|
373
|
-
- :default: " #=#=#"
|
374
|
-
:description: Output divider
|
375
|
-
:env_var: MDE_OUTPUT_DIVIDER
|
376
|
-
:opt_name: output_divider
|
377
|
-
:procname: val_as_str
|
378
|
-
- :default: yellow
|
379
|
-
:description: Color of output divider
|
380
|
-
:env_var: MDE_OUTPUT_DIVIDER_COLOR
|
381
|
-
:opt_name: output_divider_color
|
382
|
-
:procname: val_as_str
|
383
408
|
- :arg_name: BOOL
|
384
409
|
:default: false
|
385
410
|
:description: Display summary for execution
|
@@ -387,6 +412,21 @@
|
|
387
412
|
:long_name: output-execution-summary
|
388
413
|
:opt_name: output_execution_summary
|
389
414
|
:procname: val_as_bool
|
415
|
+
- :default: "%{name}: %{value}"
|
416
|
+
:description: format for menu dividers and demarcations
|
417
|
+
:env_var: MDE_OUTPUT_EXECUTION_LABEL_FORMAT
|
418
|
+
:opt_name: output_execution_label_format
|
419
|
+
:procname: val_as_str
|
420
|
+
- :default: yellow
|
421
|
+
:description: Color of output_execution_label_name
|
422
|
+
:env_var: MDE_OUTPUT_EXECUTION_LABEL_NAME_COLOR
|
423
|
+
:opt_name: output_execution_label_name_color
|
424
|
+
:procname: val_as_str
|
425
|
+
- :default: plain
|
426
|
+
:description: Color of output_execution_label_value
|
427
|
+
:env_var: MDE_OUTPUT_EXECUTION_LABEL_VALUE_COLOR
|
428
|
+
:opt_name: output_execution_label_value_color
|
429
|
+
:procname: val_as_str
|
390
430
|
- :arg_name: BOOL
|
391
431
|
:default: false
|
392
432
|
:description: Output saved script filename at end of execution
|
@@ -422,19 +462,28 @@
|
|
422
462
|
- :arg_name: BOOL
|
423
463
|
:default: true
|
424
464
|
:description: Pause afte executing a BASH block
|
425
|
-
:env_var:
|
426
|
-
:opt_name:
|
465
|
+
:env_var: MDE_PAUSE_after_script_execution
|
466
|
+
:opt_name: pause_after_script_execution
|
427
467
|
:procname: val_as_bool
|
428
|
-
- :default:
|
429
|
-
|
430
|
-
|
431
|
-
:
|
432
|
-
:
|
433
|
-
|
468
|
+
- :default: |2-
|
469
|
+
|
470
|
+
Continue?
|
471
|
+
:description: Prompt after script execution
|
472
|
+
:env_var: MDE_PROMPT_after_script_execution
|
473
|
+
:opt_name: prompt_after_script_execution
|
474
|
+
:procname: val_as_str
|
475
|
+
- :default: |2-
|
476
|
+
|
477
|
+
Process?
|
434
478
|
:description: Prompt to approve a block
|
435
479
|
:env_var: MDE_PROMPT_APPROVE_BLOCK
|
436
480
|
:opt_name: prompt_approve_block
|
437
481
|
:procname: val_as_str
|
482
|
+
- :default: cyan
|
483
|
+
:description: Color of prompt after script execution
|
484
|
+
:env_var: MDE_PROMPT_COLOR_AFTER_SCRIPT_EXECUTION
|
485
|
+
:opt_name: prompt_color_after_script_execution
|
486
|
+
:procname: val_as_str
|
438
487
|
- :default: Exit
|
439
488
|
:description: Prompt to exit app
|
440
489
|
:env_var: MDE_PROMPT_EXIT
|
@@ -455,17 +504,23 @@
|
|
455
504
|
:env_var: MDE_PROMPT_SCRIPT_TO_CLIPBOARD
|
456
505
|
:opt_name: prompt_script_to_clipboard
|
457
506
|
:procname: val_as_str
|
458
|
-
- :default:
|
507
|
+
- :default: |2-
|
508
|
+
|
509
|
+
Choose a block:
|
459
510
|
:description: Prompt to select a block
|
460
511
|
:env_var: MDE_PROMPT_SELECT_BLOCK
|
461
512
|
:opt_name: prompt_select_block
|
462
513
|
:procname: val_as_str
|
463
|
-
- :default:
|
514
|
+
- :default: |2-
|
515
|
+
|
516
|
+
Choose a file:
|
464
517
|
:description: Prompt to select a markdown document
|
465
518
|
:env_var: MDE_PROMPT_SELECT_MD
|
466
519
|
:opt_name: prompt_select_md
|
467
520
|
:procname: val_as_str
|
468
|
-
- :default:
|
521
|
+
- :default: |2-
|
522
|
+
|
523
|
+
Choose a file:
|
469
524
|
:description: Prompt to select a saved file
|
470
525
|
:env_var: MDE_PROMPT_SELECT_OUTPUT
|
471
526
|
:opt_name: prompt_select_output
|
@@ -497,6 +552,16 @@
|
|
497
552
|
:long_name: save-execution-output
|
498
553
|
:opt_name: save_execution_output
|
499
554
|
:procname: val_as_bool
|
555
|
+
- :default: "/"
|
556
|
+
:description: Pattern to replace in file names
|
557
|
+
:env_var: MDE_SAVED_FILENAME_PATTERN
|
558
|
+
:opt_name: saved_filename_pattern
|
559
|
+
:procname: val_as_str
|
560
|
+
- :default: ",~"
|
561
|
+
:description: Replacement for pattern in file names
|
562
|
+
:env_var: MDE_SAVED_FILENAME_REPLACEMENT
|
563
|
+
:opt_name: saved_filename_replacement
|
564
|
+
:procname: val_as_str
|
500
565
|
- :arg_name: INT
|
501
566
|
:default: 493
|
502
567
|
:description: chmod for saved scripts
|
@@ -535,6 +600,40 @@
|
|
535
600
|
:env_var: MDE_SAVED_STDOUT_GLOB
|
536
601
|
:opt_name: saved_stdout_glob
|
537
602
|
:procname: val_as_str
|
603
|
+
- :default: green
|
604
|
+
:description: script_execution_frame_color
|
605
|
+
:env_var: MDE_SCRIPT_EXECUTION_FRAME_COLOR
|
606
|
+
:opt_name: script_execution_frame_color
|
607
|
+
:procname: val_as_str
|
608
|
+
- :default: |2-
|
609
|
+
|
610
|
+
-^-
|
611
|
+
:description: script_execution_head
|
612
|
+
:env_var: MDE_SCRIPT_EXECUTION_HEAD
|
613
|
+
:opt_name: script_execution_head
|
614
|
+
:procname: val_as_str
|
615
|
+
- :default: " -v-\n"
|
616
|
+
:description: script_execution_tail
|
617
|
+
:env_var: MDE_SCRIPT_EXECUTION_TAIL
|
618
|
+
:opt_name: script_execution_tail
|
619
|
+
:procname: val_as_str
|
620
|
+
- :default: yellow
|
621
|
+
:description: Color of output divider
|
622
|
+
:env_var: MDE_OUTPUT_DIVIDER_COLOR
|
623
|
+
:opt_name: script_preview_frame_color
|
624
|
+
:procname: val_as_str
|
625
|
+
- :default: |2-
|
626
|
+
|
627
|
+
-^-
|
628
|
+
:description: script_preview_head
|
629
|
+
:env_var: MDE_SCRIPT_PREVIEW_HEAD
|
630
|
+
:opt_name: script_preview_head
|
631
|
+
:procname: val_as_str
|
632
|
+
- :default: " -v-\n"
|
633
|
+
:description: script_preview_tail
|
634
|
+
:env_var: MDE_SCRIPT_PREVIEW_TAIL
|
635
|
+
:opt_name: script_preview_tail
|
636
|
+
:procname: val_as_str
|
538
637
|
- :arg_name: REGEX
|
539
638
|
:default:
|
540
639
|
:description: Select blocks with name matching
|
@@ -586,6 +685,16 @@
|
|
586
685
|
:long_name: version
|
587
686
|
:procname: version
|
588
687
|
:short_name: v
|
688
|
+
- :default: red
|
689
|
+
:description: Color of warning message
|
690
|
+
:env_var: MDE_WARNING_COLOR
|
691
|
+
:opt_name: warning_color
|
692
|
+
:procname: val_as_str
|
693
|
+
- :default: 'Error: %{error}'
|
694
|
+
:description: Format of warning message
|
695
|
+
:env_var: MDE_WARNING_FORMAT
|
696
|
+
:opt_name: warning_format
|
697
|
+
:procname: val_as_str
|
589
698
|
- :arg_name: INT.0-3
|
590
699
|
:default: 1
|
591
700
|
:description: Output display level (0 to 3 [data, +context, +info])
|
data/lib/method_sorter.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'ripper'
|
2
4
|
require 'parser/current'
|
3
5
|
|
@@ -16,10 +18,10 @@ class MethodSorter
|
|
16
18
|
|
17
19
|
method_nodes = []
|
18
20
|
|
19
|
-
# Look for method def nodes within each child node
|
21
|
+
# Look for method def nodes within each child node
|
20
22
|
class_node.children.compact.each do |child|
|
21
23
|
if child.type == :begin
|
22
|
-
method_nodes += child.children.select {|n| n.type == :def}
|
24
|
+
method_nodes += child.children.select { |n| n.type == :def }
|
23
25
|
end
|
24
26
|
end
|
25
27
|
|
@@ -30,44 +32,44 @@ class MethodSorter
|
|
30
32
|
# return
|
31
33
|
# end
|
32
34
|
|
33
|
-
# method_nodes = class_node.children.compact.select { |node|
|
35
|
+
# method_nodes = class_node.children.compact.select { |node|
|
34
36
|
# node.type == :def
|
35
|
-
# }
|
37
|
+
# }
|
36
38
|
|
37
|
-
sorted_methods = method_nodes.sort_by{ |n| n.children[0].to_s }
|
39
|
+
sorted_methods = method_nodes.sort_by { |n| n.children[0].to_s }
|
38
40
|
ripper = Ripper.sexp(file_contents)
|
39
|
-
lines = ripper.each_with_index.map{|sexp, index| [sexp, index] }
|
40
|
-
|
41
|
+
lines = ripper.each_with_index.map { |sexp, index| [sexp, index] }
|
42
|
+
|
41
43
|
method_ranges = get_method_ranges(lines, method_nodes)
|
42
|
-
|
44
|
+
|
43
45
|
result = replace_method_ranges(lines, method_ranges, sorted_methods)
|
44
|
-
|
45
|
-
puts result.compact.select{|v|v.is_a? String}.join("\n")
|
46
|
+
|
47
|
+
puts result.compact.select { |v| v.is_a? String }.join("\n")
|
46
48
|
# File.write(@file_path, result.join)
|
47
49
|
end
|
48
50
|
|
49
51
|
private
|
50
|
-
|
52
|
+
|
51
53
|
def get_method_ranges(lines, method_nodes)
|
52
54
|
method_nodes.map do |method_node|
|
53
55
|
start_line = method_node.loc.line - 1
|
54
56
|
end_line = start_line
|
55
|
-
|
57
|
+
|
56
58
|
while end_line < lines.size && lines[end_line][0] !~ /^end/
|
57
59
|
end_line += 1
|
58
60
|
end
|
59
|
-
|
61
|
+
|
60
62
|
(start_line..end_line)
|
61
63
|
end
|
62
64
|
end
|
63
|
-
|
65
|
+
|
64
66
|
def replace_method_ranges(lines, ranges, sorted_methods)
|
65
67
|
result = lines.dup
|
66
|
-
|
68
|
+
|
67
69
|
ranges.each_with_index do |range, index|
|
68
|
-
result[range] = sorted_methods[index].loc.expression.source.split("\n")
|
70
|
+
result[range] = sorted_methods[index].loc.expression.source.split("\n")
|
69
71
|
end
|
70
|
-
|
72
|
+
|
71
73
|
result
|
72
74
|
end
|
73
75
|
end
|
data/lib/object_present.rb
CHANGED
data/lib/option_value.rb
CHANGED
@@ -65,7 +65,8 @@ if $PROGRAM_NAME == __FILE__
|
|
65
65
|
end
|
66
66
|
|
67
67
|
def test_for_hash_with_empty_value
|
68
|
-
assert_equal 'default',
|
68
|
+
assert_equal 'default',
|
69
|
+
MarkdownExec::OptionValue.for_hash([], 'default')
|
69
70
|
end
|
70
71
|
|
71
72
|
def test_for_yaml_with_string
|
@@ -82,7 +83,8 @@ if $PROGRAM_NAME == __FILE__
|
|
82
83
|
end
|
83
84
|
|
84
85
|
def test_for_yaml_with_empty_value
|
85
|
-
assert_equal 'default',
|
86
|
+
assert_equal 'default',
|
87
|
+
MarkdownExec::OptionValue.for_yaml([], 'default')
|
86
88
|
end
|
87
89
|
end
|
88
90
|
end
|