Project

General

Profile

Actions

Bug #9762

closed

keywork argument do not work in some situation

Added by felix125 (felix chang) about 10 years ago. Updated almost 10 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux]
[ruby-core:62108]

Description

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!

Updated by phluid61 (Matthew Kerwin) about 10 years ago

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?

Updated by felix125 (felix chang) about 10 years ago

Yes!

Thank you.

Updated by Eregon (Benoit Daloze) about 10 years ago

  • Status changed from Open to Closed

Updated by usa (Usaku NAKAMURA) almost 10 years ago

  • Status changed from Closed to Rejected
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0