Class: UpdateRepo::CmdConfig

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

Methods included from Helpers

#trunc_dir

Constructor Details

#initializeCmdConfig

Returns a new instance of CmdConfig.



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/update_repo/cmd_config.rb', line 15

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 = set_options
  @conf = Confoog::Settings.new(filename: CONFIG_FILE,
                                prefix: 'update_repo',
                                autoload: true, autosave: false)
  @conf['cmd'] = temp_opt
  check_params
  config_error unless @conf.status[:errors] == Status::INFO_FILE_LOADED
end

Instance Method Details

#check_paramsvoid

This method returns an undefined value.

rubocop:disable Metrics/LineLength make sure the parameter combinations are valid, terminating otherwise.

Parameters:

  • (none)


61
62
63
64
65
# File 'lib/update_repo/cmd_config.rb', line 61

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

#getconfigClass

return the configuration hash variable

Examples:

@config = @cmd.getconfig

Parameters:

  • (none)

Returns:

  • (Class)

    Returns the base ‘confoog’ class to the caller.



33
34
35
# File 'lib/update_repo/cmd_config.rb', line 33

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.

Parameters:

  • command (symbol)

    The symbol of the defined command

Returns:

  • (various)

    Returns the true value of the comamnd symbol



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/update_repo/cmd_config.rb', line 41

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