class Bake::Arguments
def extract(arguments)
def extract(arguments) while argument = arguments.first if /^--(?<name>.*)$/ =~ argument # Consume the argument: arguments.shift if name.empty? break end name = normalize(name) # Extract the trailing arguments: @options[name] = extract_arguments(name, arguments) elsif /^(?<name>.*?)=(?<value>.*)$/ =~ argument # Consume the argument: arguments.shift name = name.to_sym # Extract the single argument: @options[name] = extract_argument(name, value) elsif @ordered.size < @arity _, name = @parameters.shift value = arguments.shift # Consume it: @ordered << extract_argument(name, value) else break end end return @ordered, @options end