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? |
