Module: Ace::Support::Nav

Defined in:
lib/ace/support/nav.rb,
lib/ace/support/nav/cli.rb,
lib/ace/support/nav/version.rb,
lib/ace/support/nav/models/resource.rb,
lib/ace/support/nav/atoms/uri_parser.rb,
lib/ace/support/nav/cli/commands/list.rb,
lib/ace/support/nav/atoms/gem_resolver.rb,
lib/ace/support/nav/cli/commands/create.rb,
lib/ace/support/nav/models/resource_uri.rb,
lib/ace/support/nav/cli/commands/resolve.rb,
lib/ace/support/nav/cli/commands/sources.rb,
lib/ace/support/nav/atoms/path_normalizer.rb,
lib/ace/support/nav/models/handbook_source.rb,
lib/ace/support/nav/models/protocol_source.rb,
lib/ace/support/nav/molecules/config_loader.rb,
lib/ace/support/nav/atoms/extension_inferrer.rb,
lib/ace/support/nav/molecules/source_registry.rb,
lib/ace/support/nav/molecules/handbook_scanner.rb,
lib/ace/support/nav/molecules/protocol_scanner.rb,
lib/ace/support/nav/molecules/resource_resolver.rb,
lib/ace/support/nav/organisms/command_delegator.rb,
lib/ace/support/nav/organisms/navigation_engine.rb

Defined Under Namespace

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

Constant Summary collapse

VERSION =
'0.28.2'

Class Method Summary collapse

Class Method Details

.configHash

Load ace-support-nav configuration using ace-config cascade Follows ADR-022: Configuration Default and Override Pattern Uses Ace::Support::Config.create() for configuration cascade resolution Thread-safe: uses mutex for initialization

Returns:

  • (Hash)

    Configuration hash with defaults merged



51
52
53
54
55
56
57
58
59
# File 'lib/ace/support/nav.rb', line 51

def self.config
  # Fast path: return cached config if already initialized
  return @config if defined?(@config) && @config

  # Thread-safe initialization
  @config_mutex.synchronize do
    @config ||= load_config
  end
end

.debug?Boolean

Check if debug mode is enabled

Returns:

  • (Boolean)

    True if debug mode is enabled



42
43
44
# File 'lib/ace/support/nav.rb', line 42

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

.gem_rootString

Returns the gem root directory Used by command files to locate .ace-defaults/ configuration Centralizes the path calculation to avoid duplication across commands

Returns:

  • (String)

    Path to the gem root directory



35
36
37
38
# File 'lib/ace/support/nav.rb', line 35

def self.gem_root
  @gem_root ||= Gem.loaded_specs["ace-support-nav"]&.gem_dir ||
    File.expand_path("../../..", __dir__)
end

.reset_config!Object

Reset config cache (useful for testing) Thread-safe: uses mutex to prevent race conditions



63
64
65
66
67
# File 'lib/ace/support/nav.rb', line 63

def self.reset_config!
  @config_mutex.synchronize do
    @config = nil
  end
end