Class: Agent::Homedir::Entry

Inherits:
Object
  • Object
show all
Defined in:
lib/agent/homedir/entry.rb

Instance Method Summary collapse

Constructor Details

#initialize(name:, label:, env_override:, verified_on:, resolver:) ⇒ Entry

Equality and hash intentionally cover only public facts. Resolver-specific caches should key by resolver and agent name.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/agent/homedir/entry.rb', line 10

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

#candidatesObject



30
# File 'lib/agent/homedir/entry.rb', line 30

def candidates = @resolver.candidates(name)

#homeObject



26
# File 'lib/agent/homedir/entry.rb', line 26

def home = @resolver.home(name)

#installed?Boolean

Returns:

  • (Boolean)


28
# File 'lib/agent/homedir/entry.rb', line 28

def installed? = @resolver.installed?(name)

#with(**changes) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/agent/homedir/entry.rb', line 32

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