web-dev-qa-db-fra.com

File.open, écrire et enregistrer?

J'essaie d'obtenir un fichier .rb pour créer un autre fichier .rb dans un répertoire spécifique avec un contenu spécifié, lorsque ce fichier est exécuté. Je ne sais pas si la meilleure façon de le faire serait avec un fichier Ruby ou un fichier Rake. Votre entrée serait formidable.

34
CharlesJHardy

Cela s'est avéré être la meilleure solution.

File.open("linecount.txt",'w') do |filea|
  File.open("testfile.txt",'r') do |fileb|
    while line = fileb.gets
      filea.puts line.length
    end
  end
end
17
CharlesJHardy

Si vous avez juste besoin d'exécuter un script simple comme la création d'un fichier, vous pouvez simplement utiliser un script Ruby sans créer de tâche de râteau).

# file Origin.rb
target  = "target.rb"
content = <<-Ruby
  puts "I'm the target!"
Ruby

File.open(target, "w+") do |f|
  f.write(content)
end

Et vous pouvez exécuter le fichier avec

$ Ruby Origin.rb
44
Simone Carletti
directory = "../../directory"
File.open(File.join(directory, 'file.rb'), 'w') do |f|
  f.puts "contents"
end
23
Dogbert