Проверьте наличие аргумента командной строки в коде Ruby - PullRequest
0 голосов
/ 24 августа 2018

Я хочу выполнить код Ruby, если присутствует аргумент командной строки:

ruby sanity_checks.rb --trx-request -e staging_psp -g all

код рубина:

def execute
    command_options = CommandOptionsProcessor.parse_command_options
    request_type    = command_options[:env]
    tested_env      = command_options[:trx-request]   // check here if flag is present
    tested_gateways = gateway_names(env: tested_env, gateway_list: command_options[:gateways])
    error_logs      = []

   if(request_type.nil?)
    tested_gateways.each do |gateway|
      ........
    end
   end

    raise error_logs.join("\n") if error_logs.any?
  end

Как я могу получить аргумент --trx-request и проверить, присутствует ли он?

EDIT:

Анализатор команд:

class CommandOptionsProcessor

  def self.parse_command_options
    command_options = {}
    opt_parser = OptionParser.new do |opt|
      opt.banner = 'Usage: ruby sanity_checks.rb [OPTIONS]'
      opt.separator  "Options:"

      opt.on('-e TEST_ENV', '--env TEST_ENV','Set tested environment (underscored).') do |setting|
        command_options[:env] = setting
      end

      opt.on('-g X,Y,Z', '--gateways X,Y,Z', Array, 'Set tested gateways (comma separated, no spaces).') do |setting|
        command_options[:gateways] = setting
      end
    end

    opt_parser.parse!(ARGV)

    command_options
  end
end

Можете ли вы дать совет?

1 Ответ

0 голосов
/ 24 августа 2018

Вам нужно будет добавить параметр логического переключателя к вашему OptionParser, например, так:

opt.on('-t','--[no-]trx-request','Signifies a TRX Request') do |v|
  # note we used an underscore rather than a hyphen to make this symbol 
  # easier to access
  command_options[:trx_request] = v 
end

Тогда в вашем методе execute вы можете получить доступ к этому как

command_options[:trx_request]

Есливам нужно иметь значение по умолчанию, которое вы можете добавить в метод parse_command_options, установив его вне OptionParser как command_options[:trx_request] = false

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...