Sha256: bfaee0a27ec990d5ccd2b3c2d58c5b252982b75e64f02587d8eceed8005d94a0

Contents?: true

Size: 1.33 KB

Versions: 8

Compression:

Stored size: 1.33 KB

Contents

require "chef-config/config"
require "chef-config/workstation_config_loader"
require "socket" # FIXME: why?

module Berkshelf
  class ChefConfigCompat
    # Create a new Chef Config object.
    #
    # @param [#to_s] path
    #   the path to the configuration file
    # @param [Hash] options
    def initialize(path, options = {})
      ChefConfig::WorkstationConfigLoader.new(path).load
      ChefConfig::Config.merge!(options)
      ChefConfig::Config.export_proxies # Set proxy settings as environment variables
    end

    # Keep defaults that aren't in ChefConfig::Config
    def cookbook_copyright(*args, &block)
      ChefConfig::Config.cookbook_copyright(*args, &block) || "YOUR_NAME"
    end

    def cookbook_email(*args, &block)
      ChefConfig::Config.cookbook_email(*args, &block) || "YOUR_EMAIL"
    end

    def cookbook_license(*args, &block)
      ChefConfig::Config.cookbook_license(*args, &block) || "reserved"
    end

    # The configuration as a hash
    def to_hash
      ChefConfig::Config.save(true)
    end

    # Load from a file
    def self.from_file(file)
      new(file)
    end

    # Behave just like ChefConfig::Config in general
    def method_missing(name, *args, &block)
      ChefConfig::Config.send(name, *args, &block)
    end

    def respond_to_missing?(name)
      ChefConfig::Config.respond_to?(name)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
berkshelf-7.0.7 lib/berkshelf/chef_config_compat.rb
berkshelf-7.0.6 lib/berkshelf/chef_config_compat.rb
berkshelf-7.0.5 lib/berkshelf/chef_config_compat.rb
berkshelf-7.0.4 lib/berkshelf/chef_config_compat.rb
berkshelf-7.0.3 lib/berkshelf/chef_config_compat.rb
berkshelf-7.0.2 lib/berkshelf/chef_config_compat.rb
berkshelf-7.0.1 lib/berkshelf/chef_config_compat.rb
berkshelf-7.0.0 lib/berkshelf/chef_config_compat.rb