Sha256: 44015532d8998dedc9c8e5ae5eef544493cfe3a70cab69d26466444e1583b056
Contents?: true
Size: 1.92 KB
Versions: 3
Compression:
Stored size: 1.92 KB
Contents
require 'extlib' require 'chozo' module NexusCli class Configuration DEFAULT_FILE = (ENV['HOME'] ? "~/.nexus_cli" : "/root/.nexus_cli").freeze class << self # The filepath to the nexus cli configuration file # # @return [String] def file_path File.expand_path(ENV['NEXUS_CONFIG'] || File.expand_path(DEFAULT_FILE)) end # Creates a new instance of the Configuration object based on some overrides # # @param [Hash] overrides # # @return [NexusCli::Configuration] def from_overrides(overrides) raise MissingSettingsFileException unless overrides overrides = overrides.with_indifferent_access new(overrides) end # Creates a new instance of the Configuration object from the config file # # # @return [NexusCli::Configuration] def from_file config = YAML.load_file(file_path) raise MissingSettingsFileException unless config config = config.with_indifferent_access new(config) end # Validates an instance of the Configuration object and raises when there # is an error with it # # @param config [NexusCli::Configuration] # # @raise [NexusCli::InvalidSettingsException] def validate!(config) unless config.valid? raise InvalidSettingsException.new(config.errors) end end end def validate! self.class.validate!(self) end include Chozo::VariaModel attribute :url, type: String, required: true attribute :repository, type: String, required: true, coerce: lambda { |m| m = m.is_a?(String) ? m.gsub(' ', '_').downcase : m } attribute :username, type: String attribute :password, type: String def initialize(options) mass_assign(options) self.repository = options[:repository] end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
nexus_cli-4.0.2 | lib/nexus_cli/configuration.rb |
nexus_cli-4.0.1 | lib/nexus_cli/configuration.rb |
nexus_cli-4.0.0 | lib/nexus_cli/configuration.rb |