Ik moet de gegevens uit de database lezen en dan opslaan in een tekstbestand.
Hoe kan ik dat doen in Ruby? Is er een bestand management systeem in Ruby?
Dit is in de meeste gevallen de voorkeursaanpak:
File.open(yourfile, 'w') { |file| file.write("your text") }
Wanneer een blok wordt doorgegeven aan File.open
, zal het File object automatisch worden gesloten wanneer het blok eindigt.
Als je geen blok doorgeeft aan File.open
, moet je ervoor zorgen dat het bestand correct wordt gesloten en dat de inhoud naar het bestand werd geschreven.
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
Je kunt het vinden in documentatie:
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;
}
De Ruby File class geeft je de ins en outs van ::new
en ::open
maar zijn ouder, de IO class, gaat dieper in op #read
en #write
.