class GeocodeRecords
Constants
- VERSION
Attributes
clean[R]
database_url[R]
include_invalid[R]
optional
num[R]
subquery[R]
table_name[R]
Public Class Methods
new( database_url:, table_name:, subquery: nil, include_invalid: false, num: 1, clean: true )
click to toggle source
# File lib/geocode_records.rb, line 41 def initialize( database_url:, table_name:, subquery: nil, include_invalid: false, num: 1, clean: true ) @database_url = database_url @table_name = table_name @subquery = subquery @include_invalid = include_invalid @num = num @clean = clean end
new_tmp_path(hint)
click to toggle source
# File lib/geocode_records.rb, line 14 def new_tmp_path(hint) Dir::Tmpname.create(hint[0,64].delete('"').gsub(/\W/,'_').squeeze) {} end
psql(database_url, sql)
click to toggle source
# File lib/geocode_records.rb, line 18 def psql(database_url, sql) system( 'psql', database_url, '-v', 'ON_ERROR_STOP=on', # '--echo-all', '--quiet', '--no-psqlrc', '--pset', 'pager=off', '--command', sql ) or raise("psql failed") end
Public Instance Methods
perform()
click to toggle source
# File lib/geocode_records.rb, line 57 def perform geocode glob: false geocode glob: true end
Private Instance Methods
geocode(glob:)
click to toggle source
# File lib/geocode_records.rb, line 64 def geocode(glob:) ungeocoded_path = nil geocoded_path = nil begin ungeocoded_path = DumpSqlToCsv.new( database_url: database_url, table_name: table_name, subquery: subquery, glob: glob, num: num, ).perform unless File.size(ungeocoded_path) > 32 return end geocoded_path = GeocodeCsv.new( path: ungeocoded_path, glob: glob, include_invalid: include_invalid, num: num, ).perform UpdateTableFromCsv.new( database_url: database_url, table_name: table_name, path: geocoded_path, num: num, ).perform ensure if clean FileUtils.rm_f geocoded_path if geocoded_path FileUtils.rm_f ungeocoded_path if ungeocoded_path end end end