Module: Legion::Extensions::Detect::Scanner
- Defined in:
- lib/legion/extensions/detect/scanner.rb
Class Method Summary collapse
Class Method Details
.gather_environment ⇒ Object
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/legion/extensions/detect/scanner.rb', line 25 def gather_environment @gather_environment ||= { # rubocop:disable ThreadSafety/ClassInstanceVariable apps: scan_applications, brew_formulas: scan_brew_formulas, brew_casks: scan_brew_casks, env_vars: ENV.keys, ports: scan_ports, files: nil } end |
.reset! ⇒ Object
36 37 38 |
# File 'lib/legion/extensions/detect/scanner.rb', line 36 def reset! @gather_environment = nil # rubocop:disable ThreadSafety/ClassInstanceVariable end |
.scan ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/legion/extensions/detect/scanner.rb', line 10 def scan env = gather_environment CATALOG.each_with_object([]) do |rule, results| matched_signals = rule[:signals].select { |s| signal_present?(s, env) } next if matched_signals.empty? results << { name: rule[:name], extensions: rule[:extensions], matched_signals: matched_signals.map { |s| "#{s[:type]}:#{s[:match]}" }, installed: rule[:extensions].to_h { |e| [e, gem_installed?(e)] } } end end |