Class: Rbeapi::Client::Config
- Inherits:
-
IniFile
- Object
- IniFile
- Rbeapi::Client::Config
- Defined in:
- lib/rbeapi/client.rb
Overview
The Config class holds the loaded configuration file data. It is a subclass of IniFile.
Constant Summary collapse
- CONFIG_SEARCH_PATH =
['/mnt/flash/eapi.conf']
Instance Method Summary collapse
-
#add_connection(name, values) ⇒ Object
Adds a new connection section to the current configuration.
-
#get_connection(name) ⇒ nil, Hash<String, String> Returns a hash of the connection properties from the loaded config. This method will return nil if the connection name is not found.
Returns the configuration for the connection specified.
-
#initialize(opts = {}) ⇒ Config
constructor
The Config class will automatically search for a filename to load (if none provided) and load the data when the object is instantiated.
-
#read(filename) ⇒ Object
This method will read the specified filename and load its contents into the instance.
-
#reload(opts = {}) ⇒ Object
This method will cause the config to be loaded.
Constructor Details
#initialize(opts = {}) ⇒ Config
The Config class will automatically search for a filename to load (if none provided) and load the data when the object is instantiated.
168 169 170 171 172 |
# File 'lib/rbeapi/client.rb', line 168 def initialize(opts = {}) super(parameter: ':') @filename = opts.fetch(:filename, nil) autoload end |
Instance Method Details
#add_connection(name, values) ⇒ Object
Adds a new connection section to the current configuration
260 261 262 |
# File 'lib/rbeapi/client.rb', line 260 def add_connection(name, values) self["connection:#{name}"] = values end |
#get_connection(name) ⇒ nil, Hash<String, String> Returns a hash of the connection properties from the loaded config. This method will return nil if the connection name is not found.
Returns the configuration for the connection specified. If a connection is not found matching the name and if a default connection has been specified then return the default connection.
247 248 249 250 251 252 |
# File 'lib/rbeapi/client.rb', line 247 def get_connection(name) return self["connection:#{name}"] \ if sections.include? "connection:#{name}" return self['connection:*'] if sections.include? 'connection:*' nil end |
#read(filename) ⇒ Object
This method will read the specified filename and load its contents into the instance. It will also add the default localhost entry if it doesn’t exist in the conf file
207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 |
# File 'lib/rbeapi/client.rb', line 207 def read(filename) super(filename: filename) # For each section, if the host parameter is omitted then the # connection name is used sections.each do |name| if name.start_with?('connection:') conn = self["#{name}"] conn['host'] = name.split(':')[1] unless conn['host'] end end return if get_connection 'localhost' add_connection('localhost', transport: 'socket') end |
#reload(opts = {}) ⇒ Object
This method will cause the config to be loaded. The process of finding the configuration will be repeated so it is possible a different conf file could be chosen if the original file was removed or a new file added higher on the search priority list
231 232 233 |
# File 'lib/rbeapi/client.rb', line 231 def reload(opts = {}) autoload opts end |