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/