Module: AgentsHomedir

Defined in:
lib/agents_homedir.rb,
lib/agents_homedir.rb,
lib/agents_homedir/agent.rb,
lib/agents_homedir/error.rb,
lib/agents_homedir/version.rb,
lib/agents_homedir/registry.rb,
lib/agents_homedir/resolver.rb,
lib/agents_homedir/unknown_agent.rb,
lib/agents_homedir/home_not_resolvable.rb

Defined Under Namespace

Classes: Agent, Error, HomeNotResolvable, Resolver, UnknownAgent

Constant Summary collapse

VERSION =
"0.2.1"

Class Method Summary collapse

Class Method Details

.[](name) ⇒ AgentsHomedir::Agent

Returns the named agent from the default registry.

Parameters:

  • name (String, Symbol)

Returns:

Raises:



56
57
58
# File 'lib/agents_homedir.rb', line 56

def [](name)
  default_resolver[name]
end

.agentsArray<AgentsHomedir::Agent>

Returns all known agents in registry order.

Returns:



63
64
65
# File 'lib/agents_homedir.rb', line 63

def agents
  default_resolver.agents
end

.default_resolverAgentsHomedir::Resolver

Returns the memoized default resolver built from the current environment. ENV and HOME are snapshotted on first access and reused for process lifetime.

Returns:

Raises:

  • (ArgumentError)

    if the current host OS is unsupported



23
24
25
26
27
28
29
# File 'lib/agents_homedir.rb', line 23

def default_resolver
  return @default_resolver if @default_resolver

  DEFAULT_RESOLVER_MONITOR.synchronize do
    @default_resolver ||= Resolver.new
  end
end

.home(name) ⇒ Pathname

Returns the configured home directory for the named agent.

Parameters:

  • name (String, Symbol)

Returns:

  • (Pathname)

Raises:



37
38
39
# File 'lib/agents_homedir.rb', line 37

def home(name)
  default_resolver.home(name)
end

.installedArray<AgentsHomedir::Agent>

Returns currently installed agents in registry order.

Returns:

Raises:



71
72
73
# File 'lib/agents_homedir.rb', line 71

def installed
  default_resolver.installed
end

.installed?(name) ⇒ Boolean

Returns whether the named agent is currently installed.

Parameters:

  • name (String, Symbol)

Returns:

  • (Boolean)

Raises:



47
48
49
# File 'lib/agents_homedir.rb', line 47

def installed?(name)
  default_resolver.installed?(name)
end

.namesArray<Symbol>

Returns all known agent names in registry order.

Returns:

  • (Array<Symbol>)


78
79
80
# File 'lib/agents_homedir.rb', line 78

def names
  default_resolver.names
end