Sha256: 1d95effd36c6a6a13352a937806820fe6e36e0a439d8eb6cbae29f04874db415
Contents?: true
Size: 1.62 KB
Versions: 1
Compression:
Stored size: 1.62 KB
Contents
module Trackerific # Provides a dynamic configuration class Configuration include OptionsHelper # Creates a new instance of Trackerific::Configuration # @api private def initialize @options = {} end # Overriding the method_missing method allows dynamic methods # @return [Hash] # @api private def method_missing(sym, *args, &block) # Get a list of all the services (convert symbols to lower case) services = Trackerific.services.map { |service| service.to_s.downcase.to_sym } # Do not accept any configuration values for anything except services raise NoMethodError unless services.include? sym unless args.empty? # Only accept Hashes raise ArgumentError unless args[0].class == Hash # Validate configuration values against the required parameters for that service validate_options args[0], Trackerific.service_get(sym).required_parameters # Store the configuration options @options[sym] = args[0] end # return the configuration options @options[sym] end end class << self # Stores the configuration options for Trackerific # @return [Trackerific::Configuration] # @api private def configuration @configuration ||= Trackerific::Configuration.new end # Configures Trackerific # @return [Trackerific::Configuration] # @example Defining credentials # Trackerific.configure do |config| # config.fedex :meter => '123456789', :account => '123456789' # end # @api public def configure yield configuration configuration end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
trackerific-0.6.0 | lib/trackerific/configuration.rb |