markdown_exec 1.6 → 1.8

Sign up to get free protection for your applications and to get access to all the features.
data/lib/menu.yml CHANGED
@@ -1,4 +1,4 @@
1
- # MDE - Markdown Executor (1.6)
1
+ # MDE - Markdown Executor (1.8)
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,6 +135,23 @@
95
135
  :env_var: MDE_EXCLUDE_EXPECT_BLOCKS
96
136
  :opt_name: exclude_expect_blocks
97
137
  :procname: val_as_bool
138
+ - :default: fg_rgbh_20_80_80
139
+ :description: execution_report_preview_frame_color
140
+ :env_var: MDE_EXECUTION_REPORT_PREVIEW_FRAME_COLOR
141
+ :opt_name: execution_report_preview_frame_color
142
+ :procname: val_as_str
143
+ - :default: |2-
144
+
145
+ -^-
146
+ :description: execution_report_preview_head
147
+ :env_var: MDE_EXECUTION_REPORT_PREVIEW_HEAD
148
+ :opt_name: execution_report_preview_head
149
+ :procname: val_as_str
150
+ - :default: " -v-"
151
+ :description: execution_report_preview_tail
152
+ :env_var: MDE_EXECUTION_REPORT_PREVIEW_TAIL
153
+ :opt_name: execution_report_preview_tail
154
+ :procname: val_as_str
98
155
  - :description: Exit app
99
156
  :long_name: exit
100
157
  :procname: exit
@@ -116,6 +173,12 @@
116
173
  :opt_name: filename
117
174
  :procname: val_as_str
118
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: "?"
119
182
  - :default: "^# *(?<name>[^#]*?) *$"
120
183
  :env_var: MDE_HEADING1_MATCH
121
184
  :opt_name: heading1_match
@@ -148,7 +211,13 @@
148
211
  :env_var: MDE_HISTORY_PROPERTY_SEPARATOR
149
212
  :opt_name: history_property_separator
150
213
  :procname: val_as_str
151
- - :default: "^ *@import (.+)$"
214
+ - :arg_name: HOW
215
+ :default: ''
216
+ :description: Find in YAML configuration options
217
+ :long_name: how
218
+ :procname: how
219
+ :short_name: "?"
220
+ - :default: "^ *@import +(?<name>.+?) *$"
152
221
  :env_var: MDE_IMPORT_PATTERN
153
222
  :opt_name: import_pattern
154
223
  :procname: val_as_str
@@ -201,7 +270,7 @@
201
270
  :env_var: MDE_MENU_BACK_AT_TOP
202
271
  :opt_name: menu_back_at_top
203
272
  :procname: val_as_bool
204
- - :default: plain
273
+ - :default: fg_rgbh_40_c0_f0
205
274
  :description: Color of menu bash
206
275
  :env_var: MDE_MENU_BASH_COLOR
207
276
  :opt_name: menu_bash_color
@@ -218,7 +287,7 @@
218
287
  :env_var: MDE_MENU_BLOCKS_WITH_HEADINGS
219
288
  :opt_name: menu_blocks_with_headings
220
289
  :procname: val_as_bool
221
- - :default: fg_rgbh_aa_bb_aa
290
+ - :default: fg_rgbh_80_80_20
222
291
  :description: Color of menu chrome
223
292
  :env_var: MDE_MENU_CHROME_COLOR
224
293
  :opt_name: menu_chrome_color
@@ -228,7 +297,7 @@
228
297
  :env_var: MDE_MENU_CHROME_FORMAT
229
298
  :opt_name: menu_chrome_format
230
299
  :procname: val_as_str
231
- - :default: magenta
300
+ - :default: fg_rgbh_20_98_80
232
301
  :description: Color of menu divider
233
302
  :env_var: MDE_MENU_DIVIDER_COLOR
234
303
  :opt_name: menu_divider_color
@@ -260,13 +329,30 @@
260
329
  :env_var: MDE_MENU_FINAL_DIVIDER
261
330
  :opt_name: menu_final_divider
262
331
  :procname: val_as_str
