user271586
user271586

Reputation:

Why doesn't each_slice work?

I am trying to use the Enumerable#each_slice. It doesn't work on my computer, stating that method is not found.

I am running ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0]

API: http://ruby-doc.org/core/classes/Enumerable.html#M003142

Example:

(1..10).each_slice(3) {|a| p a} # I get NoMethodError: undefined method `each_slice' for 1..10:Range

What am I doing wrong?

Upvotes: 1

Views: 2594

Answers (2)

sepp2k
sepp2k

Reputation: 370112

In ruby 1.8.6 you have to require 'enumerator' (which is part of stdlib and has been merged into core in 1.8.7+) before using each_slice.

Sadly the ruby-doc lists methods that are added to core classes by stdlib without mentioning where the methods are from.

Upvotes: 7

Pete
Pete

Reputation: 18075

just compared 1.8.6 to 1.9 and it looks like

(1..10).respond_to? :each_slice

is true in 1.9 and false in 1.8.6. So, the doc you are using is not for 1.8.6. if you can upgrade to a newer version of Ruby easily it should give you that method on the Range.

Upvotes: 1

Related Questions