markdown_exec 1.4 → 1.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 25d73d643251be40fcf14edd59a890d3d4fca847217b02c9ee6ad6fdbb06b72e
4
- data.tar.gz: 8bde8d7e84230d50f34425fa3d549c9bbf7b78bb89219290a454547ba6a6b001
3
+ metadata.gz: 6655d4d2fdbf1334fd7eb786e8b8e3e8401ac0e8cb0e10927c1e426be9422d83
4
+ data.tar.gz: 5e2e1272f186e8fb00d240fd11501cdc5630ab497298fcc02e43c42c9b3e0f45
5
5
  SHA512:
6
- metadata.gz: 04fec544c21aac267c89868755a76cbc0f0565cc676ed3ed647ab9459c7308cf01a26572cb059a0aadc26c403067b3ead4fcd2ce5d05051320ee2aa2b8dee911
7
- data.tar.gz: 3f6ffedbddbf9a15c3fa7c05b24f61367dbff5c717328a333b1cded39ebba13e18f333383f4d35786b565b8985f2433e683daadf01a89963a606471415a4a503
6
+ metadata.gz: 63ab33098867f8f1af0b0281690e816cd657d9fc42181cdb895ee78ab2e722cc5c63303d2c2be7f9791a7cacc9503cbfc45d9277b1a35e5cdb33ef4217a8607a
7
+ data.tar.gz: 4535992b37f72e175388264c3e7ab9f5189a06e57b8a973521d95f62ea75a22de445518f19577563d78a81ebc2c8a99c3cc3e24639f04f792ad9017780c426bb
data/.pryrc CHANGED
@@ -1,9 +1,11 @@
1
1
  if defined?(PryByebug)
2
2
  Pry.config.pager = false
3
3
  Pry.commands.alias_command 'c', 'continue'
4
+ Pry.commands.alias_command 'd', 'down'
4
5
  Pry.commands.alias_command 'f', 'finish'
5
- Pry.commands.alias_command 's', 'step'
6
6
  Pry.commands.alias_command 'n', 'next'
7
+ Pry.commands.alias_command 's', 'step'
8
+ Pry.commands.alias_command 'u', 'up'
7
9
 
8
10
  Pry::Commands.command /^$/, 'repeat last command' do
9
11
  _pry_.run_command Pry.history.to_a.last
data/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.4.1] - 2023-11-02
4
+
5
+ ### Added
6
+
7
+ - Support for nested links.
8
+ A Link block name can be followed by the block name to execute in the linked document.
9
+ Nested links result in scripts with nested required blocks.
10
+
11
+ ## [1.4] - 2023-10-31
12
+
13
+ ### Added
14
+
15
+ - Add required code blocks to link block types.
16
+ Allows for nested required code as links are navigated.
17
+
18
+ - Add fg_rgbh_* methods to process hex RGB specifications.
19
+
3
20
  ## [1.3.9] - 2023-10-29
4
21
 
5
22
  Add block types for linking and variable control
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- markdown_exec (1.4)
4
+ markdown_exec (1.4.1)
5
5
  clipboard (~> 1.3.6)
6
6
  open3 (~> 0.1.1)
7
7
  optparse (~> 0.1.1)
@@ -13,7 +13,7 @@ __filedirs_all()
13
13
  }
14
14
 
15
15
  _mde_echo_version() {
16
- echo "1.4"
16
+ echo "1.4.1"
17
17
  }
18
18
 