332
+ - :default: '0'
333
+ :description: Import levels for blocks to appear in menu. Empty is all.
334
+ :env_var: MDE_MENU_IMPORT_LEVEL_MATCH
335
+ :opt_name: menu_import_level_match
336
+ :procname: val_as_str
337
+ - :arg_name: BOOL
338
+ :default: true
339
+ :description: Include imported blocks in menu
340
+ :env_var: MDE_MENU_INCLUDE_IMPORTED_BLOCKS
341
+ :opt_name: menu_include_imported_blocks
342
+ :procname: val_as_bool
343
+ - :arg_name: BOOL
344
+ :default: false
345
+ :description: Include imported notes in menu
346
+ :env_var: MDE_MENU_INCLUDE_IMPORTED_NOTES
347
+ :opt_name: menu_include_imported_notes
348
+ :procname: val_as_bool
263
349
  - :default:
264
350
  :line: ''
265
351
  :description: opening demarcation for menu
266
352
  :env_var: MDE_MENU_INITIAL_DIVIDER
267
353
  :opt_name: menu_initial_divider
268
354
  :procname: val_as_str
269
- - :default: red
355
+ - :default: fg_rgbh_20_E0_20
270
356
  :description: Color of menu link
271
357
  :env_var: MDE_MENU_LINK_COLOR
272
358
  :opt_name: menu_link_color
@@ -276,7 +362,7 @@
276
362
  :env_var: MDE_MENU_LINK_FORMAT
277
363
  :opt_name: menu_link_format
278
364
  :procname: val_as_str
279
- - :default: fg_rgbh_88_88_88
365
+ - :default: fg_rgbh_40_a0_a0
280
366
  :description: Color of menu note
281
367
  :env_var: MDE_MENU_NOTE_COLOR
282
368
  :opt_name: menu_note_color
@@ -303,12 +389,12 @@
303
389
  :env_var: MDE_MENU_OPTION_EXIT_NAME
304
390
  :opt_name: menu_option_exit_name
305
391
  :procname: val_as_str
306
- - :default: blue
392
+ - :default: fg_rgbh_E0_60_E0
307
393
  :description: Color of menu opts
308
394
  :env_var: MDE_MENU_OPTS_COLOR
309
395
  :opt_name: menu_opts_color
310
396
  :procname: val_as_str
311
- - :default: cyan
397
+ - :default: fg_rgbh_E0_20_20
312
398
  :description: Color of menu opts
313
399
  :env_var: MDE_MENU_OPTS_SET_COLOR
314
400
  :opt_name: menu_opts_set_color
@@ -318,7 +404,7 @@
318
404
  :env_var: MDE_MENU_OPTS_SET_FORMAT
319
405
  :opt_name: menu_opts_set_format
320
406
  :procname: val_as_str
321
- - :default: cyan
407
+ - :default: fg_rgbh_A0_20_D0
322
408
  :description: Color of menu task
323
409
  :env_var: MDE_MENU_TASK_COLOR
324
410
  :opt_name: menu_task_color
@@ -338,12 +424,12 @@
338
424
  :env_var: MDE_MENU_TASK_SYMBOL
339
425
  :opt_name: menu_task_symbol
340
426
  :procname: val_as_str
341
- - :default: blue
427
+ - :default: fg_rgbh_E0_80_20
342
428
  :description: Color of menu vars
343
429
  :env_var: MDE_MENU_VARS_COLOR
344
430
  :opt_name: menu_vars_color
345
431
  :procname: val_as_str
346
- - :default: cyan
432
+ - :default: fg_rgbh_E0_80_20
347
433
  :description: Color of menu vars
348
434
  :env_var: MDE_MENU_VARS_SET_COLOR
349
435
  :opt_name: menu_vars_set_color
@@ -371,16 +457,6 @@
371
457
  :env_var: MDE_NO_CHROME
372
458
  :opt_name: no_chrome
373
459
  :procname: val_as_bool
374
- - :default: " #=#=#"
375
- :description: Output divider
376
- :env_var: MDE_OUTPUT_DIVIDER
377
- :opt_name: output_divider
378
- :procname: val_as_str
379
- - :default: yellow
380
- :description: Color of output divider
381
- :env_var: MDE_OUTPUT_DIVIDER_COLOR
382
- :opt_name: output_divider_color
383
- :procname: val_as_str
384
460
  - :arg_name: BOOL
385
461
  :default: false
386
462
  :description: Display summary for execution
@@ -388,6 +464,21 @@
388
464
  :long_name: output-execution-summary
389
465
  :opt_name: output_execution_summary
390
466
  :procname: val_as_bool
