| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- require "date"
- module Util
- def self.parse_epoch_ms(v)
- return nil if v.nil? || v.to_s.strip.empty?
- begin
- Time.at(v.to_i / 1000).to_date
- rescue ArgumentError, RangeError, TypeError
- nil
- end
- end
- def self.parse_aus_date(text)
- s = text.to_s.strip
- return nil if s.empty?
- ["%d/%m/%Y", "%d/%m/%y"].each do |fmt|
- begin
- return Date.strptime(s, fmt)
- rescue ArgumentError, Date::Error
- next
- end
- end
- Date.parse(s)
- rescue ArgumentError, Date::Error
- nil
- end
- COUNCIL_MAP = {
- "BREAK_ODAY" => "da_break_oday",
- "BRIGHTON" => "da_brighton",
- "BURNIE" => "da_burnie",
- "CENTRAL_COAST" => "da_centralcoast",
- "CENTRAL_HIGHLANDS" => "da_centralhighlands",
- "CIRCULAR_HEAD" => "da_circularhead",
- "CLARENCE" => "da_clarence",
- "DERWENT_VALLEY" => "da_derwentvalley",
- "DEVONPORT" => "da_devonportcity",
- "DORSET" => "da_dorset",
- "FLINDERS" => "da_flinders_council",
- "GEORGE_TOWN" => "da_georgetown",
- "GLAMORGAN-SPRING_BAY" => "da_glamorgan",
- "GLENORCHY" => "da_glenorchy",
- "HOBART" => "da_hobartcity",
- "HUON_VALLEY" => "da_huonvalley",
- "KENTISH" => "da_kentish",
- "KINGBOROUGH" => "da_kingborough",
- "KING_ISLAND" => "da_kingisland",
- "LATROBE" => "da_latrobe",
- "LAUNCESTON" => "da_launceston",
- "MEANDER_VALLEY" => "da_meandervalley",
- "NORTHERN_MIDLANDS" => "da_northernmidlands",
- "SORELL" => "da_sorell",
- "SOUTHERN_MIDLANDS" => "da_southernmidlands",
- "TASMAN" => "da_tasman",
- "WARATAH-WYNYARD" => "da_waratah_wynyard",
- "WEST_COAST" => "da_westcoast",
- "WEST_TAMAR" => "da_westtamar"
- }
- PLANBUILD_CODE_MAP = {
- "BOD" => "BREAK_ODAY",
- "BRI" => "BRIGHTON",
- "BUR" => "BURNIE",
- "CCO" => "CENTRAL_COAST",
- "CHD" => "CIRCULAR_HEAD",
- "CEH" => "CENTRAL_HIGHLANDS",
- "CLA" => "CLARENCE",
- "DER" => "DERWENT_VALLEY",
- "DEV" => "DEVONPORT",
- "DOR" => "DORSET",
- "FLI" => "FLINDERS",
- "GEO" => "GEORGE_TOWN",
- "GLC" => "GLENORCHY",
- "GSP" => "GLAMORGAN-SPRING_BAY",
- "HOB" => "HOBART",
- "HUO" => "HUON_VALLEY",
- "KEN" => "KENTISH",
- "KIN" => "KINGBOROUGH",
- "KIS" => "KING_ISLAND",
- "LAT" => "LATROBE",
- "LAU" => "LAUNCESTON",
- "MEA" => "MEANDER_VALLEY",
- "NMI" => "NORTHERN_MIDLANDS",
- "SOR" => "SORELL",
- "SOM" => "SOUTHERN_MIDLANDS",
- "TAS" => "TASMAN",
- "WAR" => "WARATAH-WYNYARD",
- "WCO" => "WEST_COAST",
- "WTA" => "WEST_TAMAR"
- }
- # returns the table name
- def self.ref_to_table(ref)
- code = ref.split("-")[1].to_s.upcase
- council_key = PLANBUILD_CODE_MAP[code]
- raise "Unknown council code: #{code}" unless council_key
- # make sure the key exists in COUNCIL_MAP
- table = COUNCIL_MAP[council_key]
- raise "No table mapping for council: #{council_key}" unless table
- table
- end
- # returns the folder name for PDFs
- def self.ref_to_folder(ref)
- code = ref.split("-")[1].to_s.upcase
- council_name = PLANBUILD_CODE_MAP[code]
- raise "Unknown council code: #{code}" unless council_name
- council_name # use full council name for folder
- end
- end
|