lib/tasks/phonelib_tasks.rake in phonelib-0.3.6 vs lib/tasks/phonelib_tasks.rake in phonelib-0.4.0

- old
+ new

@@ -8,78 +8,10 @@ Rake::Task['db:setup'].invoke end desc 'Import and reparse original data file from Google libphonenumber' task :import_data do - require 'net/http' - require 'nokogiri' - - # get metadata from google - url = 'http://libphonenumber.googlecode.com/svn/trunk/resources/PhoneNumberMetadata.xml' - xml_data = Net::HTTP.get_response(URI.parse(url)).body - xml_data.force_encoding("utf-8") - - # save in file for debug - File.open('data/PhoneNumberMetaData.xml', 'w+') do |f| - f.write(xml_data) - end - - # start parsing - doc = Nokogiri::XML(xml_data) - - main = doc.elements.first.elements.first - countries = {} - main.elements.each do |el| - # each country - country = {} - el.attributes.each do |k, v| - country[camel2snake(k).to_sym] = v.to_s.tr(" \n", '') - end - - country[:types] = {} - - el.children.each do | phone_type | - if !%w(comment text).include?(phone_type.name) - phone_type_sym = camel2snake(phone_type.name).to_sym - - if phone_type.name != 'availableFormats' - country[:types][phone_type_sym] = {} - phone_type.elements.each do |pattern| - country[:types][phone_type_sym][camel2snake(pattern.name).to_sym] = - pattern.children.first.to_s.tr(" \n", '') - end - else - country[:formats] = [] - phone_type.children.each do |format| - - if !%w(comment text).include?(format.name) - current_format = {} - format.each do |f| - current_format[camel2snake(f[0]).to_sym] = f[1] - end - - format.children.each do |f| - if f.name != 'text' - current_format[camel2snake(f.name).to_sym] = - f.children.first.to_s.gsub(/\n\s+/, '') - end - end - - country[:formats].push(current_format) - end - end - end - - end - end - - countries[country[:id]] = country - end - File.open('data/phone_data.dat', 'wb+') do |f| - Marshal.dump(countries, f) - end + require 'phonelib/data_importer' + Phonelib::DataImporter.import end - def camel2snake(s) - s.gsub(/[A-Z]+/) { |m| "_#{m.downcase}" } - end end