" | Compare:\n\n | ```ruby\n | def generate_1(document, options = {})\n | format = options.delete(:format)\n | limit = options.delete(:limit) || 20\n | # ...\n | [format, limit, options]\n | end\n\n | options = { format: 'csv', limit: 5, useless_arg: :value }\n | generate_1(1, options) #=> [\"csv\", 5, {:useless_arg=>:value}]\n | generate_1(1, format: 'csv', limit: 5, useless_arg: :value) #=> [\"csv\", 5, {:useless_arg=>:value}]\n\n | # vs\n\n | def generate_2(document, format:, limit: 20, **options)\n | # ...\n | [format, limit, options]\n | end\n\n | options = { format: 'csv', limit: 5, useless_arg: :value }\n | generate_2(1, **options) #=> [\"csv\", 5, {:useless_arg=>:value}]\n | generate_2(1, format: 'csv', limit: 5, useless_arg: :value) #=> [\"csv\", 5, {:useless_arg=>:value}]\n | ```\n\n".gsub(/^ +\|\s/, '').strip