Module: SnippetCli::VarUsageChecker

Defined in:
lib/snippet_cli/var_usage_checker.rb

Overview

Checks variable usage in a single snippet match. Detects declared-but-unused vars and used-but-undeclared {refs}.

Constant Summary collapse

VAR_REF_PATTERN =
/\{\{(\w+(?:\.\w+)?)\}\}/
REPLACEMENT_KEYS =
%i[replace html markdown image_path].freeze

Class Method Summary collapse

Class Method Details

.match_warnings(vars, replacement, global_var_names: []) ⇒ Object

Returns a hash { unused: […], undeclared: […] } of variable name arrays. vars: array of var hashes (symbol or string keyed) replacement: hash with one of :replace, :html, :markdown, :image_path



15
16
17
18
19
20
21
22
23
# File 'lib/snippet_cli/var_usage_checker.rb', line 15

def self.match_warnings(vars, replacement, global_var_names: [])
  declared = extract_names(vars)
  used     = extract_refs(replacement)
  known    = declared + Array(global_var_names)
  {
    unused: declared - used,
    undeclared: used - known
  }
end