Sha256: d0020b40d89457742882d94477e6dac739b711cc7d913663516ae4458b980c0c
Contents?: true
Size: 1.6 KB
Versions: 1
Compression:
Stored size: 1.6 KB
Contents
module ChefAPI # # A re-usable class containing configuration information for the {Client}. See # {Defaults} for a list of default values. # module Configurable class << self # # The list of configurable keys. # # @return [Array<Symbol>] # def keys @keys ||= [ :endpoint, :client, :key, :proxy_address, :proxy_password, :proxy_port, :proxy_username, :ssl_pem_file, :ssl_verify, :user_agent, ] end end # # Create one attribute getter and setter for each key. # ChefAPI::Configurable.keys.each do |key| attr_accessor key end # # Set the configuration for this config, using a block. # # @example Configure the API endpoint # ChefAPI.configure do |config| # config.endpoint = "http://www.my-ChefAPI-server.com/ChefAPI" # end # def configure yield self end # # Reset all configuration options to their default values. # # @example Reset all settings # ChefAPI.reset! # # @return [self] # def reset! ChefAPI::Configurable.keys.each do |key| instance_variable_set(:"@#{key}", Defaults.options[key]) end self end alias_method :setup, :reset! private # # The list of configurable keys, as an options hash. # # @return [Hash] # def options map = ChefAPI::Configurable.keys.map do |key| [key, instance_variable_get(:"@#{key}")] end Hash[map] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
chef-api-0.2.0 | lib/chef-api/configurable.rb |