views:

59

answers:

4

I'm Learning Ruby.

I found the method String#each at http://ruby-doc.org/core/classes/String.html.

When I try using it...

irb(main):001:0> "hello\nworld".each {|s| p s}
NoMethodError: undefined method `each' for "hello\nworld":String

...but I get that NoMethodError.

I'm using Ruby 1.9.1p253 so I don't think I'm using an old version. What's going on?

A: 

Works in 1.8.7, doesn't show up in the 1.9 docs -- must have been deprecated.

Here we go: http://eigenclass.org/hiki.rb?Changes+in+Ruby+1.9#l113

Ben
+1  A: 

Use each_char instead:

"hello\nworld".each_char {|s| p s}

as to why it's not working, it works in 1.8 but not 1.9.

Peter
`String#each` iterated by line, not char.
sepp2k
+9  A: 

Ruby 1.9 no longer has each on the String class. Use either each_char or each_line depending on what you want to do. The docs for Ruby 1.9 String are http://ruby-doc.org/ruby-1.9/classes/String.html

ScottD
+1  A: 

You're looking at the docs for 1.8. String#each has been removed in 1.9. Use each_line instead.

sepp2k