467
+ - :default: "%{name}: %{value}"
468
+ :description: format for menu dividers and demarcations
469
+ :env_var: MDE_OUTPUT_EXECUTION_LABEL_FORMAT
470
+ :opt_name: output_execution_label_format
471
+ :procname: val_as_str
472
+ - :default: fg_rgbh_20_D8_80
473
+ :description: Color of output_execution_label_name
474
+ :env_var: MDE_OUTPUT_EXECUTION_LABEL_NAME_COLOR
475
+ :opt_name: output_execution_label_name_color
476
+ :procname: val_as_str
477
+ - :default: fg_rgbh_20_E0_80
478
+ :description: Color of output_execution_label_value
479
+ :env_var: MDE_OUTPUT_EXECUTION_LABEL_VALUE_COLOR
480
+ :opt_name: output_execution_label_value_color
481
+ :procname: val_as_str
391
482
  - :arg_name: BOOL
392
483
  :default: false
393
484
  :description: Output saved script filename at end of execution
@@ -423,19 +514,28 @@
423
514
  - :arg_name: BOOL
424
515
  :default: true
425
516
  :description: Pause afte executing a BASH block
426
- :env_var: MDE_PAUSE_AFTER_BASH_EXEC
427
- :opt_name: pause_after_bash_exec
517
+ :env_var: MDE_PAUSE_after_script_execution
518
+ :opt_name: pause_after_script_execution
428
519
  :procname: val_as_bool
429
- - :default: Continue?
430
- :description: Prompt to continue
431
- :env_var: MDE_PROMPT_AFTER_BASH_EXEC
432
- :opt_name: prompt_after_bash_exec
433
- :procname: val_as_str
434
- - :default: Process?
520
+ - :default: |2-
521
+
522
+ Continue?
523
+ :description: Prompt after script execution
524
+ :env_var: MDE_PROMPT_after_script_execution
525
+ :opt_name: prompt_after_script_execution
526
+ :procname: val_as_str
527
+ - :default: |2-
528
+
529
+ Process?
435
530
  :description: Prompt to approve a block
436
531
  :env_var: MDE_PROMPT_APPROVE_BLOCK
437
532
  :opt_name: prompt_approve_block
438
533
  :procname: val_as_str
534
+ - :default: fg_rgbh_20_E8_80
535
+ :description: Color of prompt after script execution
536
+ :env_var: MDE_PROMPT_COLOR_AFTER_SCRIPT_EXECUTION
537
+ :opt_name: prompt_color_after_script_execution
538
+ :procname: val_as_str
439
539
  - :default: Exit
440
540
  :description: Prompt to exit app
441
541
  :env_var: MDE_PROMPT_EXIT
@@ -456,17 +556,23 @@
456
556
  :env_var: MDE_PROMPT_SCRIPT_TO_CLIPBOARD
457
557
  :opt_name: prompt_script_to_clipboard
458
558
  :procname: val_as_str
459
- - :default: 'Choose a block:'
559
+ - :default: |2-
560
+
561
+ Choose a block:
460
562
  :description: Prompt to select a block
461
563
  :env_var: MDE_PROMPT_SELECT_BLOCK
462
564
  :opt_name: prompt_select_block
463
565
  :procname: val_as_str
464
- - :default: 'Choose a file:'
566
+ - :default: |2-
567
+
568
+ Choose a file:
465
569
  :description: Prompt to select a markdown document
466
570
  :env_var: MDE_PROMPT_SELECT_MD
467
571
  :opt_name: prompt_select_md
468
572
  :procname: val_as_str
469
- - :default: 'Choose a file:'
573
+ - :default: |2-
574
+
575
+ Choose a file:
470
576
  :description: Prompt to select a saved file
471
577
  :env_var: MDE_PROMPT_SELECT_OUTPUT
472
578
  :opt_name: prompt_select_output
@@ -484,6 +590,12 @@
484
590
  :long_name: run-last-script
485
591
  :opt_name: run_last_script
486
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
487
599
  - :arg_name: BOOL
488
600
  :default: false
489
601
  :description: Save executed script
@@ -498,6 +610,16 @@
498
610
  :long_name: save-execution-output
499
611
  :opt_name: save_execution_output
500
612
  :procname: val_as_bool
