markdown_exec 2.8.3 → 2.8.4
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/CHANGELOG.md +26 -0
- data/Gemfile.lock +1 -1
- data/Rakefile +33 -23
- data/bats/{block-types.bats → block-type-bash.bats} +0 -25
- data/bats/block-type-link.bats +9 -0
- data/bats/block-type-port.bats +16 -0
- data/bats/block-type-ux-allowed.bats +29 -0
- data/bats/block-type-ux-auto.bats +1 -1
- data/bats/block-type-ux-chained.bats +9 -0
- data/bats/block-type-ux-echo-hash.bats +14 -0
- data/bats/block-type-ux-echo.bats +2 -2
- data/bats/block-type-ux-exec.bats +1 -1
- data/bats/block-type-ux-hidden.bats +9 -0
- data/bats/block-type-ux-invalid.bats +8 -0
- data/bats/block-type-ux-transform.bats +1 -1
- data/bats/indented-block-type-vars.bats +9 -0
- data/bats/line-decor-dynamic.bats +1 -1
- data/bats/test_helper.bash +9 -2
- data/bats/variable-expansion-multiline.bats +8 -0
- data/bats/variable-expansion.bats +1 -1
- data/docs/dev/block-type-ux-allowed.md +80 -0
- data/docs/dev/block-type-ux-chained.md +21 -0
- data/docs/dev/block-type-ux-echo-hash.md +72 -0
- data/docs/dev/block-type-ux-hidden.md +21 -0
- data/docs/dev/block-type-ux-invalid.md +5 -0
- data/docs/dev/indented-block-type-vars.md +6 -0
- data/docs/dev/line-decor-dynamic.md +2 -1
- data/docs/dev/variable-expansion-multiline.md +31 -0
- data/lib/ansi_formatter.rb +0 -1
- data/lib/ansi_string.rb +1 -1
- data/lib/array.rb +0 -1
- data/lib/array_util.rb +0 -1
- data/lib/block_label.rb +1 -1
- data/lib/cached_nested_file_reader.rb +1 -1
- data/lib/constants.rb +18 -0
- data/lib/directory_searcher.rb +1 -1
- data/lib/exceptions.rb +0 -1
- data/lib/fcb.rb +36 -5
- data/lib/filter.rb +1 -2
- data/lib/format_table.rb +1 -0
- data/lib/fout.rb +1 -1
- data/lib/hash.rb +0 -1
- data/lib/hash_delegator.rb +310 -162
- data/lib/link_history.rb +17 -17
- data/lib/logged_struct.rb +429 -0
- data/lib/markdown_exec/version.rb +1 -1
- data/lib/markdown_exec.rb +3 -3
- data/lib/mdoc.rb +5 -17
- data/lib/menu.src.yml +3 -1
- data/lib/menu.yml +1 -1
- data/lib/namer.rb +4 -5
- data/lib/null_result.rb +131 -0
- data/lib/object_present.rb +1 -1
- data/lib/option_value.rb +1 -1
- data/lib/resize_terminal.rb +1 -2
- data/lib/saved_assets.rb +1 -1
- data/lib/saved_files_matcher.rb +1 -1
- data/lib/shell_session.rb +439 -0
- data/lib/streams_out.rb +0 -1
- data/lib/string_util.rb +11 -1
- data/lib/success_result.rb +112 -0
- data/lib/text_analyzer.rb +1 -0
- data/lib/ww.rb +9 -7
- metadata +23 -3
data/lib/block_label.rb
CHANGED
data/lib/constants.rb
CHANGED
@@ -103,6 +103,24 @@ end
|
|
103
103
|
BlockSelection = Struct.new(:id)
|
104
104
|
SelectedBlockMenuState = Struct.new(:block, :source, :state)
|
105
105
|
|
106
|
+
# user responses to prompts to choose
|
107
|
+
class SelectResponse
|
108
|
+
def initialize(value)
|
109
|
+
@value = value
|
110
|
+
end
|
111
|
+
|
112
|
+
def continue?
|
113
|
+
@value == :ok
|
114
|
+
end
|
115
|
+
|
116
|
+
def self.continue?(value)
|
117
|
+
!value.is_a?(SelectResponse) || value.continue?
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
SelectResponse::BACK = SelectResponse.new(:back)
|
122
|
+
SelectResponse::OK = SelectResponse.new(:ok)
|
123
|
+
|
106
124
|
class TtyMenu
|
107
125
|
ENABLE = nil
|
108
126
|
DISABLE = ''
|
data/lib/directory_searcher.rb
CHANGED
data/lib/exceptions.rb
CHANGED
data/lib/fcb.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
1
|
+
#!/usr/bin/env -S bundle exec ruby
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
# encoding=utf-8
|
@@ -74,6 +74,19 @@ module MarkdownExec
|
|
74
74
|
@attrs.delete(key)
|
75
75
|
end
|
76
76
|
|
77
|
+
# Removes and returns the first matching name from dependencies collection
|
78
|
+
# Checks nickname, oname, pub_name and s2title
|
79
|
+
# 2024-08-04 match oname for long block names
|
80
|
+
# 2024-08-04 match nickname
|
81
|
+
# may not exist if block name is duplicated
|
82
|
+
def delete_matching_name!(dependencies)
|
83
|
+
dependencies.delete(@attrs[:dname]) ||
|
84
|
+
dependencies.delete(@attrs[:nickname]) ||
|
85
|
+
dependencies.delete(@attrs[:oname]) ||
|
86
|
+
dependencies.delete(@attrs.pub_name) ||
|
87
|
+
dependencies.delete(@attrs[:s2title])
|
88
|
+
end
|
89
|
+
|
77
90
|
# Derives a title from the body of an FCB object.
|
78
91
|
# @param fcb [Object] The FCB object whose title is to be derived.
|
79
92
|
# @return [String] The derived title.
|
@@ -141,8 +154,8 @@ module MarkdownExec
|
|
141
154
|
oname = @attrs[:oname] = format(export.menu_format, export.to_h)
|
142
155
|
@attrs[:readonly] = export.readonly
|
143
156
|
else
|
144
|
-
# triggered by an empty block
|
145
|
-
|
157
|
+
# triggered by an empty or non-YAML block
|
158
|
+
return NullResult.new(message: 'Invalid YAML', data: data)
|
146
159
|
end
|
147
160
|
end
|
148
161
|
|
@@ -150,6 +163,8 @@ module MarkdownExec
|
|
150
163
|
(yield oname, BLOCK_TYPE_COLOR_OPTIONS[@attrs[:type]]),
|
151
164
|
@attrs[:indent]
|
152
165
|
)
|
166
|
+
|
167
|
+
SuccessResult.instance
|
153
168
|
end
|
154
169
|
|
155
170
|
# Formats multiline body content as a title string.
|
@@ -163,6 +178,24 @@ module MarkdownExec
|
|
163
178
|
end.join("\n") << "\n"
|
164
179
|
end
|
165
180
|
|
181
|
+
# :reek:ManualDispatch
|
182
|
+
# 2024-08-04 match nickname
|
183
|
+
def is_dependency_of?(dependency_names)
|
184
|
+
dependency_names.include?(@attrs[:dname]) ||
|
185
|
+
dependency_names.include?(@attrs[:nickname]) ||
|
186
|
+
dependency_names.include?(@attrs[:oname]) ||
|
187
|
+
dependency_names.include?(@attrs.pub_name) ||
|
188
|
+
dependency_names.include?(@attrs[:s2title])
|
189
|
+
end
|
190
|
+
|
191
|
+
def is_named?(name)
|
192
|
+
@attrs[:dname] == name ||
|
193
|
+
@attrs[:nickname] == name ||
|
194
|
+
@attrs[:oname] == name ||
|
195
|
+
@attrs.pub_name == name ||
|
196
|
+
@attrs[:s2title] == name
|
197
|
+
end
|
198
|
+
|
166
199
|
# :reek:ManualDispatch
|
167
200
|
def method_missing(method, *args, &block)
|
168
201
|
method_name = method.to_s
|
@@ -181,8 +214,6 @@ module MarkdownExec
|
|
181
214
|
raise err
|
182
215
|
end
|
183
216
|
|
184
|
-
public
|
185
|
-
|
186
217
|
def name_in_menu!(indented_multi_line)
|
187
218
|
# Indent has been extracted from the first line,
|
188
219
|
# remove indent from the remaining lines.
|
data/lib/filter.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
1
|
+
#!/usr/bin/env -S bundle exec ruby
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
# encoding=utf-8
|
@@ -123,7 +123,6 @@ module MarkdownExec
|
|
123
123
|
#
|
124
124
|
def self.apply_other_filters(options, filters, fcb)
|
125
125
|
name = fcb.oname
|
126
|
-
shell = fcb.shell
|
127
126
|
filters[:fcb_chrome] = fcb.fetch(:chrome, false)
|
128
127
|
filters[:shell_default] = (fcb.type == BlockType::SHELL)
|
129
128
|
|
data/lib/format_table.rb
CHANGED
data/lib/fout.rb
CHANGED
data/lib/hash.rb
CHANGED