module Sonarqube::Configuration

Defines constants and methods related to configuration.

Constants

DEFAULT_USER_AGENT

The user agent that will be sent to the API endpoint if none is set.

VALID_OPTIONS_KEYS

An array of valid keys in the options hash when configuring a Sonarqube::API.

Public Class Methods

extended(base) click to toggle source

Sets all configuration options to their default values when this module is extended.

# File lib/sonarqube/configuration.rb, line 19
def self.extended(base)
  base.reset
end

Public Instance Methods

configure() { |self| ... } click to toggle source

Convenience method to allow configuration options to be set in a block.

# File lib/sonarqube/configuration.rb, line 24
def configure
  yield self
end
options() click to toggle source

Creates a hash of options and their values.

# File lib/sonarqube/configuration.rb, line 29
def options
  VALID_OPTIONS_KEYS.inject({}) do |option, key|
    option.merge!(key => send(key))
  end
end
reset() click to toggle source

Resets all configuration options to the defaults.

# File lib/sonarqube/configuration.rb, line 36
def reset
  self.endpoint       = ENV['SONARQUBE_API_ENDPOINT']
  self.private_token  = ENV['SONARQUBE_API_PRIVATE_TOKEN']
  self.httparty       = get_httparty_config(ENV['SONARQUBE_API_HTTPARTY_OPTIONS'])
  self.user_agent     = DEFAULT_USER_AGENT
end

Private Instance Methods

get_httparty_config(options) click to toggle source

Allows HTTParty config to be specified in ENV using YAML hash.

# File lib/sonarqube/configuration.rb, line 46
def get_httparty_config(options)
  return if options.nil?

  httparty = Sonarqube::CLI::Helpers.yaml_load(options)
  raise ArgumentError, 'HTTParty config should be a Hash.' unless httparty.is_a? Hash

  Sonarqube::CLI::Helpers.symbolize_keys httparty
end