Skip to content

Commit

Permalink
Merge pull request #132 from LuhalvesBR/feature/spanish-area-codes
Browse files Browse the repository at this point in the history
  • Loading branch information
fcevado committed Apr 29, 2020
2 parents 1fe351b + 04d330d commit cbdd4ef
Show file tree
Hide file tree
Showing 55 changed files with 878 additions and 6 deletions.
7 changes: 4 additions & 3 deletions README.md
Expand Up @@ -59,9 +59,10 @@ What is, what isnt and what will be about Phone:

## Area Codes
Countries that already has area code info:
* United States.
* Canada.
* Brazil.
* United States.
* Canada.
* Brazil.
* Spain.

## Vocabulary
* a2: Alpha-2, two letters code for country names.
Expand Down
1 change: 1 addition & 0 deletions lib/phone/countries.ex
Expand Up @@ -55,6 +55,7 @@ defmodule Phone.Countries do
Phone.EG,
Phone.ER,
Phone.ES,
Phone.ES.IntelligentNumbers,
Phone.ET,
Phone.FI,
Phone.FJ,
Expand Down
61 changes: 58 additions & 3 deletions lib/phone/es.ex
@@ -1,12 +1,67 @@
defmodule Phone.ES do
@moduledoc false
@doc """
Telephone Numbers rules based in a government file called
"El Plan Nacional de Numeración - Guía práctica de usuario"
Provincies and acronyms from ISO 3166-2:ES
"""

use Helper.Country

def regex, do: ~r/^(34)()(.{9})/
def country, do: "Spain"
def a2, do: "ES"
def a3, do: "ESP"

matcher(:regex, ["34"])
matcher(:modules, [
Phone.ES.A,
Phone.ES.AB,
Phone.ES.AL,
Phone.ES.AV,
Phone.ES.B,
Phone.ES.BA,
Phone.ES.BI,
Phone.ES.BU,
Phone.ES.C,
Phone.ES.CA,
Phone.ES.CC,
Phone.ES.CO,
Phone.ES.CR,
Phone.ES.CS,
Phone.ES.CU,
Phone.ES.GC,
Phone.ES.GI,
Phone.ES.GR,
Phone.ES.GU,
Phone.ES.H,
Phone.ES.HU,
Phone.ES.J,
Phone.ES.L,
Phone.ES.LE,
Phone.ES.LO,
Phone.ES.LU,
Phone.ES.M,
Phone.ES.MA,
Phone.ES.MU,
Phone.ES.NA,
Phone.ES.O,
Phone.ES.OR,
Phone.ES.P,
Phone.ES.PM,
Phone.ES.PO,
Phone.ES.S,
Phone.ES.SA,
Phone.ES.SE,
Phone.ES.SG,
Phone.ES.SO,
Phone.ES.SS,
Phone.ES.T,
Phone.ES.TE,
Phone.ES.TF,
Phone.ES.TO,
Phone.ES.V,
Phone.ES.VA,
Phone.ES.VI,
Phone.ES.Z,
Phone.ES.ZA,
])
end
12 changes: 12 additions & 0 deletions lib/phone/es/a.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.A do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(96[5-6]|86[5-6])(.{6})/
def area_name, do: "Alicante"
def area_type, do: "province"
def area_abbreviation, do: "A"

matcher(["34965", "34966", "34865", "34866"])
end
12 changes: 12 additions & 0 deletions lib/phone/es/ab.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.AB do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(967|867)(.{6})/
def area_name, do: "Albacete"
def area_type, do: "province"
def area_abbreviation, do: "AB"

matcher(["34967", "34867"])
end
12 changes: 12 additions & 0 deletions lib/phone/es/al.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.AL do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(950|850)(.{6})/
def area_name, do: "Almería"
def area_type, do: "province"
def area_abbreviation, do: "AL"

matcher(["34950", "34850"])
end
12 changes: 12 additions & 0 deletions lib/phone/es/av.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.AV do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(920|820)(.{6})/
def area_name, do: "Ávila"
def area_type, do: "province"
def area_abbreviation, do: "AV"

matcher(["34920", "34820"])
end
34 changes: 34 additions & 0 deletions lib/phone/es/b.ex
@@ -0,0 +1,34 @@
defmodule Phone.ES.B do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(93[0-9]|83[0-9])(.{6})/
def area_name, do: "Barcelona"
def area_type, do: "province"
def area_abbreviation, do: "B"

