module Caco::Facter::ClassMethods
Public Instance Methods
call(*items)
click to toggle source
# File lib/caco/facter.rb, line 20 def call(*items) value = json_data(*items).dig(*items) raise KeyNotFoundError.new("#{items.join(":")} not found") unless value value end
set_fake_data=(data)
click to toggle source
# File lib/caco/facter.rb, line 7 def set_fake_data=(data) @@fake_data = data end
use_fake(data) { || ... }
click to toggle source
# File lib/caco/facter.rb, line 11 def use_fake(data, &block) old_fake_data = @@fake_data @@fake_data = data yield @@fake_data = old_fake_data end
Private Instance Methods
external_facter_data()
click to toggle source
# File lib/caco/facter.rb, line 33 def external_facter_data facter_path = Caco::Executer.(command: "which facter")[:output].chomp! result = Caco::Executer.(command: "#{facter_path} -j") result[:output] end
json_data(*items)
click to toggle source
# File lib/caco/facter.rb, line 27 def json_data(*items) return @@fake_data unless @@fake_data.nil? @@parsed_data ||= JSON.parse(external_facter_data) end