613
+ - :default: "/"
614
+ :description: Pattern to replace in file names
615
+ :env_var: MDE_SAVED_FILENAME_PATTERN
616
+ :opt_name: saved_filename_pattern
617
+ :procname: val_as_str
618
+ - :default: ",~"
619
+ :description: Replacement for pattern in file names
620
+ :env_var: MDE_SAVED_FILENAME_REPLACEMENT
621
+ :opt_name: saved_filename_replacement
622
+ :procname: val_as_str
501
623
  - :arg_name: INT
502
624
  :default: 493
503
625
  :description: chmod for saved scripts
@@ -536,6 +658,40 @@
536
658
  :env_var: MDE_SAVED_STDOUT_GLOB
537
659
  :opt_name: saved_stdout_glob
538
660
  :procname: val_as_str
661
+ - :default: fg_rgbh_20_80_80
662
+ :description: script_execution_frame_color
663
+ :env_var: MDE_SCRIPT_EXECUTION_FRAME_COLOR
664
+ :opt_name: script_execution_frame_color
665
+ :procname: val_as_str
666
+ - :default: |2-
667
+
668
+ -^-
669
+ :description: script_execution_head
670
+ :env_var: MDE_SCRIPT_EXECUTION_HEAD
671
+ :opt_name: script_execution_head
672
+ :procname: val_as_str
673
+ - :default: " -v-\n"
674
+ :description: script_execution_tail
675
+ :env_var: MDE_SCRIPT_EXECUTION_TAIL
676
+ :opt_name: script_execution_tail
677
+ :procname: val_as_str
678
+ - :default: fg_rgbh_20_80_80
679
+ :description: Color of output divider
680
+ :env_var: MDE_OUTPUT_DIVIDER_COLOR
681
+ :opt_name: script_preview_frame_color
682
+ :procname: val_as_str
683
+ - :default: |2-
684
+
685
+ -^-
686
+ :description: script_preview_head
687
+ :env_var: MDE_SCRIPT_PREVIEW_HEAD
688
+ :opt_name: script_preview_head
689
+ :procname: val_as_str
690
+ - :default: " -v-\n"
691
+ :description: script_preview_tail
692
+ :env_var: MDE_SCRIPT_PREVIEW_TAIL
693
+ :opt_name: script_preview_tail
694
+ :procname: val_as_str
539
695
  - :arg_name: REGEX
540
696
  :default:
541
697
  :description: Select blocks with name matching
@@ -571,6 +727,16 @@
571
727
  :env_var: MDE_SHELL
572
728
  :opt_name: shell
573
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
574
740
  - :description: List tab completions
575
741
  :long_name: tab-completions
576
742
  :opt_name: tab_completions
@@ -587,6 +753,16 @@
587
753
  :long_name: version
588
754
  :procname: version
589
755
  :short_name: v
756
+ - :default: fg_rgbh_E0_E0_20
757
+ :description: Color of warning message
758
+ :env_var: MDE_WARNING_COLOR
759
+ :opt_name: warning_color
760
+ :procname: val_as_str
761
+ - :default: 'Error: %{error}'
762
+ :description: Format of warning message
763
+ :env_var: MDE_WARNING_FORMAT
764
+ :opt_name: warning_format
765
+ :procname: val_as_str
590
766
  - :arg_name: INT.0-3
591
767
  :default: 1
592
768
  :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
@@ -43,7 +43,7 @@ class Object
43
43
  when 'FalseClass', 'TrueClass'
44
44
  true
45
45
  else
46
- self && (!respond_to?(:blank?) || !blank?)
46
+ self && (!respond_to?(:present?) || !present?)
47
47
  end
48
48
  end
49
49
  end
data/lib/pty1.rb CHANGED
@@ -1,26 +1,26 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'pty'
2
4
 
3
5
  def launch_and_interact_with_terminal
4
- begin
5
- PTY.spawn("bash") do |stdout, stdin, pid|
6
- # Send a command to the terminal
7
- stdin.puts "echo 'Hello from Ruby!'"
6
+ PTY.spawn('bash') do |stdout, stdin, _pid|
7
+ # Send a command to the terminal
8
+ stdin.puts "echo 'Hello from Ruby!'"
8
9
 
9
- # Read the output of the command
10
- stdout.each do |line|
11
- puts line
12
- break if line.include?("Hello from Ruby!")
13
- end
10
+ # Read the output of the command
11
+ stdout.each do |line|
12
+ puts line
13
+ break if line.include?('Hello from Ruby!')
14
+ end
14
15
 
