geo_code.rb
1# frozen_string_literal: true
2
3require "value_semantics/monkey_patched"
4
5class GeoCode
6 def self.for(data)
7 new(data)
8 end
9
10 def initialize(data)
11 @data = data
12 end
13
14 def country
15 return "US" unless @data["postal"]
16 return "US" if @data["postal"] =~ /\A\d+\Z/
17
18 "CA"
19 end
20
21 def sql_point
22 "POINT(#{'%.10f' % @data['longt']} #{'%.10f' % @data['latt']})"
23 end
24
25 def valid?
26 @data["longt"] && @data["latt"]
27 end
28end