class UncleKryon::CanProvsTerrs
Constants
- DEFAULT_FILEPATH
Public Class Methods
load_file(filepath=DEFAULT_FILEPATH)
click to toggle source
# File lib/unclekryon/iso/can_prov_terr.rb, line 42 def self.load_file(filepath=DEFAULT_FILEPATH) return CanProvsTerrs.new.load_file(filepath) end
new()
click to toggle source
Calls superclass method
UncleKryon::BaseIsos::new
# File lib/unclekryon/iso/can_prov_terr.rb, line 36 def initialize super() @id = 'CAN Provinces & Territories' end
parse_and_save_to_file(parse_filepath,save_filepath=DEFAULT_FILEPATH)
click to toggle source
@param parse_filepath [String] use web browser's developer tools to copy & paste table HTML
into local file
@param save_filepath [String] local file to save YAML to @see www.iso.org/obp/ui/#iso:code:3166:CA
# File lib/unclekryon/iso/can_prov_terr.rb, line 50 def self.parse_and_save_to_file(parse_filepath,save_filepath=DEFAULT_FILEPATH) doc = Nokogiri::HTML(URI(parse_filepath).open,nil,'utf-8') trs = doc.css('tr') provs_terrs = CanProvsTerrs.new trs.each do |tr| tds = tr.css('td') # Skip French; we just want English next if tds[4].content.gsub(/[[:space:]]+/,' ').strip.downcase == 'fr' i = 0 tr = [] tds.each do |td| c = td.content c.gsub!(/[[:space:]]+/,' ') c.strip! tr.push(c) if (i += 1) >= 7 #puts tr.inspect() prov_terr = CanProvTerr.new(tr) raise "CAN prov/terr already exists: #{prov_terr.inspect}" if provs_terrs.key?(prov_terr.code) provs_terrs.values.each_value do |v| puts "Duplicate CAN prov/terr names: #{v.name}" if v.name == prov_terr.name end provs_terrs[prov_terr.code] = prov_terr tr.clear i = 0 end end end provs_terrs.sort_keys! provs_terrs.save_to_file(save_filepath) end