Potrebujem načítať údaje z databázy a potom ich uložiť do textového súboru.
Ako to môžem urobiť v jazyku Ruby? Existuje v Ruby nejaký systém na správu súborov?
Tento prístup sa uprednostňuje vo väčšine prípadov:
File.open(yourfile, 'w') { |file| file.write("your text") }
Keď je blok odovzdaný príkazu File.open
, objekt File sa automaticky uzavrie, keď sa blok ukončí.
Ak bloku File.open
nepredáte blok, musíte sa uistiť, že súbor je správne uzavretý a obsah bol do súboru zapísaný.
begin
file = File.open("/tmp/some_file", "w")
file.write("your text")
rescue IOError => e
#some error occur, dir not writable etc.
ensure
file.close unless file.nil?
end
Nájdete to v dokumentácii:
static VALUE rb_io_s_open(int argc, VALUE *argv, VALUE klass)
{
VALUE io = rb_class_new_instance(argc, argv, klass);
if (rb_block_given_p()) {
return rb_ensure(rb_yield, io, io_close, io);
}
return io;
}
Ruby File class vám poskytne informácie o ::new
a ::open
, ale jej nadradená trieda IO class sa zaoberá hĺbkou #read
a #write
.