Class: Facter::Resolvers::BaseResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/facter/resolvers/base_resolver.rb

Class Method Summary collapse

Class Method Details

.invalidate_cacheObject



10
11
12
# File 'lib/facter/resolvers/base_resolver.rb', line 10

def self.invalidate_cache
  @fact_list = {}
end

.logObject



6
7
8
# File 'lib/facter/resolvers/base_resolver.rb', line 6

def self.log
  @log ||= Log.new(self)
end

.post_resolve(_fact_name) ⇒ Object

Raises:

  • (NotImplementedError)


28
29
30
# File 'lib/facter/resolvers/base_resolver.rb', line 28

def self.post_resolve(_fact_name)
  raise NotImplementedError, "You must implement post_resolve(fact_name) method in #{name}"
end

.resolve(fact_name) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/facter/resolvers/base_resolver.rb', line 18

def self.resolve(fact_name)
  @semaphore.synchronize do
    subscribe_to_manager
    post_resolve(fact_name)
  end
rescue LoadError => e
  log.debug("resolving fact #{fact_name}, but #{e}")
  @fact_list[fact_name] = nil
end

.subscribe_to_managerObject



14
15
16
# File 'lib/facter/resolvers/base_resolver.rb', line 14

def self.subscribe_to_manager
  Facter::SessionCache.subscribe(self)
end