Criando um arquivo no Rails

Quando precisamos criar um arquivo através da nossa aplicação em Rails, geralmente para exportar um conjunto de dados, podemos utilizar a classe File do ruby. E isso é extremamente simples!

Para criar um novo arquivo:

meuArquivo = File.new("nomedoarquivo.txt", "w")

Ao criar uma instência de File, podemos passar os seguintes parâmetros:

- nome do arquivo
- modo (por padrão, somente leitura)
- permissões do arquivo

No nome do arquivo podemos indicar também o caminho completo de onde o arquivo deve ficar. Da forma como foi feito no exemplo anterior, o arquivo ficará na raiz da nossa aplicação Rails (mesmo diretório onde ficam os diretórios app, config, etc …). Se você quiser disponibilizar o arquivo para download, pode informar nesse primeiro parâmetro um caminho dentro da pasta public, por exemplo: “public/arquivos/seuarquivo.csv”. Note que, se você usar o modo “w” (escrita), o Ruby cria o arquivo, mas o diretório tem que existir previamente.

No segundo parâmetro (modo), definimos como o arquivo será aberto: somente leitura, leitura e gravação, somente gravação a partir do início ou do final do arquivo, entre outras. A tabela a seguir resume as opções disponíveis.

Modo Descrição
“r” Somente leitura, iniciando do começo do arquivo (padrão)
“r+” Igual a “r”
“w” Somente escrita. Apaga tudo o que estiver no arquivo, ou cria um novo arquivo disponível somente para escrita caso ele não exista.
“w+” Leitura e escrita. Apaga tudo o que estiver no arquivo, ou cria um novo arquivo disponível para leitura e escrita caso ele não exista
“a” Somente escrita. A diferença entre “w” e esta opção é que “a” começa a escrever a partir do final do arquivo. Cria um novo arquivo para escrita caso ele não exista
“a+” Leitura e escrita. A diferença entre “w+” e esta opção é que “a+” começa a escrever a partir do final do arquivo. Cria um novo arquivo para escrita e leitura caso ele não exista
“b” (Disponível somente para Windows/DOS) Modo binário. Pode ser combinado com qualquer opção listada anteriormente.

O terceiro parâmetro – permissões – você pode informar qual a permissão do arquivo a ser criado. Tanto esse parâmetro quanto o modo de abertura/criação do arquivo são dependentes de plataforma, isto é, em ambiente Unix, a permissão pode ser informada como “0644″, por exemplo.

Bom, agora vamos escrever alguma coisa no nosso arquivo:

meuArquivo = File.new("nomedoarquivo.txt", "w")
meuArquivo.puts "Hello, Universe!"
meuArquivo.close

Caso você queira criar um arquivo XML, pode fazer o seguinte também:

meuArquivo = File.new("public/arquivos/arquivo.xml", "w")
meuArquivo.puts User.find(:first).to_xml
meuArquivo.close

Dessa forma, você terá o primeiro registro da tabela Users em um arquivo XML, dentro do diretório arquivos

Para mais informações e outros métodos veja a documentação da classe File. Para detalhes sobre os modos de abertura do arquivo, veja a documentação da classe IO.


Poderia avaliar este artigo, por favor?

1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (Nenhum voto)
Loading ... Loading ...

Posts relacionados