lib/gman/locality.rb in gman-5.0.9 vs lib/gman/locality.rb in gman-6.0.0

- old
+ new

@@ -1,17 +1,29 @@ class Gman + class Locality + AFFINITY_NAMESPACES = %w(state dst cog).freeze - LOCALITY_REGEX = %r{ - ( - (state|dst|cog) - | - (ci|co|borough|boro|city|county|parish|town|twp|vi|vil|village)\.[a-z-]+ - ) - \.(ak|al|ar|az|ca|co|ct|dc|de|fl|ga|hi|ia|id|il|in|ks|ky|la|ma|md|me|mi|mn|mo|ms|mt|nc|nd|ne|nh|nj|nm|nv|ny|oh|ok|or|pa|ri|sc|sd|tn|tx|um|ut|va|vt|wa|wi|wv|wy) - \.us - }x + STATES = %w( + ak al ar az ca co ct dc de fl ga hi ia id il in ks ky + la ma md me mi mn mo ms mt nc nd ne nh nj nm nv ny oh + ok or pa ri sc sd tn tx um ut va vt wa wi wv wy + ).freeze + LOCALITY_DOMAINS = %w( + ci co borough boro city county + parish town twp vi vil village + ).freeze + + REGEX = / + ( + (#{Regexp.union(AFFINITY_NAMESPACES)}) + | + (#{Regexp.union(LOCALITY_DOMAINS)})\.[a-z-]+ + )\.(#{Regexp.union(STATES)})\.us + /x + end + # Second level .us domains for states and locality # See http://en.wikipedia.org/wiki/.us # # Examples: # * foo.state.il.us @@ -21,8 +33,8 @@ # * state.foo.il.us # * foo.ci.il.us # * k12.il.us # * ci.foo.zx.us def locality? - !!(domain.to_s =~ LOCALITY_REGEX) + !domain.to_s.match(Locality::REGEX).nil? end end