Module: MaxAmount::Options

Included in:
Cli
Defined in:
lib/max_amount/options.rb

Class Method Summary collapse

Class Method Details

.askObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/max_amount/options.rb', line 5

def self.ask
  # Все наши опции будут записаны сюда
  options = {}

  # Заведем опции
  OptionParser.new do |opt|
    # Этот текст будет выводиться, когда программа запущена с опцией -h
    opt.banner = 'Чтение из входящего потока текстовых данных:'

    # Вывод в случае, если запросили help
    opt.on('--h', 'Справка') do
      puts opt
      exit
    end

    # Опция --n будет передавать n самых больших целых чисел, встречающихся
    # в текстовых данных
    opt.on('--n Nmax', 'n самых больших целых чисел ' \
                       '(n > 0)') { |o| options[:n] = o }

    # Опция --l передает, какую мы хотим задать длину строки
    opt.on('--l length', 'длина строки ') { |o| options[:l] = o }

    # Опция --m передает то, хотим ли мы выбрать тестовую строку - [1]
    # или случайно сгенерированную - [2]
    lines = 'тестовая строка (m=1) / случайно сгенерированная строка (m=2) / пользовательская строка (m=3)'
    opt.on('--m choice', lines) { |o| options[:m] = o }
  end.parse!

  options
end