Je l'ai réécrite, c'est plus intéressant comme ça :
Merci à Sephi pour ses conseils
J'ai corrigé le dernier script. J'm'étais un peu chier dessus en fait.
#!/usr/bin/env ruby
require 'active_support'
require 'nokogiri'
require 'json'
if __FILE__ == $0
@doc = Nokogiri::XML(File.open("World_Map.svg"))
puts "Extraction started..."
@flights = [
{
:name => 'Kwala',
:color => '#898123',
:id => 24
},
{
:name => 'Bouh',
:color => '#156783',
:id => 25
},
{
:name => 'Victeam',
:color => '#FEFEDE',
:id => 26
},
{
:name => 'Teamon & Pumba',
:color => '#edafce',
:id => 27
}
]
@territory_id = 1
@percentages = [16, 20, 35, 29]
File.open('data.js', 'w') do |f|
@territories = []
@territories_names = @doc.search('d')
@doc.search('path').each_with_index do |path, i|
@percentages.sort_by {rand}
territory = {
:id => @territory_id,
:name => @territories_names[@territory_id - 1] && @territories_names[@territory_id - 1].attributes['id'].value,
:path => path.attributes['d'].value,
:owning_informations => []
}
@flights.each do |flight|
territory[:owning_informations] << {
:owning_percentage => @percentages[i % 4],
:flight => flight
}
end
@territories << territory
@territory_id += 1
end
f.write JSON.dump(@territories)
end
end
Merci à Sephi pour ses conseils
J'ai corrigé le dernier script. J'm'étais un peu chier dessus en fait.