Трудно представить подробное решение, не зная, что на самом деле содержит файл CSS.Исходя из вашего кода выше, я бы попробовал что-то вроде этого:
#write some HTML before the CSS (works)
...
#write the external CSS (doesn't work, output finished prematurely)
out_file.puts(ext_css_file.read())
...
#write some HTML after the CSS (works)
Я не думаю, что вам нужна проверка .eof
, потому что метод read
читает и возвращает все содержимое файла, илипустая строка или ноль, если в конце файла.Смотрите здесь: http://apidock.com/ruby/IO/read
Я бы хотел читать и записывать данные одного типа.Например, если бы я записывал данные в новый файл, используя puts
, я бы считывал данные, используя readlines
.Если бы я писал двоичные данные, используя write
, я бы прочитал данные, используя read
.Я согласился бы либо со строками, либо с байтами и не смешивал бы их.
Попробуйте что-то вроде этого ...
File.open('writable_file_path', 'w') do |f|
# f.puts "some html"
f.puts IO.readlines('css_file_path')
# f.puts "some more html"
end