begin

require ‘parse_helper’ require ‘content_helper’ require ‘hpricot’ require ‘open-uri’

class CountrySelectEngine::Importer

include CountrySelectEngine::ParseHelper
include CountrySelectEngine::ContentHelper

def locale
  @locale
end

def countries
  @countries
end

def import(locales)
  if locales.is_a?(String)
    locales = locales.split(' ')
  end
  locales.each do |locale|
    locale = locale.to_s
    @locale = locale
    # ----- Get the CLDR HTML ------
    begin
      puts "... getting the HTML file for locale '#{locale}'"
      doc = Hpricot( open("http://www.unicode.org/cldr/data/charts/summary/#{locale}.html") )
    rescue => e
      puts "[!] Invalid locale name '#{locale}'! Not found in CLDR (#{e})"
      exit 0
    end

    # ----- Parse the HTML with Hpricot ----
    puts "... parsing the HTML file"
    @countries = [] # reset countries list
    doc.search("//tr").each do |row|
      next if !country_row?(row)
      countries << { :code => get_code(row).to_sym, :name => get_name(row).to_s }
    end

    # ----- Write the parsed values into file -----
    puts "\n... writing the output"
    filename = File.join(Rails.root, 'config', 'locales', "countries.#{locale}.yml")
    puts filename
    filename += '.NEW' if File.exists?(filename) # Append 'NEW' if file exists

# File.open(filename, ‘w+’) { |f| f << get_output }

    File.open(filename, 'w+') { |f| f << yaml_output }

    puts "\n---\nWritten values for the '#{locale}' into file: #{filename}\n"
  end
end

end

end

begin

task :find_place_by_google, :begin, :end, :needs => :environment do |t, args|
  srand Time.now.to_i
  puts args
  (args.begin..args.end).each do |n|

end

begin

namespace :country_select do

desc 'import locales'
task :import_locales, [:locales] do |t, args|
  puts args
  CountrySelectEngine::Importer.new.import(args.locales)
end

end

end