Ну, это потому, что блок не указан. Вы можете либо заменить yield buffer
на puts buffer
(или любую другую операцию, которую хотите), либо создать отдельный метод с использованием блока кода:
def read_file
File.open('textfile.txt') do |file|
while (buffer = file.read(size)) do
yield buffer
end
end
end
и назовите это так
read_file do |data|
// do something with data
puts data
end
Добавьте обычные параметры (например, имя файла или размер блока) к read_file
, если необходимо.