module GHtml2Pdf
  # Parses the command line arguments
  class ArgumentParser
    attr_reader :input, :output

    def initialize(argv)
      @input, @output, = argv
      unless @input
        warn 'An input filename is required'
        exit 1
      end
      unless @output
        warn 'An output filename is required'
        exit 1
      end
    end
  end
end

module GHtml2Pdf
  # Parses the command line arguments
  class ArgumentParser
    attr_reader :input, :output

    # Error class raised for missing arguments
    class MissingArgument < StandardError; end

    def initialize(argv)
      @input, @output, = argv
      unless @input
        raise MissingArgument, 'An input filename is required'
      end
      unless @output
        raise MissingArgument, 'An output filename is required'
      end
    end
  end
end

Raise exception instead of exiting in ArgumentParser
Raise exception instead of exiting in ArgumentParser
