Skip to content

Commit

Permalink
--wip-- [skip ci]
Browse files Browse the repository at this point in the history
  • Loading branch information
floriandejonckheere committed Mar 25, 2024
1 parent 43d6ff7 commit 27631ba
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 4 deletions.
8 changes: 6 additions & 2 deletions lib/polyphony/extensions/io.rb
Expand Up @@ -60,9 +60,13 @@ def read(name, length = nil, offset = nil, opt = EMPTY_HASH)
end

alias_method :orig_readlines, :readlines
def readlines(name, sep = $/, limit = nil, getline_args = EMPTY_HASH, chomp: false)
def readlines(name, sep = $/, limit = nil, **getline_args)
if sep.is_a?(Integer)
sep = $/
limit = sep
end
File.open(name, 'r') do |f|
f.readlines(sep, limit, chomp: chomp, **getline_args)
f.readlines(sep, limit, **getline_args)
end
end

Expand Down
14 changes: 12 additions & 2 deletions test/test_io.rb
Expand Up @@ -709,24 +709,34 @@ def test_read_class_method
end

def test_readlines
# No arguments
lines = IO.readlines(__FILE__)
assert_equal "# frozen_string_literal: true\n", lines[0]
assert_equal "end\n", lines[-1]

lines = IO.readlines(__FILE__, chomp: true)
assert_equal "# frozen_string_literal: true", lines[0]

# Separator as argument
lines = IO.readlines(__FILE__, ":")
assert_equal "# frozen_string_literal:", lines[0]

lines = IO.readlines(__FILE__, ":", chomp: true)
assert_equal "# frozen_string_literal", lines[0]

lines = IO.readlines(__FILE__, $/, 30)
# Limit as argument
lines = IO.readlines(__FILE__, 30)
assert_equal "# frozen_string_literal: true\n", lines[0]

lines = IO.readlines(__FILE__, $/, 30, chomp: true)
lines = IO.readlines(__FILE__, 30, chomp: true)
assert_equal "# frozen_string_literal: true", lines[0]

# Separator and limit as argument
lines = IO.readlines(__FILE__, ":", 23)
assert_equal "# frozen_string_literal:", lines[0]

lines = IO.readlines(__FILE__, ":", 23, chomp: true)
assert_equal "# frozen_string_literal", lines[0]
end

WRITE_DATA = "foo\nbar קוקו"
Expand Down

0 comments on commit 27631ba

Please sign in to comment.