Top Level Namespace
Defined Under Namespace
Modules: ArrayUtil, CLI, ClassMethodWrapper, CompactionHelpers, Env, Exceptions, HashDelegatorSelf, ImwUx, InstanceMethodWrapper, MarkdownExec, PathUtils, StringUtil, Tap Classes: AnsiFormatter, Array, BlockLabel, BlockLabelTest, BlockType, CachedNestedFileReader, CachedNestedFileReaderTest, DirectorySearcher, DirectorySearcherTest, DirectorySearcherTest2, ExecutionStreams, FCBTest, FOut, FalseClass, FileMissingError, Hash, IndexedLine, InputSequencer, LinkKeys, LoadFile, LoadFileLinkState, MDE, MenuControl, MenuOptions, MenuState, NestedLine, Object, OptionValueTest, Regexp, RegexpGsubFormatTest, SavedAssetTest, SavedFilesMatcherTest, SelectedBlockMenuState, StdOutErrLogger, StdOutErrLoggerTest, String, TestFindFiles, TestObjectMethods, TestStringMethods
Constant Summary collapse
- BF =
'bin'
- DISPLAY_LEVEL_BASE =
display_level values
0
- DISPLAY_LEVEL_ADMIN =
required output
1
- DISPLAY_LEVEL_DEBUG =
monit
2
- DISPLAY_LEVEL_DUMP =
3
- DISPLAY_LEVEL_DEFAULT =
DISPLAY_LEVEL_ADMIN
- DISPLAY_LEVEL_MAX =
DISPLAY_LEVEL_DUMP
- LOCAL_YML =
'menu.yml'
- MENU_YML =
"lib/#{LOCAL_YML}"
- SHELL_COLOR_OPTIONS =
{ BlockType::BASH => :menu_bash_color, BlockType::LINK => :menu_link_color, BlockType::OPTS => :menu_opts_color, BlockType::VARS => :menu_vars_color }.freeze
- ARGV_SEP =
'--'
Constants included from Tap
Tap::ALL, Tap::ALL2, Tap::CVT, Tap::DN, Tap::NONE, Tap::T1, Tap::T2, Tap::T3, Tap::T4, Tap::TB1, Tap::TB2, Tap::TB3, Tap::TD, Tap::TD0, Tap::TD1, Tap::TD2, Tap::TDD, Tap::TP, Tap::TP0, Tap::TP1, Tap::TP2
Instance Method Summary collapse
- #bpp(*args) ⇒ Object
- #dp(str) ⇒ Object
-
#extract_named_captures_from_option(str, option) ⇒ Object
convert regex match groups to a hash with symbol keys.
-
#find_files(pattern, paths = ['', Dir.pwd]) ⇒ Object
Finds files matching a given pattern within specified directory paths.
-
#format_and_highlight_dependencies(dependencies, highlight_color_sym: :exception_color_detail, plain_color_sym: :menu_chrome_color, label: 'Dependencies:', highlight: [], line_prefix: ' ', line_postfix: '', detail_sep: ' ') ⇒ String
Formats and highlights a list of dependencies.
- #format_and_highlight_hash(data, highlight_color_sym: :exception_color_detail, plain_color_sym: :menu_chrome_color, label: 'Data:', highlight: [], line_prefix: ' ', line_postfix: '', key_has_value: ': ') ⇒ Object
-
#format_and_highlight_lines(lines, highlight_color_sym: :exception_color_detail, plain_color_sym: :menu_chrome_color, label: 'Dependencies:', highlight: [], line_prefix: ' ', line_postfix: '') ⇒ Object
warn menu_blocks.to_yaml.sub(/^(?:—n)?/, “MenuBlocks:n”).
-
#list_recent_output(saved_stdout_folder, saved_stdout_glob, list_count) ⇒ Object
:reek:UtilityFunction.
-
#list_recent_scripts(saved_script_folder, saved_script_glob, list_count) ⇒ Object
:reek:UtilityFunction.
-
#main ⇒ Object
MDE.prepend(ImwUx).
- #menu_from_yaml ⇒ Object
- #rbi ⇒ Object
- #rbp ⇒ Object
- #rpry ⇒ Object
-
#spec_source(file, env_var_name = 'SPEC_DEBUG') ⇒ Object
output standard header for file load during testing.
Methods included from Tap
#tap_config, #tap_inspect, #tap_print, #tap_pry, #tap_puts, #tap_yaml
Methods included from Env
#env_bool, #env_bool_false, #env_int, #env_str
Methods included from CLI
Instance Method Details
#bpp(*args) ⇒ Object
66 67 68 69 70 |
# File 'lib/markdown_exec.rb', line 66 def bpp(*args) pp '+ bpp()' pp(*args.map.with_index { |line, ind| " - #{ind}: #{line}" }) rbi end |
#dp(str) ⇒ Object
51 52 53 |
# File 'lib/markdown_exec.rb', line 51 def dp(str) lout " => #{str}", level: DISPLAY_LEVEL_DEBUG end |
#extract_named_captures_from_option(str, option) ⇒ Object
convert regex match groups to a hash with symbol keys
:reek:UtilityFunction
82 83 84 |
# File 'lib/markdown_exec.rb', line 82 def extract_named_captures_from_option(str, option) str.match(Regexp.new(option))&.named_captures&.sym_keys end |
#find_files(pattern, paths = ['', Dir.pwd]) ⇒ Object
Finds files matching a given pattern within specified directory paths.
The function takes a pattern (filename or pattern with wildcards) and an array of paths. It searches for files matching the pattern within each of the specified paths. Hidden files are also included in the search. The search can include subdirectories depending on the path specification (e.g., ‘dir/**’ for recursive search).
Args:
pattern (String): A filename or a pattern string with wildcards.
paths (Array<String>): An array of directory paths where the search will be performed.
Paths can include wildcards for recursive search.
Returns:
Array<String>: A unique list of file paths that match the given pattern in the specified paths.
Example:
find_files('version.rb', ['lib/**', 'spec'])
# This might return file paths like ['lib/markdown_exec/version.rb', 'spec/version_spec.rb'].
25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/find_files.rb', line 25 def find_files(pattern, paths = ['', Dir.pwd]) matched_files = [] paths.each do |path_with_wildcard| # Combine the path with the wildcard and the pattern search_pattern = File.join(path_with_wildcard, pattern) # Use Dir.glob with the File::FNM_DOTMATCH flag to include hidden files matched_files += Dir.glob(search_pattern, File::FNM_DOTMATCH) end matched_files.uniq end |
#format_and_highlight_dependencies(dependencies, highlight_color_sym: :exception_color_detail, plain_color_sym: :menu_chrome_color, label: 'Dependencies:', highlight: [], line_prefix: ' ', line_postfix: '', detail_sep: ' ') ⇒ String
Formats and highlights a list of dependencies. Dependencies are presented with indentation, and specific items can be highlighted in a specified color, while others are shown in a plain color.
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/directory_searcher.rb', line 50 def format_and_highlight_dependencies( dependencies, highlight_color_sym: :exception_color_detail, plain_color_sym: :menu_chrome_color, label: 'Dependencies:', highlight: [], line_prefix: ' ', line_postfix: '', detail_sep: ' ' ) formatted_deps = dependencies&.map do |dep_name, sub_items| formatted_sub_items = sub_items.map do |item| color_sym = highlight.include?(item) ? highlight_color_sym : plain_color_sym string_send_color(item, color_sym) end.join(detail_sep) "#{line_prefix}- #{string_send_color(dep_name, highlight.include?(dep_name) ? highlight_color_sym : plain_color_sym)}: #{formatted_sub_items}#{line_postfix}" end || [] "#{line_prefix}#{string_send_color(label, highlight_color_sym)}#{line_postfix}\n" + formatted_deps.join("\n") end |
#format_and_highlight_hash(data, highlight_color_sym: :exception_color_detail, plain_color_sym: :menu_chrome_color, label: 'Data:', highlight: [], line_prefix: ' ', line_postfix: '', key_has_value: ': ') ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/directory_searcher.rb', line 9 def format_and_highlight_hash( data, highlight_color_sym: :exception_color_detail, plain_color_sym: :menu_chrome_color, label: 'Data:', highlight: [], line_prefix: ' ', line_postfix: '', key_has_value: ': ' ) formatted_deps = data&.map do |key, value| color_sym = highlight.include?(key) ? highlight_color_sym : plain_color_sym dkey = string_send_color(key, color_sym) "#{line_prefix}#{dkey}#{key_has_value}" \ "#{string_send_color(value, highlight.include?(value) ? highlight_color_sym : plain_color_sym)}: " \ "#{formatted_sub_items}#{line_postfix}" end "#{line_prefix}#{string_send_color(label, highlight_color_sym)}#{line_postfix}\n" + formatted_deps.join("\n") end |
#format_and_highlight_lines(lines, highlight_color_sym: :exception_color_detail, plain_color_sym: :menu_chrome_color, label: 'Dependencies:', highlight: [], line_prefix: ' ', line_postfix: '') ⇒ Object
warn menu_blocks.to_yaml.sub(/^(?:—n)?/, “MenuBlocks:n”)
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/directory_searcher.rb', line 75 def format_and_highlight_lines( lines, highlight_color_sym: :exception_color_detail, plain_color_sym: :menu_chrome_color, label: 'Dependencies:', highlight: [], line_prefix: ' ', line_postfix: '' ) formatted_deps = lines&.map do |item| "#{line_prefix}- #{string_send_color(dep_name, highlight.include?(dep_name) ? highlight_color_sym : plain_color_sym)}: #{item}#{line_postfix}" end || [] "#{line_prefix}#{string_send_color(label, highlight_color_sym)}#{line_postfix}\n" + formatted_deps.join("\n") end |
#list_recent_output(saved_stdout_folder, saved_stdout_glob, list_count) ⇒ Object
:reek:UtilityFunction
87 88 89 90 91 |
# File 'lib/markdown_exec.rb', line 87 def list_recent_output(saved_stdout_folder, saved_stdout_glob, list_count) SavedFilesMatcher.most_recent_list(saved_stdout_folder, saved_stdout_glob, list_count) end |
#list_recent_scripts(saved_script_folder, saved_script_glob, list_count) ⇒ Object
:reek:UtilityFunction
94 95 96 97 98 |
# File 'lib/markdown_exec.rb', line 94 def list_recent_scripts(saved_script_folder, saved_script_glob, list_count) SavedFilesMatcher.most_recent_list(saved_script_folder, saved_script_glob, list_count) end |
#main ⇒ Object
MDE.prepend(ImwUx)
223 224 225 226 227 228 229 230 231 232 |
# File 'lib/input_sequencer.rb', line 223 def main if ARGV.empty? puts "Usage: #{__FILE__} document_filename [block_name...]" exit(1) end document_filename = ARGV.shift initial_blocks = ARGV mde = MDE.new(document_filename, initial_blocks) mde.do_run end |
#menu_from_yaml ⇒ Object
22 23 24 |
# File 'lib/shared.rb', line 22 def YAML.load File.open(File.join(File.(__dir__), LOCAL_YML)) end |
#rbi ⇒ Object
55 56 57 58 |
# File 'lib/markdown_exec.rb', line 55 def rbi pp(caller.take(4).map.with_index { |line, ind| " - #{ind}: #{line}" }) binding.irb end |
#rbp ⇒ Object
60 61 62 63 64 |
# File 'lib/markdown_exec.rb', line 60 def rbp rpry pp(caller.take(4).map.with_index { |line, ind| " - #{ind}: #{line}" }) binding.pry end |
#rpry ⇒ Object
72 73 74 75 |
# File 'lib/markdown_exec.rb', line 72 def rpry require 'pry-nav' require 'pry-stack_explorer' end |
#spec_source(file, env_var_name = 'SPEC_DEBUG') ⇒ Object
output standard header for file load during testing
5 6 7 8 9 10 |
# File 'lib/rspec_helpers.rb', line 5 def spec_source(file, env_var_name = 'SPEC_DEBUG') if (->(val) { val.nil? ? false : !(val.empty? || val == '0') }) .call(ENV.fetch(env_var_name, nil)) puts "#{env_var_name}: #{file}" end end |