Sha256: e49f7d412f7c33fc52ab5518508c953b189a373cfce5bb75d859734f9cfedc28

Contents?: true

Size: 1.46 KB

Versions: 7

Compression:

Stored size: 1.46 KB

Contents

# frozen_string_literal: true

module Facter
  class Options
    include Facter::DefaultOptions
    include Facter::ConfigFileOptions
    include Facter::PriorityOptions
    include Facter::HelperOptions
    include Facter::ValidateOptions

    include Singleton

    attr_accessor :priority_options

    def initialize
      @options = {}
      @priority_options = {}
    end

    def refresh(user_query = [])
      @user_query = user_query
      initialize_options

      @options
    end

    def get
      @options
    end

    def [](option)
      @options.fetch(option, nil)
    end

    def custom_dir?
      @options[:custom_dir] && @options[:custom_facts]
    end

    def custom_dir
      @options[:custom_dir]
    end

    def external_dir?
      @options[:external_dir] && @options[:external_facts]
    end

    def external_dir
      @options[:external_dir]
    end

    def self.method_missing(name, *args, &block)
      Facter::Options.instance.send(name.to_s, *args, &block)
    rescue NoMethodError
      super
    end

    def self.respond_to_missing?(name, include_private) end

    private

    def initialize_options
      @options = { config: @priority_options[:config] }
      augment_with_defaults!
      augment_with_to_hash_defaults! if @priority_options[:to_hash]
      augment_with_config_file_options!(@options[:config])
      augment_with_priority_options!(@priority_options)
      validate_configs
      augment_with_helper_options!(@user_query)
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
facter-4.0.15 lib/framework/core/options.rb
facter-4.0.14 lib/framework/core/options.rb
facter-4.0.13 lib/framework/core/options.rb
facter-4.0.12 lib/framework/core/options.rb
facter-4.0.11 lib/framework/core/options.rb
facter-4.0.10.pre lib/framework/core/options.rb
facter-4.0.9.pre lib/framework/core/options.rb