Class: NexusCli::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/nexus_cli/configuration.rb

Constant Summary collapse

DEFAULT_FILE =
(ENV['HOME'] ? "~/.nexus_cli" : "/root/.nexus_cli").freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Configuration

Returns a new instance of Configuration.



86
87
88
89
90
91
92
93
94
95
# File 'lib/nexus_cli/configuration.rb', line 86

def initialize(options)
  @url = options[:url]
  @repository = options[:repository]
  @username = options[:username]
  @password = options[:password]

  if @repository.is_a?(String)
    @repository = @repository.gsub(' ', '_')
  end
end

Instance Attribute Details

#passwordObject

Returns the value of attribute password.



84
85
86
# File 'lib/nexus_cli/configuration.rb', line 84

def password
  @password
end

#repositoryObject

Returns the value of attribute repository.



82
83
84
# File 'lib/nexus_cli/configuration.rb', line 82

def repository
  @repository
end

#urlObject

Returns the value of attribute url.



81
82
83
# File 'lib/nexus_cli/configuration.rb', line 81

def url
  @url
end

#usernameObject

Returns the value of attribute username.



83
84
85
# File 'lib/nexus_cli/configuration.rb', line 83

def username
  @username
end

Class Method Details

.file_pathString

The filepath to the nexus cli configuration file

Returns:

  • (String)


11
12
13
# File 'lib/nexus_cli/configuration.rb', line 11

def file_path
  File.expand_path(ENV['NEXUS_CONFIG'] || File.expand_path(DEFAULT_FILE))
end

.from_fileNexusCli::Configuration

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



33
34
35
36
37
38
# File 'lib/nexus_cli/configuration.rb', line 33

def from_file
  config = load_config
  raise MissingSettingsFileException unless config
  config = config.with_indifferent_access
  new(config)
end

.from_overrides(overrides) ⇒ NexusCli::Configuration

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

Parameters:

  • overrides (Hash)

Returns:

Raises:



20
21
22
23
24
25
26
27
# File 'lib/nexus_cli/configuration.rb', line 20

def from_overrides(overrides)
  raise MissingSettingsFileException unless overrides
  overrides = overrides.with_indifferent_access

  configuration = (load_config || Hash.new).with_indifferent_access
  configuration.merge!(overrides)
  new(configuration)
end

.validate!(config) ⇒ Object

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



46
47
48
49
50
# File 'lib/nexus_cli/configuration.rb', line 46

def validate!(config)
  unless config.valid?
    raise InvalidSettingsException.new(config.errors)
  end
end

Instance Method Details

#[](attr) ⇒ Object



97
98
99
# File 'lib/nexus_cli/configuration.rb', line 97

def [](attr)
  self.instance_variable_get('@' + attr.to_s)
end

#errorsObject



74
75
76
77
78
79
# File 'lib/nexus_cli/configuration.rb', line 74

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?Boolean

Returns:

  • (Boolean)


70
71
72
# File 'lib/nexus_cli/configuration.rb', line 70

def valid?
  errors.empty?
end

#validate!Object



66
67
68
# File 'lib/nexus_cli/configuration.rb', line 66

def validate!
  self.class.validate!(self)
end