module Polyseerio
Default agent configuration.
Introduces a logger into the main module.
Main Polyseerio
module.
Constants
- CLIENT_RESOURCE_PATHS
Maps resources to paths within a
Client
- DEFAULT_CLIENT_OPTIONS
Default client options.
- REQUIRED_RESOURCES
Required resources for constructing a client.
Attributes
logger[W]
Public Class Methods
level_to_severity(level)
click to toggle source
Convert a string log level to a severity.
# File lib/log.rb, line 9 def level_to_severity(level) # rubocop:disable all case level when 'debug' Logger::DEBUG when 'error' Logger::ERROR when 'fatal' Logger::FATAL when 'info' Logger::INFO when 'unknown' Logger::UNKNOWN when 'warn' Logger::WARN else raise ArgumentError, "Unsupported log level: #{level}." end end
log(severity, *args)
click to toggle source
Convenience logging method.
# File lib/log.rb, line 42 def log(severity, *args) severity = if severity.is_a? String level_to_severity severity else severity end logger.log(severity, *args) end
logger()
click to toggle source
Gem logger.
# File lib/log.rb, line 29 def logger @logger ||= Logger.new($stdout).tap do |log| log.level = if ENV.key? 'POLYSEERIO_LOG_LEVEL' level_to_severity ENV['POLYSEERIO_LOG_LEVEL'] else Logger::ERROR end log.progname = name end end
make(options = {})
click to toggle source
Create a client.
# File lib/polyseerio.rb, line 67 def self.make(options = {}) options = Helper.defaults(options, DEFAULT_CLIENT_OPTIONS) cid = @make_call_count token = Helper.resolve_token options base_url = URL.get_base_url( Constant::DEFAULT_API_BASE_URL, Constant::DEFAULT_API_PROTOCOL, options[:version] ) if token.nil? raise ArgumentError, 'Could not find an access token. None was passed' \ 'and non could be found in the environment variable: ' \ "#{options[:token_env]}." end headers = { Constant::ACCESS_TOKEN_HEADER => token, :content_type => 'application/json' } rest_resource = RestClient::Resource.new( base_url, headers: headers, timeout: Helper.ms_to_seconds(options[:timeout]) ) # Create a request instance that uses middleware. request = Request.new( rest_resource, pre: [Middleware::Pre.format_arguments], post: [Middleware::Post.to_response, Middleware::Post.parse_response] ) resources = REQUIRED_RESOURCES.each_with_object({}) do |resource, acc| acc[resource] = Resource::Factory.make(resource, request, cid, options) acc end resources = Helper.rekey(resources, CLIENT_RESOURCE_PATHS) client = Client.new(cid, request: request, resources: resources) @make_call_count += 1 client end
start(options = {})
click to toggle source
Create a client and start it's agent.
# File lib/polyseerio.rb, line 56 def self.start(options = {}) options = Helper.defaults(options, DEFAULT_CLIENT_OPTIONS) client = make(options) client.start_agent(options[:agent]) end