class NexusCli::Configuration

Constants

DEFAULT_FILE

Attributes

password[RW]
repository[RW]
url[RW]
username[RW]

Public Class Methods

file_path() click to toggle source

The filepath to the nexus cli configuration file

@return [String]

# File lib/nexus_cli/configuration.rb, line 11
def file_path
  File.expand_path(ENV['NEXUS_CONFIG'] || File.expand_path(DEFAULT_FILE))
end
from_file() click to toggle source

Creates a new instance of the Configuration object from the config file

@return [NexusCli::Configuration]

# File lib/nexus_cli/configuration.rb, line 32
def from_file
  config = load_config
  raise MissingSettingsFileException unless config
  new(config)
end
from_overrides(overrides) click to toggle source

Creates a new instance of the Configuration object based on some overrides

@param [Hash] overrides

@return [NexusCli::Configuration]

# File lib/nexus_cli/configuration.rb, line 20
def from_overrides(overrides)
  raise MissingSettingsFileException unless overrides

  configuration = load_config || Hash.new
  configuration.merge!(overrides)
  new(configuration)
end
new(options) click to toggle source
# File lib/nexus_cli/configuration.rb, line 84
def initialize(options)
  @url = options[:url] || options['url']
  @repository = options[:repository] || options['repository']
  @username = options[:username] || options['username']
  @password = options[:password] || options['password']

  if @repository.is_a?(String)
    @repository = @repository.gsub(' ', '_')
  end
end
validate!(config) click to toggle source

Validates an instance of the Configuration object and raises when there is an error with it

@param config [NexusCli::Configuration]

@raise [NexusCli::InvalidSettingsException]

# File lib/nexus_cli/configuration.rb, line 44
def validate!(config)
  unless config.valid?
    raise InvalidSettingsException.new(config.errors)
  end
end

Private Class Methods

load_config() click to toggle source

Loads the config file

@return [Hash]

# File lib/nexus_cli/configuration.rb, line 55
def load_config
  begin
    config = YAML.load_file(file_path)
  rescue Errno::ENOENT
    nil
  end
end

Public Instance Methods

[](attr) click to toggle source
# File lib/nexus_cli/configuration.rb, line 95
def [](attr)
  self.instance_variable_get('@' + attr.to_s)
end
[]=(attr, value) click to toggle source
# File lib/nexus_cli/configuration.rb, line 99
def []=(attr, value)
  self.instance_variable_set('@' + attr.to_s, value)
  if @repository.is_a?(String)
    @repository = @repository.gsub(' ', '_')
  end
end
errors() click to toggle source
# File lib/nexus_cli/configuration.rb, line 72
def errors
  result = Hash.new
  result[:url] = ["url required"] unless url.is_a?(String) && url.size > 0
  result[:repository] = ["repository required"] unless repository.is_a?(String) && repository.size > 0
  result
end
valid?() click to toggle source
# File lib/nexus_cli/configuration.rb, line 68
def valid?
  errors.empty?
end
validate!() click to toggle source
# File lib/nexus_cli/configuration.rb, line 64
def validate!
  self.class.validate!(self)
end