lib/ridley/chef/config.rb
require 'chef-config/config'
require 'chef-config/workstation_config_loader'
require 'socket'
module Ridley::Chef
class Config
# 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