Ruby streaming file line reader

Ruby
def each_file_line(path, encoding: 'UTF-8')
  raise ArgumentError, 'path is required' if path.to_s.empty?
  count = 0
  File.foreach(path, chomp: true, encoding: encoding) do |line|
    count += 1
    yield line, count
  end
  count
rescue Errno::ENOENT
  raise ArgumentError, %Q(file not found: #{path})
rescue Errno::EACCES
  raise ArgumentError, %Q(cannot read: #{path})
end