matcher([
"34930",
"34931",
"34932",
"34933",
"34934",
"34935",
"34936",
"34937",
"34938",
"34939",
"34830",
"34831",
"34832",
"34833",
"34834",
"34835",
"34836",
"34837",
"34838",
"34839"
])
end

12 changes: 12 additions & 0 deletions lib/phone/es/ba.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.BA do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(924|824)(.{6})/
def area_name, do: "Badajoz"
def area_type, do: "province"
def area_abbreviation, do: "BA"

matcher(["34924", "34824"])
end
12 changes: 12 additions & 0 deletions lib/phone/es/bi.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.BI do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(944|946|844|846)(.{6})/
def area_name, do: "Bizkaia"
def area_type, do: "province"
def area_abbreviation, do: "BI"

matcher(["34944", "34946", "34844", "34846"])
end
12 changes: 12 additions & 0 deletions lib/phone/es/bu.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.BU do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(947|847)(.{6})/
def area_name, do: "Burgos"
def area_type, do: "province"
def area_abbreviation, do: "BU"

matcher(["34947", "34847"])
end
12 changes: 12 additions & 0 deletions lib/phone/es/c.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.C do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(981|881)(.{6})/
def area_name, do: "A Coruña"
def area_type, do: "province"
def area_abbreviation, do: "C"

matcher(["34981", "34881"])
end
12 changes: 12 additions & 0 deletions lib/phone/es/ca.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.CA do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(956|856)(.{6})/
def area_name, do: "Cádiz"
def area_type, do: "province"
def area_abbreviation, do: "CA"

matcher(["34956", "34856"])
end
12 changes: 12 additions & 0 deletions lib/phone/es/cc.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.CC do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(927|827)(.{6})/
def area_name, do: "Cáceres"
def area_type, do: "province"
def area_abbreviation, do: "CC"

matcher(["34927", "34827"])
end
12 changes: 12 additions & 0 deletions lib/phone/es/co.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.CO do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(957|857)(.{6})/
def area_name, do: "Córdoba"
def area_type, do: "province"
def area_abbreviation, do: "CO"

matcher(["34957", "34857"])
end
12 changes: 12 additions & 0 deletions lib/phone/es/cr.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.CR do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(926|826)(.{6})/
def area_name, do: "Ciudad Real"
def area_type, do: "province"
def area_abbreviation, do: "CR"

matcher(["34926", "34826"])
end
12 changes: 12 additions & 0 deletions lib/phone/es/cs.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.CS do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(964|864)(.{6})/
def area_name, do: "Castellón"
def area_type, do: "province"
def area_abbreviation, do: "CS"

matcher(["34964", "34864"])
end
12 changes: 12 additions & 0 deletions lib/phone/es/cu.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.CU do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(969|869)(.{6})/
def area_name, do: "Cuenca"
def area_type, do: "province"
def area_abbreviation, do: "CU"

matcher(["34969", "34869"])
end
12 changes: 12 additions & 0 deletions lib/phone/es/gc.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.GC do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(928|828)(.{6})/
def area_name, do: "Las Palmas"
def area_type, do: "province"
def area_abbreviation, do: "GC"

matcher(["34928", "34828"])
end
12 changes: 12 additions & 0 deletions lib/phone/es/gi.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.GI do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(972|872)(.{6})/
def area_name, do: "Girona"
def area_type, do: "province"
def area_abbreviation, do: "GI"

matcher(["34972", "34872"])
end
12 changes: 12 additions & 0 deletions lib/phone/es/gr.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.GR do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(958|858)(.{6})/
def area_name, do: "Granada"
def area_type, do: "province"
def area_abbreviation, do: "GR"

matcher(["34958", "34858"])
end
12 changes: 12 additions & 0 deletions lib/phone/es/gu.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.GU do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(949|849)(.{6})/
def area_name, do: "Guadalajara"
def area_type, do: "province"
def area_abbreviation, do: "GU"

matcher(["34949", "34849"])
end
12 changes: 12 additions & 0 deletions lib/phone/es/h.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.H do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(959|859)(.{6})/
def area_name, do: "Huelva"
def area_type, do: "province"
def area_abbreviation, do: "H"

matcher(["34959", "34859"])
end
12 changes: 12 additions & 0 deletions lib/phone/es/hu.ex
@@ -0,0 +1,12 @@
defmodule Phone.ES.HU do
@moduledoc false

use Helper.Area

def regex, do: ~r/^(34)(974|874)(.{6})/
def area_name, do: "Huesca"
def area_type, do: "province"
def area_abbreviation, do: "HU"

matcher(["34974", "34874"])
end

0 comments on commit cbdd4ef

Please sign in to comment.