Forum: Ruby-core [Open] keywork argument do not work in some situation

0cfa94f7ac6e9108db2c3e3438f05364?d=identicon&s=25 felix chang (felix125)
on 2014-04-20 06:00
(Received via mailing list)
Issue #9762 has been reported by felix chang.

----------------------------------------
Bug #9762: keywork argument do not work in some situation
https://bugs.ruby-lang.org/issues/9762

* 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!
This topic is locked and can not be replied to.