Extraction et compilation du fichier Scripts.rvdata2
Dim 25 Nov 2012 - 12:11
Comme sur mon projet perso, nous bossons à plusieurs scripteurs, il a fallu développer des solutions afin de ne pas écraser les modifications des uns et des autres. Le mieux étant de transmettre uniquement le ou les scripts modifiés et non le fichier Scripts.rvdata2. Pour cela, j'ai créé 2 scripts Ruby, l'un permettant d'extraire tous les scripts et de les copier dans un dossier Scripts, et l'autre permettant de réinjecter dans le Scripts.rvdata2, les fichiers scripts se trouvant dans le dossier Scripts.
Pour les faire fonctionner, il faut avoir l'interpreteur Ruby 1.9.3 d'installer
Extract.rb
Compil.rb
Pour les faire fonctionner, il faut avoir l'interpreteur Ruby 1.9.3 d'installer
Extract.rb
- Code:
#encoding: utf-8
require "zlib"
URL_SCRIPT = "./Data/"
def load_data(fic)
File.open(fic, "rb") { |f|
return ( Marshal.load(f))
}
end
def inflate(string)
zstream = Zlib::Inflate.new()
buf = zstream.inflate(string)
zstream.finish
zstream.close
buf
end
def deflate(string, level = Zlib::BEST_COMPRESSION)
z = Zlib::Deflate.new(level)
dst = z.deflate(string, Zlib::FINISH)
z.close
dst
end
# Si dossier n'existe pas
if Dir["Scripts"] != ["Scripts"]
# Créer le dossier
Dir.mkdir("Scripts")
end
obj_script = load_data(URL_SCRIPT + "Scripts.rvdata2")
num = 0
obj_script.each do |unScript |
num += 1
nom = unScript[1]
code = inflate(unScript[2])
if code.size > 10
nom_fic = nom + ".rb"
print "Création fichier : #{nom_fic}\n"
fic = File.new("./Scripts/" + nom_fic, "wb")
fic.write(code)
fic.close
end
end
Compil.rb
- Code:
#encoding: utf-8
require "zlib"
URL_SCRIPT = "./Data/"
#----------------------------------------------------------------------------
# save_data
#----------------------------------------------------------------------------
def save_data(data,fic)
File.open(fic, "wb") { |f|
Marshal.dump(data, f)
}
end
def load_data(fic)
File.open(fic, "rb") { |f|
return ( Marshal.load(f))
}
end
def inflate(string)
zstream = Zlib::Inflate.new()
buf = zstream.inflate(string)
zstream.finish
zstream.close
buf
end
def deflate(string, level = Zlib::BEST_COMPRESSION)
z = Zlib::Deflate.new(level)
dst = z.deflate(string, Zlib::FINISH)
z.close
dst
end
# Si dossier n'existe pas
if Dir["Scripts"] != ["Scripts"]
# Créer le dossier
Dir.mkdir("Scripts")
end
obj_script = load_data(URL_SCRIPT + "Scripts.rvdata2")
num = 0
obj_script.each do |unScript |
num += 1
nom = unScript[1]
nom_fic = nom + ".rb"
if FileTest.exists?( "./Scripts/" + nom_fic )
fic = File.new("./Scripts/" + nom_fic, "rb")
code = fic.read
fic.close
unScript[2] = deflate(code)
end
end
save_data(obj_script, URL_SCRIPT + "Scripts.rvdata2")
- EudyMembre
- Nombre de messages : 14
Age : 33
Distinction : aucune
Date d'inscription : 19/10/2012
Re: Extraction et compilation du fichier Scripts.rvdata2
Mar 27 Nov 2012 - 21:02
Excellent ça , c'est dommage que ça ne soit pas une fonctionnalité de base.
C'est pratique avec un logiciel de gestion de version pour le travail en équipe.
C'est pratique avec un logiciel de gestion de version pour le travail en équipe.
Re: Extraction et compilation du fichier Scripts.rvdata2
Mar 27 Nov 2012 - 22:54
C'est justement le but ^_^, avec Ligthnox, on utilise Mercurial sur Bitbucket afin de gérer nos modification sur le projet Azaruss. On peut comme cela, bosser simultanément sur les scripts, sans perdre les modifications de l'autre.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|