Issue #9762 has been updated by Matthew Kerwin. felix chang wrote: > I dont know this is an issue or not. Here is my code. > > [...] > > It will not work, but if i change the code to the following: > > `def sliding(window, circle = false)` > > And it works! How will it "not work"? Are you calling it properly? I'd change the first line of #sliding to: ~~~ return to_enum(__method__, window, {circle: circle}) unless block_given? ~~~ and fix all the other calls, from e.g. `sliding 5, true` to `sliding 5, circle: true` Does that solve your issue? ---------------------------------------- Bug #9762: keywork argument do not work in some situation https://bugs.ruby-lang.org/issues/9762#change-46268 * Author: felix chang * Status: Open * Priority: Normal * Assignee: * Category: * Target version: * ruby -v: ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- I dont know this is an issue or not. Here is my code. ` class String def last(size) self[-size..-1] end # The behavior of slideing is similar to Array#each_cons # It's very use for most biological sequence analysis, # for example, calculating the k-mer frequency # # For example: # 'abcdefghij'.sliding(2).to_a # => ['ab', 'bc', 'cd', 'de', 'ef', 'fg', 'gh', 'hi', 'ij'] def sliding(window, circle: false) return to_enum(__method__, window, circle) unless block_given? seq = circle ? self + last(window) : self (seq.size - window + 1).times do |i| yield seq.slice(i, window) end end end ` It will not work, but if i change the code to the following: `def sliding(window, circle = false)` And it works! -- https://bugs.ruby-lang.org/