Class: UpdateRepo::CmdConfig
- Inherits:
-
Object
- Object
- UpdateRepo::CmdConfig
- Includes:
- Helpers
- Defined in:
- lib/update_repo/cmd_config.rb
Overview
This class takes care of reading and parsing the command line and conf file
Constant Summary collapse
- CONFIG_PATH =
This constant holds the path to the config file, default to home dir.
'~/'.freeze
- CONFIG_FILE =
This constant holds the filename of the config file.
'.updaterepo'.freeze
Instance Method Summary collapse
-
#[](key) ⇒ various
return the specified TRUE configuration variable, using ‘[]’ notation.
-
#check_params ⇒ void
rubocop:disable Metrics/LineLength make sure the parameter combinations are valid, terminating otherwise.
-
#getconfig ⇒ Class
return the configuration hash variable.
-
#initialize ⇒ CmdConfig
constructor
A new instance of CmdConfig.
-
#true_cmd(command) ⇒ various
This will return the ‘true’ version of a command, taking into account both command line (given preference) and the configuration file.
Methods included from Helpers
Constructor Details
#initialize ⇒ CmdConfig
Returns a new instance of CmdConfig.
20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/update_repo/cmd_config.rb', line 20 def initialize # read the options from Trollop and store in temp variable. # we do it this way around otherwise if configuration file is missing it # gives the error messages even on '--help' and '--version' temp_opt = @conf = Confoog::Settings.new(filename: CONFIG_FILE, location: CONFIG_PATH, prefix: 'update_repo', autoload: true, autosave: false) config_error unless @conf.status[:errors] == Status::INFO_FILE_LOADED @conf['cmd'] = temp_opt check_params end |
Instance Method Details
#[](key) ⇒ various
return the specified TRUE configuration variable, using ‘[]’ notation
48 49 50 |
# File 'lib/update_repo/cmd_config.rb', line 48 def [](key) true_cmd(key.to_sym) end |
#check_params ⇒ void
This method returns an undefined value.
rubocop:disable Metrics/LineLength make sure the parameter combinations are valid, terminating otherwise.
77 78 79 80 81 |
# File 'lib/update_repo/cmd_config.rb', line 77 def check_params return unless true_cmd(:dump) Trollop.die 'You cannot use --dump AND --import'.red if true_cmd(:import) Trollop.die 'You cannot use --dump AND --dump-remote'.red if true_cmd(:dump_remote) end |
#getconfig ⇒ Class
return the configuration hash variable
39 40 41 |
# File 'lib/update_repo/cmd_config.rb', line 39 def getconfig @conf end |
#true_cmd(command) ⇒ various
This will return the ‘true’ version of a command, taking into account both command line (given preference) and the configuration file. ignore the :reek:NilCheck for this function
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/update_repo/cmd_config.rb', line 57 def true_cmd(command) cmd_given = @conf['cmd'][(command.to_s + '_given').to_sym] cmd_line = @conf['cmd'][command.to_sym] if cmd_given # if we specify something on the cmd line, that takes precedence cmd_line elsif !@conf[command.to_s].nil? # if we have a value in the config file we use that. @conf[command.to_s] else # this will catch any 'default' values in the cmd setup. cmd_line end end |