require 'yaml' class PawClient::Configuration attr_accessor :base_url attr_accessor :uuid attr_accessor :token attr_accessor :user_token attr_accessor :test_mode attr_accessor :logger def logger=(value) @logger=case value when String case value.downcase when 'stdout' Logger.new(STDOUT) when 'stderr' Logger.new(STDERR) else nil end else value end end def initialize(attrs={}) self.base_url = attrs.fetch(:base_url, nil) self.uuid = attrs.fetch(:uuid, nil) self.token = attrs.fetch(:token, nil) self.user_token = attrs.fetch(:user_token, nil) self.logger = attrs.fetch(:logger, nil) self.test_mode = attrs.fetch(:test_mode, false) end def self.from_yaml(path, env=nil) attrs = YAML.load_file(path) attrs = attrs[env] if env sym_attrs=attrs.each_with_object({}) {|(k, v), memo| memo[k.to_sym] = v} self.new(sym_attrs) end end