instance method
String#each_line
(?::string? separator, ?chomp: ::boolish) -> ::Enumerator[::String, self]
(?::string? separator, ?chomp: ::boolish) { (::String line) -> void } -> self
each_line(record_separator = $/, chomp: false) {|substring| ... } → self
each_line(record_separator = $/, chomp: false) → enumerator
string.c
View on GitHub ↗
static VALUE
rb_str_each_line(int argc, VALUE *argv, VALUE str)
{
RETURN_SIZED_ENUMERATOR(str, argc, argv, 0);
return rb_str_enumerate_lines(argc, argv, str, 0);
}
With a block given, forms the substrings (lines) that are the result of splitting self at each occurrence of the given record_separator; passes each line to the block; returns self.
With the default record_separator:
Example
$/ # => "\n" s = <<~EOT This is the first line. This is line two. This is line four. This is line five. EOT s.each_line {|line| p line }
Output:
Example
"This is the first line.\n" "This is line two.\n" "\n" "This is line four.\n" "This is line five.\n"
With a different record_separator:
Example
record_separator = ' is ' s.each_line(record_separator) {|line| p line }
Output:
Example
"This is " "the first line.\nThis is " "line two.\n\nThis is " "line four.\nThis is " "line five.\n"
With chomp as true, removes the trailing record_separator from each line:
Example
s.each_line(chomp: true) {|line| p line }
Output:
Example
"This is the first line." "This is line two." "" "This is line four." "This is line five."
With an empty string as record_separator, forms and passes “paragraphs” by splitting at each occurrence of two or more newlines:
Example
record_separator = '' s.each_line(record_separator) {|line| p line }
Output:
Example
"This is the first line.\nThis is line two.\n\n" "This is line four.\nThis is line five.\n"
With no block given, returns an enumerator.
Related: see Iterating.
Ruby version changes
-
3.0
-
The following methods now return or yield
Stringinstances instead of subclass instances when called on subclass instances: [Bug #10845]
-
See also
#each_grapheme_cluster
#empty?
#each_codepoint
#encode
also in
4.1 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0