class Misty::Config
Constants
- CONTENT_TYPE
Default REST content type. Use :json or :hash
- CONTENT_TYPES
Valid content format
- INTERFACE
Default Interface
- INTERFACES
Valid endpoint interfaces
- LOG_FILE
Default Log file
- LOG_LEVEL
Default Log level
- REGION
Default Region
- SSL_VERIFY_MODE
Default when uri.scheme is https
Attributes
log[R]
services[R]
token[R]
Public Class Methods
new(arg)
click to toggle source
# File lib/misty/config.rb, line 32 def initialize(arg) raise CredentialsError if arg.nil? || arg.empty? || arg[:auth].nil? || arg[:auth].empty? @log = set_log(arg[:log_file], arg[:log_level]) @globals = set_config(arg) @services = set_services(arg) arg[:log] = @log @token = Misty::Auth::Token.build(arg[:auth]) end
Public Instance Methods
get_service(method)
click to toggle source
# File lib/misty/config.rb, line 41 def get_service(method) set = {} set[:token] = @token set[:log] = @log service_config = @services.key?(method) ? @services[method] : {} if service_config set[:config] = set_config(service_config, @globals) set[:config].merge!(set_service(service_config)) else set[:config] = @globals end set end
set_service(arg)
click to toggle source
# File lib/misty/config.rb, line 55 def set_service(arg) set = {} set[:api_version] = arg[:api_version] ? arg[:api_version] : nil set[:base_path] = arg[:base_path] ? arg[:base_path].chomp('/') : nil set[:endpoint] = arg[:endpoint] ? arg[:endpoint] : nil set[:service_name] = arg[:service_name] ? arg[:service_name] : nil set[:version] = arg[:version] ? arg[:version] : nil set end
Private Instance Methods
get_defaults()
click to toggle source
# File lib/misty/config.rb, line 83 def get_defaults set = {} set[:content_type] = CONTENT_TYPE set[:headers] = HTTP::Header.new('Accept' => 'application/json; q=1.0') set[:interface] = INTERFACE set[:region] = REGION set[:ssl_verify_mode] = SSL_VERIFY_MODE set end
set_config(arg = {}, defaults = get_defaults)
click to toggle source
# File lib/misty/config.rb, line 67 def set_config(arg = {}, defaults = get_defaults) set = {} set[:content_type] = set_content_type(arg[:content_type], defaults[:content_type]) set[:headers] = set_headers(arg[:headers], defaults[:headers]) set[:interface] = set_interface(arg[:interface], defaults[:interface]) set[:region] = set_region(arg[:region], defaults[:region]) set[:ssl_verify_mode] = set_ssl_verify_mode(arg[:ssl_verify_mode], defaults[:ssl_verify_mode]) set end
set_content_type(val, default)
click to toggle source
# File lib/misty/config.rb, line 77 def set_content_type(val, default) res = val.nil? ? default : val raise InvalidDataError, "Config ':content_type' must be one of #{CONTENT_TYPES}" unless CONTENT_TYPES.include?(res) res end
set_headers(val, default)
click to toggle source
# File lib/misty/config.rb, line 93 def set_headers(val, default) res = HTTP::Header.new res.add(default.get) res.add(val) if !val.nil? && !val.empty? res end
set_interface(val, default)
click to toggle source
# File lib/misty/config.rb, line 100 def set_interface(val, default) res = val.nil? ? default : val raise InvalidDataError, "Config ':interface' must be one of #{INTERFACES}" unless INTERFACES.include?(res) res end
set_log(file, level)
click to toggle source
# File lib/misty/config.rb, line 106 def set_log(file, level) log = Logger.new(file ? file : LOG_FILE) log.level = level ? level : LOG_LEVEL log end
set_region(val, default)
click to toggle source
# File lib/misty/config.rb, line 112 def set_region(val, default) res = val.nil? ? default : val raise InvalidDataError, "Config ':region' must be a String" unless res.kind_of? String res end
set_services(arg)
click to toggle source
# File lib/misty/config.rb, line 118 def set_services(arg) set = {} arg.each do |e, k| set[e] = k if Misty.services.find {|s| s.type == e} end set end
set_ssl_verify_mode(val, default)
click to toggle source
# File lib/misty/config.rb, line 126 def set_ssl_verify_mode(val, default) res = val.nil? ? default : val raise InvalidDataError, "Config ':ssl_verify_mode' must be a Boolean" unless res == !!res res end