Module: Ace::Search

Defined in:
lib/ace/search.rb,
lib/ace/search/cli.rb,
lib/ace/search/version.rb,
lib/ace/search/atoms/fd_executor.rb,
lib/ace/search/atoms/debug_logger.rb,
lib/ace/search/atoms/tool_checker.rb,
lib/ace/search/atoms/result_parser.rb,
lib/ace/search/cli/commands/search.rb,
lib/ace/search/models/search_preset.rb,
lib/ace/search/models/search_result.rb,
lib/ace/search/models/search_options.rb,
lib/ace/search/molecules/time_filter.rb,
lib/ace/search/atoms/pattern_analyzer.rb,
lib/ace/search/atoms/ripgrep_executor.rb,
lib/ace/search/molecules/dwim_analyzer.rb,
lib/ace/search/molecules/fzf_integrator.rb,
lib/ace/search/molecules/preset_manager.rb,
lib/ace/search/atoms/search_path_resolver.rb,
lib/ace/search/organisms/result_formatter.rb,
lib/ace/search/organisms/unified_searcher.rb,
lib/ace/search/organisms/result_aggregator.rb,
lib/ace/search/molecules/search_option_builder.rb

Defined Under Namespace

Modules: Atoms, CLI, Commands, Models, Molecules, Organisms Classes: Error

Constant Summary collapse

VERSION =
'0.26.3'

Class Method Summary collapse

Class Method Details

.configObject

Configuration Follows ADR-022: Configuration Default and Override Pattern Uses Ace::Support::Config.create() for configuration cascade resolution



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/ace/search.rb', line 25

def self.config
  @config ||= begin
    gem_root = Gem.loaded_specs["ace-search"]&.gem_dir ||
      File.expand_path("../..", __dir__)

    resolver = Ace::Support::Config.create(
      config_dir: ".ace",
      defaults_dir: ".ace-defaults",
      gem_path: gem_root
    )

    # Resolve config for search namespace
    config = resolver.resolve_namespace("search")
    # Extract the ace.search section from defaults (for backward compatibility)
    raw_data = config.data
    raw_data.dig("ace", "search") || raw_data
  rescue => e
    warn "ace-search: Could not load config: #{e.class} - #{e.message}" if debug?
    # Fall back to gem defaults instead of empty hash to prevent silent config erasure
    load_gem_defaults_fallback
  end
end

.debug?Boolean

Check if debug mode is enabled

Returns:

  • (Boolean)

    True if debug mode is enabled



18
19
20
# File 'lib/ace/search.rb', line 18

def self.debug?
  ENV["ACE_DEBUG"] == "1" || ENV["DEBUG"] == "1"
end

.load_gem_defaultsHash

Load gem defaults from .ace-defaults/search/config.yml Used by ConfigSummary to display effective configuration diffs

Returns:

  • (Hash)

    Gem defaults hash



56
57
58
59
60
61
62
63
64
65
66
# File 'lib/ace/search.rb', line 56

def self.load_gem_defaults
  gem_root = Gem.loaded_specs["ace-search"]&.gem_dir ||
    File.expand_path("../..", __dir__)
  defaults_path = File.join(gem_root, ".ace-defaults", "search", "config.yml")

  return {} unless File.exist?(defaults_path)

  data = YAML.safe_load_file(defaults_path, permitted_classes: [Date], aliases: true) || {}
  # Extract the ace.search section for backward compatibility
  data.dig("ace", "search") || data
end

.reset_config!Object

Reset config cache (useful for testing)



49
50
51
# File 'lib/ace/search.rb', line 49

def self.reset_config!
  @config = nil
end