Трета задача

  1. @Марио благодаря

    
    parser = CommandParser.new('rspec')
    parser.argument('SPEC FILE') { |_, _| }
    parser.option('v', 'verbose', 'Verbose mode') { |_, _| }
    parser.option_with_parameter('r', 'require', 'require FILE in spec', 'FILE') { |_, _| }
    parser.argument('SOMETHING ELSE') { |_, _| }
    parser.option_with_parameter('e', 'eins', 'zwei', 'polizei') { |_, _| }
    

    parser.help #=> a това?

  2. parser = CommandParser.new('rspec')

    parser.option('v', 'version', 'show version number') do |runner, value| runner[:version] = value end

    command_runner = {} parser.parse(command_runner, ['--random_option'])

    command_runner #=>

    Здравейте, тук трябва ли да се изпълни блока на option, при положение че в argv няма такава опция (т.е. името на опцията не съвпада). Не ми е много ясно дали трябва да проверяваме дали името (т.е. 'v'/'version') се съдържа в argv?

  3. @Цветан, определено да.

    То това е смисълът на опциите - ако имаш опция с това име (било то кратката или дългата версия) я сетваш на true (отбелязваш, че опцията е избрана).

    Щом нямаш опция с подаденото име - не правиш нищо..

  4. @Кузман В последния тест за парсер подаваш два позиционни аргумента, а се опитваш да парсваш три. От условието: "Забележка: За по-просто, няма да тестваме с различен брой позиционни аргументи в argv от броя на дефинираните в нашия парсер. "

  5. @Кузман, в теста "returns a properly formatted mess of arguments/options/parameters v2" подаваш 'SOMETHING ELSE' като един аргумент. Не съм сигурен дали това е валидно, все пак аргументите принципно се отделят именно със whitespace и не мисля, че може да имаш такъв в стойността на един аргумент. Ако може някой от лекторите да се произнесе по въпроса.

  6. @Марио, да, това го видях. Въпроса ми е дали е валидно да се подаде "SECOND ARGUMENT" като стойност на един аргумент. Пример:

    parser.parse(command_runner, ['FIRST', 'SECOND ARGUMENT'])
    

    Защото в нормален конзолен UI, това 'SECOND ARGUMENT' би се възприело като 2 отделни аргумента.

  7. @Михаил не съм ти разбрал въпроса явно. На практика това в argv ще стои като 2 отделни аргумента, но за целите на задачата е без значение. Това е валиден пример за нашата задача - няма нужда да разделяте аргументите ако имат whitespace в тях.

Трябва да сте влезли в системата, за да може да отговаряте на теми.