Class: AgentsHomedir::Agent
- Inherits:
-
Object
- Object
- AgentsHomedir::Agent
- Defined in:
- lib/agents_homedir/agent.rb
Instance Method Summary collapse
- #candidates ⇒ Object
- #home ⇒ Object
-
#initialize(name:, label:, env_override:, verified_on:, resolver:) ⇒ Agent
constructor
Equality and hash intentionally cover only public facts.
- #installed? ⇒ Boolean
- #with(**changes) ⇒ Object
Constructor Details
#initialize(name:, label:, env_override:, verified_on:, resolver:) ⇒ Agent
Equality and hash intentionally cover only public facts. Resolver-specific caches should key by resolver and agent name.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/agents_homedir/agent.rb', line 9 def initialize(name:, label:, env_override:, verified_on:, resolver:) validate_name!(name) validate_label!(label) validate_env_override!(env_override) validate_verified_on!(verified_on) @resolver = resolver super( name: name, label: snapshot_string(label), env_override: snapshot_string(env_override), verified_on: ) end |
Instance Method Details
#candidates ⇒ Object
29 |
# File 'lib/agents_homedir/agent.rb', line 29 def candidates = @resolver.candidates(name) |
#home ⇒ Object
25 |
# File 'lib/agents_homedir/agent.rb', line 25 def home = @resolver.home(name) |
#installed? ⇒ Boolean
27 |
# File 'lib/agents_homedir/agent.rb', line 27 def installed? = @resolver.installed?(name) |
#with(**changes) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/agents_homedir/agent.rb', line 31 def with(**changes) return self if changes.empty? unknown_members = changes.keys - self.class.members fail ArgumentError, "Unknown member(s) for #{self.class}: #{unknown_members.map(&:inspect).join(', ')}" if unknown_members.any? reject_resolver_bound_changes!(changes) updated = to_h.merge(changes) return self if updated == to_h self.class.new(**updated, resolver: @resolver) end |