15
- # You can continue to interact with the terminal here
16
- # ...
16
+ # You can continue to interact with the terminal here
17
+ # ...
17
18
 
18
- # Ensure to exit the spawned shell
19
- stdin.puts "exit"
20
- end
21
- rescue PTY::ChildExited => e
22
- puts "The child process exited!"
19
+ # Ensure to exit the spawned shell
20
+ stdin.puts 'exit'
23
21
  end
22
+ rescue PTY::ChildExited
23
+ puts 'The child process exited!'
24
24
  end
25
25
 
26
26
  launch_and_interact_with_terminal
data/lib/regexp.rb CHANGED
@@ -25,15 +25,13 @@
25
25
  # captures_hash[:file_name] = $~.pre_match.split("\n").last
26
26
  # captures_hash[:line_number] = $~.pre_match.count("\n") + 1
27
27
  # captures_hash[:line] = $&
28
-
29
- require 'English'
30
28
  class Regexp
31
29
  def gsub_format(input_str, format_str, context: {})
32
30
  input_str.gsub(self) do
33
31
  format(
34
32
  format_str,
35
- context.merge($LAST_MATCH_INFO.names.each_with_object({}) do |name, hash|
36
- hash[name.to_sym] = $LAST_MATCH_INFO[name]
33
+ context.merge($~.names.each_with_object({}) do |name, hash|
34
+ hash[name.to_sym] = $~[name]
37
35
  end)
38
36
  )
39
37
  end
data/lib/shared.rb CHANGED
@@ -16,11 +16,6 @@ DISPLAY_LEVEL_DUMP = 3
16
16
  DISPLAY_LEVEL_DEFAULT = DISPLAY_LEVEL_ADMIN
17
17
  DISPLAY_LEVEL_MAX = DISPLAY_LEVEL_DUMP
18
18
 
19
- # @execute_files[ind] = @execute_files[ind] + [block]
20
- EF_STDOUT = 0
21
- EF_STDERR = 1
22
- EF_STDIN = 2
23
-
24
19
  LOCAL_YML = 'menu.yml'
25
20
  MENU_YML = "lib/#{LOCAL_YML}"
26
21
 
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ # encoding=utf-8
5
+
6
+ module StringUtil
7
+ # Splits the given string on the first occurrence of the specified character.
8
+ # Returns an array containing the portion of the string before the character and the rest of the string.
9
+ #
10
+ # @param input_str [String] The string to be split.
11
+ # @param split_char [String] The character on which to split the string.
12
+ # @return [Array<String>] An array containing two elements: the part of the string before split_char, and the rest of the string.
13
+ def self.partition_at_first(input_str, split_char)
14
+ split_index = input_str.index(split_char)
15
+
16
+ if split_index.nil?
17
+ [input_str, '']
18
+ else
19
+ [input_str[0...split_index], input_str[(split_index + 1)..-1]]
20
+ end
21
+ end
22
+ 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: '1.6'
4
+ version: '1.8'
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-11-13 00:00:00.000000000 Z
11
+ date: 2023-12-11 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,15 +128,23 @@ files:
127
128
  - examples/port.md
128
129
  - examples/vars.md
129
130
  - examples/wrap.md
131
+ - lib/ansi_formatter.rb
132
+ - lib/array.rb
133
+ - lib/array_util.rb
130
134
  - lib/block_label.rb
131
135
  - lib/block_types.rb
132
136
  - lib/cached_nested_file_reader.rb
133
137
  - lib/cli.rb
134
138
  - lib/colorize.rb
139
+ - lib/constants.rb
140
+ - lib/directory_searcher.rb
135
141
  - lib/env.rb
136
- - lib/environment_opt_parse.rb
142
+ - lib/exceptions.rb
137
143
  - lib/fcb.rb
138
144
  - lib/filter.rb
145
+ - lib/fout.rb
146
+ - lib/hash.rb
147
+ - lib/hash_delegator.rb
139
148
  - lib/markdown_exec.rb
140
149
  - lib/markdown_exec/version.rb
141
150
  - lib/mdoc.rb
@@ -151,6 +160,7 @@ files:
151
160
  - lib/saved_files_matcher.rb
152
161
  - lib/shared.rb
153
162
  - lib/sort_yaml_gpt4.rb
163
+ - lib/string_util.rb
154
164
  - lib/tap.rb
155
165
  homepage: https://rubygems.org/gems/markdown_exec
156
166
  licenses: