2010-03-21 5 views
0

Je suis un peu perdu ici pour savoir pourquoi ma tâche rake ne créera pas le fichier XML désiré, mais cela fonctionne très bien quand j'ai la méthode build_xml dans un fichier .rb.rake ne crée pas de fichier XML

require 'rubygems' 
require 'nokogiri' 
require 'open-uri' 

namespace :xml do 
    desc "xml build test" 
    task :xml_build => :environment do 
    build_xml 
    end 
end 

def build_xml 
    # build xml docoument 
    builder = Nokogiri::XML::Builder.new do |xml| 
    xml.root { 
     xml.location { 
     xml.value "test" 
     } 
    } 
    end 
    File.open("test.xml", 'w') {|f| f.write(builder.to_xml) } 
end 
+1

Que voulez-vous dire "wont"? Quelle est l'erreur ou le résultat auquel vous ne vous attendez pas? – rfunduk

+0

le script semble bien fonctionner, le xml est affiché sur l'écran et trace ne montre aucune erreur. Cependant, le fichier test.xml n'est pas créé selon File.open ("test.xml", "w") {| f | f.write (builder.to_xml)} – user296507

Répondre

1

Lorsque j'exécute votre rakefile avec rake xml:xml_build, je reçois une erreur qui ne se définit pas la tâche environment. Si je supprime environment en tant que dépendance de xml_build, puis exécutez à nouveau cela fonctionne correctement et crée le fichier xml. Donc, je suppose que votre tâche d'environnement provoque une erreur et que xml_build ne fonctionne jamais (ou que la tâche n'existe pas dans votre vrai rakefile, donc supprimez-la en tant que dépendance).

+1

En effet, il a probablement copié ce code Rakefile à partir d'un projet rails (où 'environment' serait défini pour vous) mais ne l'exécute pas dans un seul maintenant. – rfunduk

+0

Aussi, pas un gros problème mais 'open-uri' n'est pas nécessaire pour ce script :) – rfunduk

+0

J'ai supprimé la dépendance à l'environnement, le script de sortie xml à l'écran ok mais le test.xml n'est toujours pas créé. – user296507

Questions connexes