Skip to content

Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →

instance method

Pathname#each_line

(?::String sep, ?::Integer limit, ?mode: ::Integer | ::String, ?flags: ::Integer, ?external_encoding: ::encoding, ?internal_encoding: ::encoding, ?encoding: ::encoding, ?textmode: ::boolish, ?binmode: ::boolish, ?autoclose: ::boolish, ?chomp: ::boolish) { (::String) -> untyped } -> nil
(::Integer limit, ?mode: ::Integer | ::String, ?flags: ::Integer, ?external_encoding: ::encoding, ?internal_encoding: ::encoding, ?encoding: ::encoding, ?textmode: ::boolish, ?binmode: ::boolish, ?autoclose: ::boolish, ?chomp: ::boolish) { (::String) -> untyped } -> nil
(?::String sep, ?::Integer limit, ?mode: ::Integer | ::String, ?flags: ::Integer, ?external_encoding: ::encoding, ?internal_encoding: ::encoding, ?encoding: ::encoding, ?textmode: ::boolish, ?binmode: ::boolish, ?autoclose: ::boolish, ?chomp: ::boolish) -> ::Enumerator[::String, nil]
(::Integer limit, ?mode: ::Integer | ::String, ?flags: ::Integer, ?external_encoding: ::encoding, ?internal_encoding: ::encoding, ?encoding: ::encoding, ?textmode: ::boolish, ?binmode: ::boolish, ?autoclose: ::boolish, ?chomp: ::boolish) -> ::Enumerator[::String, nil]
each_line(sep = $/, **opts) {|line| ... } → nil
each_line(limit, **opts) {|line| ... } → nil
each_line(sep, limit, **opts) {|line| ... } → nil
each_line(...) → new_enumerator

With a block given, calls the block with each line from the file represented by self; returns nil:

Example
lines = []
Pathname('COPYING').each_line {|line| lines << line }
lines.take(3)
# =>
# ["{日本語}[rdoc-ref:COPYING.ja]\n",
#  "\n",
#  "Ruby is copyrighted free software by Yukihiro Matsumoto <[email protected]>.\n"]

The lines are read using IO.foreach, all arguments and options are passed to that method; see details at IO.foreach.

With no block given, returns a new Enumerator.

See also #each_filename #empty? #each_entry #entries also in 4.0 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0