Sha256: bb4f03ecf9009a9698d17ae2c79b9715e4959625eba50fc419a410d73e2e399e

Contents?: true

Size: 664 Bytes

Versions: 1

Compression:

Stored size: 664 Bytes

Contents

module CAPostalCode
  module RegionGuessing
    PATTERNS = {
      /^A/ => "NL",
      /^B/ => "NS",
      /^C/ => "PE",
      /^E/ => "NB",
      /^[GHJ]/ => "QC",
      /^[KLMNP]/ => "ON",
      /^R/ => "MB",
      /^S/ => "SK",
      /^T/ => "AB",
      /^V/ => "BC",
      /^X0[A-C]/ => "NU",
      /^X0[EG]|^X1A/ => "NT",
      /^Y/ => "YT",
    }

    # Guesses province or territory based on postal code first characters.
    #
    # Output is defined for valid, normalized postal codes only.
    def guess_region(string)
      entry = PATTERNS.detect do |pattern, region|
        pattern.match?(string)
      end

      entry[1] if entry
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ca_postal_code-0.3.0 lib/ca_postal_code/region_guessing.rb