19
19
  _mde() {
@@ -138,4 +138,4 @@ _mde() {
138
138
 
139
139
  complete -o filenames -o nospace -F _mde mde
140
140
  # _mde_echo_version
141
- # echo "Updated: 2023-10-31 15:43:43 UTC"
141
+ # echo "Updated: 2023-11-02 13:20:09 UTC"
data/examples/linked1.md CHANGED
@@ -15,6 +15,7 @@ colorize_env_vars 'vars for page3' PAGE3_VAR_VIA_INHERIT page3_var_via_environme
15
15
  ::: 1. requires a block that sets environment variable PAGE2_VAR_VIA_INHERIT,
16
16
  ::: 2. navigates to document 2, and
17
17
  ::: 3. executes block "show_vars" to display the imported PAGE2_VAR_VIA_INHERIT.
18
+ ::: Any script generated by page 2 will contain the inherited code.
18
19
 
19
20
  ```bash :(vars2)
20
21
  PAGE2_VAR_VIA_INHERIT=for_page2_from_page1_via_inherited_code_file
data/examples/linked2.md CHANGED
@@ -11,7 +11,6 @@ colorize_env_vars 'vars for page2' PAGE2_VAR_VIA_INHERIT page2_var_via_environme
11
11
  colorize_env_vars 'vars for page3' PAGE3_VAR_VIA_INHERIT page3_var_via_environment
12
12
  ```
13
13
 
14
-
15
14
  ::: This Link block requires a block that
16
15
  ::: 1. sets environment variable PAGE3_VAR_VIA_INHERIT,
17
16
  ::: 2. navigates to document 3, and
@@ -7,5 +7,5 @@ module MarkdownExec
7
7
  BIN_NAME = 'mde'
8
8
  GEM_NAME = 'markdown_exec'
9
9
  TAP_DEBUG = 'MDE_DEBUG'
10
- VERSION = '1.4'
10
+ VERSION = '1.4.1'
11
11
  end
data/lib/markdown_exec.rb CHANGED
@@ -9,6 +9,7 @@ require 'fileutils'
9
9
  require 'open3'
10
10
  require 'optparse'
11
11
  require 'shellwords'
12
+ require 'tmpdir'
12
13
  require 'tty-prompt'
13
14
  require 'yaml'
14
15
 
@@ -505,13 +506,14 @@ module MarkdownExec
505
506
  #
506
507
  def execute_block_with_error_handling(rest)
507
508
  finalize_cli_argument_processing(rest)
508
- execute_code_block_based_on_options(@options, @options[:block_name])
509
+ @options[:cli_rest] = rest
510
+ execute_code_block_based_on_options(@options)
509
511
  rescue FileMissingError => err
510
512
  puts "File missing: #{err}"
511
513
  end
512
514
 
513
515
  # Main method to execute a block based on options and block_name
514
- def execute_code_block_based_on_options(options, _block_name = '')
516
+ def execute_code_block_based_on_options(options)
515
517
  options = calculated_options.merge(options)
516
518
  update_options(options, over: false)
517
519
 
@@ -1088,6 +1090,15 @@ module MarkdownExec
1088
1090
  ].compact)
1089
1091
  end
1090
1092
 
1093
+ def next_block_name_from_command_line_arguments(opts)
1094
+ if opts[:cli_rest].present?
1095
+ opts[:block_name] = opts[:cli_rest].pop
1096
+ false # repeat_menu
1097
+ else
1098
+ true # repeat_menu
1099
+ end
1100
+ end
1101
+
1091
1102
  # :reek:ControlParameter
1092
1103
  def optsmerge(call_options = {}, options_block = nil)
1093
1104
  class_call_options = @options.merge(call_options || {})
@@ -1337,11 +1348,12 @@ module MarkdownExec
1337
1348
  load_file, next_block_name = approve_and_execute_block(opts, mdoc)
1338
1349
  default = load_file == LOAD_FILE ? 1 : opts[:block_name]
1339
1350
  opts[:block_name] = next_block_name
1340
-
1341
1351
  break if state == :continue && load_file == LOAD_FILE
1342
1352
  break unless repeat_menu
1343
1353
  end
1344
1354
  break if load_file != LOAD_FILE
1355
+
1356
+ repeat_menu = next_block_name_from_command_line_arguments(opts)
1345
1357
  end
1346
1358
  rescue StandardError => err
1347
1359
  warn(error = "ERROR ** MarkParse.select_approve_and_execute_block(); #{err.inspect}")
@@ -1625,7 +1637,6 @@ module MarkdownExec
1625
1637
  )[:code]).join("\n")
1626
1638
 
1627
1639
  Dir::Tmpname.create(self.class.to_s) do |path|
1628
- pp path
1629
1640
  File.write(path, code_blocks)
1630
1641
  ENV['MDE_LINK_REQUIRED_FILE'] = path
1631
1642
  end
data/lib/menu.yml CHANGED
@@ -1,4 +1,4 @@
1
- # MDE - Markdown Executor (1.4)
1
+ # MDE - Markdown Executor (1.4.1)
2
2
  ---
3
3
  - :description: Show current configuration values
4
4
  :procname: show_config
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.4'
4
+ version: 1.4.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-10-31 00:00:00.000000000 Z
11
+ date: 2023-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clipboard