markdown_exec 2.8.1 → 2.8.3
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 +3 -0
- data/CHANGELOG.md +53 -0
- data/Gemfile.lock +1 -1
- data/bats/block-hide.bats +8 -0
- data/bats/block-type-ux-echo.bats +20 -0
- data/bats/block-type-ux-preconditions.bats +8 -0
- data/bats/block-type-ux-readonly.bats +10 -0
- data/bats/block-type-ux-require.bats +8 -0
- data/bats/block-type-vars.bats +3 -3
- data/bats/indented-multi-line-output.bats +9 -0
- data/bats/line-decor-dynamic.bats +8 -0
- data/bats/test_helper.bash +10 -0
- data/bin/tab_completion.sh +0 -5
- data/bin/tab_completion.sh.erb +0 -5
- data/docs/dev/block-hide.md +18 -0
- data/docs/dev/block-type-ux-echo.md +21 -0
- data/docs/dev/block-type-ux-preconditions.md +9 -0
- data/docs/dev/block-type-ux-readonly.md +7 -0
- data/docs/dev/block-type-ux-require.md +32 -0
- data/docs/dev/indented-multi-line-output.md +11 -0
- data/docs/dev/line-decor-dynamic.md +9 -0
- data/lib/ansi_string.rb +10 -1
- data/lib/fcb.rb +20 -5
- data/lib/filter.rb +3 -2
- data/lib/hash_delegator.rb +358 -274
- data/lib/markdown_exec/version.rb +1 -1
- data/lib/markdown_exec.rb +11 -28
- data/lib/mdoc.rb +5 -6
- data/lib/menu.src.yml +1 -0
- data/lib/menu.yml +1 -0
- metadata +16 -2
data/lib/markdown_exec.rb
CHANGED
@@ -656,32 +656,6 @@ module MarkdownExec
|
|
656
656
|
@options.merge(@options.run_state.to_h)
|
657
657
|
end
|
658
658
|
|
659
|
-
def iter_source_blocks(source, &block)
|
660
|
-
case source
|
661
|
-
when 1
|
662
|
-
HashDelegator.new(@options).blocks_from_nested_files.each(&block)
|
663
|
-
when 2
|
664
|
-
blocks_in_file, menu_blocks, mdoc =
|
665
|
-
HashDelegator.new(@options)
|
666
|
-
.mdoc_menu_and_blocks_from_nested_files(LinkState.new)
|
667
|
-
blocks_in_file.each(&block)
|
668
|
-
when 3
|
669
|
-
blocks_in_file, menu_blocks, mdoc =
|
670
|
-
HashDelegator.new(@options)
|
671
|
-
.mdoc_menu_and_blocks_from_nested_files(LinkState.new)
|
672
|
-
menu_blocks.each(&block)
|
673
|
-
else
|
674
|
-
@options.iter_blocks_from_nested_files do |btype, fcb|
|
675
|
-
case btype
|
676
|
-
when :blocks
|
677
|
-
yield fcb
|
678
|
-
when :filter
|
679
|
-
%i[blocks]
|
680
|
-
end
|
681
|
-
end
|
682
|
-
end
|
683
|
-
end
|
684
|
-
|
685
659
|
##
|
686
660
|
# Returns a lambda expression based on the given procname.
|
687
661
|
# @param procname [String] The name of the process to generate a lambda for.
|
@@ -916,7 +890,7 @@ module MarkdownExec
|
|
916
890
|
# save value to options hash if option is named
|
917
891
|
#
|
918
892
|
lambda { |value|
|
919
|
-
name = item[:long_name]&.present? ?
|
893
|
+
name = item[:long_name]&.present? ? "--#{item[:long_name]}" : "-#{item[:short_name]}"
|
920
894
|
options_parsed << item.merge(name: name, value: value)
|
921
895
|
(item[:proccode] ? item[:proccode].call(value) : value).tap do |converted|
|
922
896
|
options[item[:opt_name]] = converted if item[:opt_name]
|
@@ -1013,7 +987,16 @@ module MarkdownExec
|
|
1013
987
|
# Presents a TTY prompt to select an option or exit, returns selected option or nil
|
1014
988
|
def select_option_or_exit(prompt_text, strings, opts = {})
|
1015
989
|
@options.select_option_with_metadata(
|
1016
|
-
prompt_text,
|
990
|
+
prompt_text,
|
991
|
+
strings,
|
992
|
+
opts,
|
993
|
+
menu_blocks: strings.map do |string|
|
994
|
+
FCB.new(
|
995
|
+
chrome: true,
|
996
|
+
dname: string,
|
997
|
+
id: string
|
998
|
+
)
|
999
|
+
end
|
1017
1000
|
)&.fetch(:selected)
|
1018
1001
|
end
|
1019
1002
|
|
data/lib/mdoc.rb
CHANGED
@@ -355,13 +355,12 @@ module MarkdownExec
|
|
355
355
|
else
|
356
356
|
opts[:hide_blocks_by_name] &&
|
357
357
|
((opts[:block_name_hidden_match]&.present? &&
|
358
|
-
block.
|
358
|
+
block.s2title&.match(Regexp.new(opts[:block_name_hidden_match]))) ||
|
359
359
|
(opts[:block_name_include_match]&.present? &&
|
360
|
-
block.
|
360
|
+
block.s2title&.match(Regexp.new(opts[:block_name_include_match]))) ||
|
361
361
|
(opts[:block_name_wrapper_match]&.present? &&
|
362
|
-
block.
|
363
|
-
(block.
|
364
|
-
|
362
|
+
block.s2title&.match(Regexp.new(opts[:block_name_wrapper_match])))) &&
|
363
|
+
(block.s2title&.present? || block[:label]&.present?)
|
365
364
|
end
|
366
365
|
end
|
367
366
|
|
@@ -555,7 +554,7 @@ if $PROGRAM_NAME == __FILE__
|
|
555
554
|
def test_hide_menu_block_on_name
|
556
555
|
opts = { hide_blocks_by_name: true,
|
557
556
|
block_name_hidden_match: 'block1' }
|
558
|
-
block = FCB.new(
|
557
|
+
block = FCB.new(s2title: 'block1')
|
559
558
|
result = @doc.hide_menu_block_on_name(opts, block)
|
560
559
|
assert result # this should be true based on the given logic
|
561
560
|
end
|
data/lib/menu.src.yml
CHANGED
data/lib/menu.yml
CHANGED
@@ -44,6 +44,7 @@
|
|
44
44
|
:procname: val_as_str
|
45
45
|
- :opt_name: block_name_match
|
46
46
|
:env_var: MDE_BLOCK_NAME_MATCH
|
47
|
+
:description: Pattern for the block name in the line defining the block
|
47
48
|
:default: ":(?<title>\\S+)( |$)"
|
48
49
|
:procname: val_as_str
|
49
50
|
- :opt_name: block_name_nick_match
|
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: 2.8.
|
4
|
+
version: 2.8.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fareed Stevenson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-02-
|
11
|
+
date: 2025-02-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: clipboard
|
@@ -107,9 +107,14 @@ files:
|
|
107
107
|
- assets/select_a_block.png
|
108
108
|
- assets/select_a_file.png
|
109
109
|
- bats/bats.bats
|
110
|
+
- bats/block-hide.bats
|
110
111
|
- bats/block-type-opts.bats
|
111
112
|
- bats/block-type-ux-auto.bats
|
113
|
+
- bats/block-type-ux-echo.bats
|
112
114
|
- bats/block-type-ux-exec.bats
|
115
|
+
- bats/block-type-ux-preconditions.bats
|
116
|
+
- bats/block-type-ux-readonly.bats
|
117
|
+
- bats/block-type-ux-require.bats
|
113
118
|
- bats/block-type-ux-row-format.bats
|
114
119
|
- bats/block-type-ux-transform.bats
|
115
120
|
- bats/block-type-vars.bats
|
@@ -121,6 +126,8 @@ files:
|
|
121
126
|
- bats/fail.bats
|
122
127
|
- bats/history.bats
|
123
128
|
- bats/import.bats
|
129
|
+
- bats/indented-multi-line-output.bats
|
130
|
+
- bats/line-decor-dynamic.bats
|
124
131
|
- bats/line-wrapping.bats
|
125
132
|
- bats/markup.bats
|
126
133
|
- bats/mde.bats
|
@@ -140,11 +147,16 @@ files:
|
|
140
147
|
- bin/tab_completion.sh
|
141
148
|
- bin/tab_completion.sh.erb
|
142
149
|
- docs/dev/bats-document-configuration.md
|
150
|
+
- docs/dev/block-hide.md
|
143
151
|
- docs/dev/block-type-bash.md
|
144
152
|
- docs/dev/block-type-opts.md
|
145
153
|
- docs/dev/block-type-port.md
|
146
154
|
- docs/dev/block-type-ux-auto.md
|
155
|
+
- docs/dev/block-type-ux-echo.md
|
147
156
|
- docs/dev/block-type-ux-exec.md
|
157
|
+
- docs/dev/block-type-ux-preconditions.md
|
158
|
+
- docs/dev/block-type-ux-readonly.md
|
159
|
+
- docs/dev/block-type-ux-require.md
|
148
160
|
- docs/dev/block-type-ux-row-format.md
|
149
161
|
- docs/dev/block-type-ux-transform.md
|
150
162
|
- docs/dev/block-type-vars.md
|
@@ -155,6 +167,8 @@ files:
|
|
155
167
|
- docs/dev/document-shell.md
|
156
168
|
- docs/dev/import-missing.md
|
157
169
|
- docs/dev/import.md
|
170
|
+
- docs/dev/indented-multi-line-output.md
|
171
|
+
- docs/dev/line-decor-dynamic.md
|
158
172
|
- docs/dev/line-wrapping.md
|
159
173
|
- docs/dev/linked-file.md
|
160
174
|
- docs/dev/load1.sh
|