Module: Ace::Assign
- Defined in:
- lib/ace/assign.rb,
lib/ace/assign/cli.rb,
lib/ace/assign/version.rb,
lib/ace/assign/models/step.rb,
lib/ace/assign/cli/commands/add.rb,
lib/ace/assign/atoms/step_sorter.rb,
lib/ace/assign/cli/commands/fail.rb,
lib/ace/assign/cli/commands/list.rb,
lib/ace/assign/cli/commands/step.rb,
lib/ace/assign/models/assignment.rb,
lib/ace/assign/cli/commands/start.rb,
lib/ace/assign/models/queue_state.rb,
lib/ace/assign/atoms/preset_loader.rb,
lib/ace/assign/cli/commands/create.rb,
lib/ace/assign/cli/commands/finish.rb,
lib/ace/assign/cli/commands/select.rb,
lib/ace/assign/cli/commands/status.rb,
lib/ace/assign/atoms/catalog_loader.rb,
lib/ace/assign/atoms/step_numbering.rb,
lib/ace/assign/atoms/tree_formatter.rb,
lib/ace/assign/atoms/preset_expander.rb,
lib/ace/assign/cli/commands/fork_run.rb,
lib/ace/assign/molecules/step_writer.rb,
lib/ace/assign/atoms/number_generator.rb,
lib/ace/assign/atoms/step_file_parser.rb,
lib/ace/assign/cli/commands/retry_cmd.rb,
lib/ace/assign/models/assignment_info.rb,
lib/ace/assign/atoms/composition_rules.rb,
lib/ace/assign/molecules/queue_scanner.rb,
lib/ace/assign/cli/commands/fork_session.rb,
lib/ace/assign/molecules/preset_inferrer.rb,
lib/ace/assign/molecules/step_renumberer.rb,
lib/ace/assign/atoms/preset_step_resolver.rb,
lib/ace/assign/molecules/tmux_fork_runner.rb,
lib/ace/assign/molecules/assignment_manager.rb,
lib/ace/assign/organisms/assignment_executor.rb,
lib/ace/assign/cli/commands/assignment_target.rb,
lib/ace/assign/atoms/assign_frontmatter_parser.rb,
lib/ace/assign/molecules/assignment_discoverer.rb,
lib/ace/assign/molecules/fork_session_launcher.rb,
lib/ace/assign/organisms/task_assignment_creator.rb,
lib/ace/assign/molecules/skill_assign_source_resolver.rb
Defined Under Namespace
Modules: AssignmentErrors, Atoms, CLI, Commands, ConfigErrors, Models, Molecules, Organisms, StepErrors Classes: Error
Constant Summary collapse
- VERSION =
'0.53.4'
Class Method Summary collapse
-
.cache_dir ⇒ String
Default cache directory for assignments Returns an absolute path resolved from project root.
-
.config ⇒ Object
Configuration Follows ADR-022: Configuration Default and Override Pattern Uses Ace::Support::Config.create() for configuration cascade resolution.
-
.debug? ⇒ Boolean
Check if debug mode is enabled.
-
.load_gem_defaults ⇒ Hash
Load gem defaults from .ace-defaults/assign/config.yml.
-
.reset_config! ⇒ Object
Reset config cache (useful for testing).
Class Method Details
.cache_dir ⇒ String
Default cache directory for assignments Returns an absolute path resolved from project root. Respects CACHE_BASE environment variable for sandboxed/isolated testing. Respects PROJECT_ROOT_PATH environment variable for sandboxed/isolated testing.
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/ace/assign.rb', line 104 def self.cache_dir # Allow explicit CACHE_BASE override for testing/sandboxing cache_base = ENV["CACHE_BASE"] if cache_base && !cache_base.empty? return File.(cache_base) end relative_path = config["cache_dir"] || ".ace-local/assign" # If already absolute, return as-is return relative_path if Pathname.new(relative_path).absolute? # Resolve relative to project root (respects PROJECT_ROOT_PATH) project_root = Ace::Support::Fs::Molecules::ProjectRootFinder.find_or_current File.join(project_root, relative_path) end |
.config ⇒ Object
Configuration Follows ADR-022: Configuration Default and Override Pattern Uses Ace::Support::Config.create() for configuration cascade resolution
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/ace/assign.rb', line 74 def self.config @config ||= begin gem_root = Gem.loaded_specs["ace-assign"]&.gem_dir || File.("../..", __dir__) resolver = Ace::Support::Config.create( config_dir: ".ace", defaults_dir: ".ace-defaults", gem_path: gem_root ) # Resolve config for assign namespace config = resolver.resolve_namespace("assign") config.data rescue => e warn "ace-assign: Could not load config: #{e.class} - #{e.}" if debug? load_gem_defaults_fallback end end |
.debug? ⇒ Boolean
Check if debug mode is enabled
67 68 69 |
# File 'lib/ace/assign.rb', line 67 def self.debug? ENV["ACE_DEBUG"] == "1" || ENV["DEBUG"] == "1" end |
.load_gem_defaults ⇒ Hash
Load gem defaults from .ace-defaults/assign/config.yml
123 124 125 126 127 128 129 130 131 |
# File 'lib/ace/assign.rb', line 123 def self.load_gem_defaults gem_root = Gem.loaded_specs["ace-assign"]&.gem_dir || File.("../..", __dir__) defaults_path = File.join(gem_root, ".ace-defaults", "assign", "config.yml") return {} unless File.exist?(defaults_path) YAML.safe_load_file(defaults_path, permitted_classes: [Date], aliases: true) || {} end |
.reset_config! ⇒ Object
Reset config cache (useful for testing)
95 96 97 |
# File 'lib/ace/assign.rb', line 95 def self.reset_config! @config = nil end |