Sha256: e100b8c7a21eb8ed481a77241b5b5605e8a9b1ece31726a2540dabbc9959dedd

Contents?: true

Size: 677 Bytes

Versions: 4

Compression:

Stored size: 677 Bytes

Contents

module Hem
  module Helper
    def convert_args task_name, args, arg_list
      original_args = args.dup
      task_args = []
      arg_list.each do |_, options|
        if args.empty?
          if !options[:optional]
            raise ::Hem::MissingArgumentsError.new(task_name, original_args)
          else
            task_args << options[:default]
          end
        elsif options[:as] == Array
          task_args << args.dup
          args.clear
        else
          task_args << args.shift
        end
      end

      unless args.empty?
        raise ::Hem::InvalidCommandOrOpt.new(args.join(' '))
      end

      task_args
    end
  end
end

include Hem::Helper

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
hem-1.2.0 lib/hem/helper/argument_parser.rb
hem-1.1.2 lib/hem/helper/argument_parser.rb
hem-1.1.1 lib/hem/helper/argument_parser.rb
hem-1.1.0 lib/hem/helper/argument_parser.rb