From 4e149aee41eb7f06fa3ac6ab0cdf122ecbd969c4 Mon Sep 17 00:00:00 2001 From: Philip Munksgaard Date: Mon, 18 Aug 2025 11:33:45 +0200 Subject: [PATCH 1/7] Add Danish person fakers --- lib/faker/person/dk.ex | 214 +++++++++++++++++++++++++++++++++++++ test/faker/person_test.exs | 1 + 2 files changed, 215 insertions(+) create mode 100644 lib/faker/person/dk.ex diff --git a/lib/faker/person/dk.ex b/lib/faker/person/dk.ex new file mode 100644 index 000000000..3e12160c1 --- /dev/null +++ b/lib/faker/person/dk.ex @@ -0,0 +1,214 @@ +defmodule Faker.Person.Dk do + import Faker, only: [sampler: 2] + + @moduledoc """ + Functions for name data in Danish + """ + + @doc """ + Returns a complete name. Does not include a prefix or suffix. + + ## Examples + + iex> Faker.Person.Dk.name() + "Jonathan Jacobsen" + iex> Faker.Person.Dk.name() + "Victor Knudsen" + iex> Faker.Person.Dk.name() + "Naja Henriksen" + iex> Faker.Person.Dk.name() + "Josefine Poulsen" + """ + @spec name() :: String.t() + def name, do: "#{first_name()} #{last_name()}" + + @doc """ + Returns a random first name + + ## Examples + + iex> Faker.Person.Dk.first_name() + "Jonathan" + iex> Faker.Person.Dk.first_name() + "Liam" + iex> Faker.Person.Dk.first_name() + "Victor" + iex> Faker.Person.Dk.first_name() + "Freja" + """ + @spec first_name() :: String.t() + sampler(:first_name, [ + "Alexander", + "Anna", + "Andreas", + "Anne", + "Anton", + "Benjamin", + "Caroline", + "Christian", + "Christopher", + "Clara", + "Daniel", + "David", + "Emil", + "Emma", + "Frederik", + "Freja", + "Gustav", + "Hannah", + "Isabella", + "Jacob", + "Jonathan", + "Josefine", + "Julie", + "Karl", + "Katrine", + "Laura", + "Lars", + "Liam", + "Line", + "Louise", + "Lucas", + "Maja", + "Malthe", + "Marcus", + "Maria", + "Marie", + "Mathias", + "Mathilde", + "Michael", + "Mikkel", + "Mille", + "Naja", + "Nicklas", + "Nicoline", + "Noah", + "Oliver", + "Olivia", + "Oscar", + "Philip", + "Rasmus", + "Sebastian", + "Silje", + "Sofie", + "Storm", + "Theodor", + "Thomas", + "Tobias", + "Victor", + "Victoria", + "Villads", + "William" + ]) + + @doc """ + Returns a random last name + + ## Examples + + iex> Faker.Person.Dk.last_name() + "Thomsen" + iex> Faker.Person.Dk.last_name() + "Jacobsen" + iex> Faker.Person.Dk.last_name() + "Mikkelsen" + iex> Faker.Person.Dk.last_name() + "Knudsen" + """ + @spec last_name() :: String.t() + sampler(:last_name, [ + "Andersen", + "Antonsen", + "Berg", + "Bertelsen", + "Bruun", + "Christensen", + "Clausen", + "Dahl", + "Eriksen", + "Frandsen", + "Hansen", + "Henriksen", + "Holm", + "Jacobsen", + "Jensen", + "Jeppesen", + "Jespersen", + "Johannesen", + "Johansen", + "Jørgensen", + "Karlsen", + "Knudsen", + "Kristensen", + "Larsen", + "Lund", + "Madsen", + "Mikkelsen", + "Møller", + "Nielsen", + "Olsen", + "Pedersen", + "Petersen", + "Poulsen", + "Rasmussen", + "Schmidt", + "Sørensen", + "Thomsen" + ]) + + @doc """ + Returns a random name related title + + ## Examples + + iex> Faker.Person.Dk.title() + "Konsulent" + iex> Faker.Person.Dk.title() + "Manager" + iex> Faker.Person.Dk.title() + "Projektleder" + iex> Faker.Person.Dk.title() + "Leder" + """ + @spec title() :: String.t() + sampler(:title, [ + "Afdelingsleder", + "Analytiker", + "Arkitekt", + "Assistent", + "Chef", + "Direktør", + "Konsulent", + "Koordinator", + "Leder", + "Manager", + "Medarbejder", + "Projektleder", + "Rådgiver", + "Specialist", + "Supervisor", + "Udvikler" + ]) + + @doc """ + Returns a random name related prefix + + ## Examples + + iex> Faker.Person.Dk.prefix() + "Frk." + iex> Faker.Person.Dk.prefix() + "Fru" + iex> Faker.Person.Dk.prefix() + "Dr." + iex> Faker.Person.Dk.prefix() + "Hr." + """ + @spec prefix() :: String.t() + sampler(:prefix, [ + "Hr.", + "Fru", + "Frk.", + "Dr." + ]) +end diff --git a/test/faker/person_test.exs b/test/faker/person_test.exs index 3c9c4d678..86b42e864 100644 --- a/test/faker/person_test.exs +++ b/test/faker/person_test.exs @@ -2,6 +2,7 @@ defmodule Faker.PersonTest do use ExUnit.Case, async: true doctest Faker.Person + doctest Faker.Person.Dk doctest Faker.Person.En doctest Faker.Person.Es doctest Faker.Person.Fr From b98e5b8a23f07ec4e885e27eb91a0d5007ad93e8 Mon Sep 17 00:00:00 2001 From: Philip Munksgaard Date: Mon, 18 Aug 2025 12:53:59 +0200 Subject: [PATCH 2/7] Add Danish addresses --- lib/faker/address/dk.ex | 336 ++++++++++++++++++++++++++++++++++++ test/faker/address_test.exs | 1 + 2 files changed, 337 insertions(+) create mode 100644 lib/faker/address/dk.ex diff --git a/lib/faker/address/dk.ex b/lib/faker/address/dk.ex new file mode 100644 index 000000000..c2bea4075 --- /dev/null +++ b/lib/faker/address/dk.ex @@ -0,0 +1,336 @@ +defmodule Faker.Address.Dk do + import Faker, only: [sampler: 2] + + @moduledoc """ + Functions for generating addresses in Danish + """ + + @doc """ + Return random building number. + + ## Examples + + iex> Faker.Address.Dk.building_number() + "115" + iex> Faker.Address.Dk.building_number() + "126" + iex> Faker.Address.Dk.building_number() + "161" + iex> Faker.Address.Dk.building_number() + "183" + """ + @spec building_number() :: String.t() + def building_number do + ["1##", "1#"] + |> Enum.at(Faker.random_between(0, 1)) + |> Faker.format() + end + + @doc """ + Return city name. + + ## Examples + + iex> Faker.Address.Dk.city() + "Lillerød" + iex> Faker.Address.Dk.city() + "Ringsted" + iex> Faker.Address.Dk.city() + "Haderslev" + iex> Faker.Address.Dk.city() + "Skanderborg" + """ + @spec city() :: String.t() + sampler(:city, [ + "København", + "Aarhus", + "Odense", + "Aalborg", + "Esbjerg", + "Randers", + "Kolding", + "Horsens", + "Vejle", + "Roskilde", + "Herning", + "Hørsholm", + "Helsingør", + "Silkeborg", + "Næstved", + "Fredericia", + "Viborg", + "Køge", + "Holstebro", + "Taastrup", + "Slagelse", + "Hillerød", + "Holbæk", + "Sønderborg", + "Svendborg", + "Hjørring", + "Frederikshavn", + "Glostrup", + "Haderslev", + "Nørresundby", + "Ringsted", + "Aabenraa", + "Frederiksberg", + "Skanderborg", + "Nyborg", + "Varde", + "Grenaa", + "Ballerup", + "Thisted", + "Albertslund", + "Farum", + "Lillerød", + "Ishøj", + "Birkerød", + "Skive", + "Korsør", + "Tårnby", + "Rødovre", + "Vallensbæk" + ]) + + @doc """ + Return country. + + ## Examples + + iex> Faker.Address.Dk.country() + "Saudi-Arabien" + iex> Faker.Address.Dk.country() + "Tyskland" + iex> Faker.Address.Dk.country() + "Saudi-Arabien" + iex> Faker.Address.Dk.country() + "Grønland" + """ + @spec country() :: String.t() + sampler(:country, [ + "Afghanistan", + "Albanien", + "Algeriet", + "Andorra", + "Angola", + "Argentina", + "Armenien", + "Australien", + "Østrig", + "Aserbajdsjan", + "Bahrain", + "Bangladesh", + "Belgien", + "Brasilien", + "Bulgarien", + "Canada", + "Chile", + "Kina", + "Colombia", + "Danmark", + "Ecuador", + "Egypten", + "Estland", + "Finland", + "Frankrig", + "Georgien", + "Tyskland", + "Ghana", + "Grækenland", + "Grønland", + "Ungarn", + "Island", + "Indien", + "Indonesien", + "Iran", + "Irak", + "Irland", + "Israel", + "Italien", + "Japan", + "Jordan", + "Kazakhstan", + "Kenya", + "Sydkorea", + "Kuwait", + "Letland", + "Libanon", + "Litauen", + "Luxembourg", + "Malaysia", + "Mexico", + "Marokko", + "Holland", + "New Zealand", + "Norge", + "Pakistan", + "Polen", + "Portugal", + "Rumænien", + "Rusland", + "Saudi-Arabien", + "Serbien", + "Singapore", + "Slovakiet", + "Slovenien", + "Sydafrika", + "Spanien", + "Sverige", + "Schweiz", + "Thailand", + "Tyrkiet", + "Ukraine", + "Storbritannien", + "USA", + "Venezuela" + ]) + + @doc """ + Return random secondary address. + + ## Examples + + iex> Faker.Address.Dk.secondary_address() + "1. sal tv" + iex> Faker.Address.Dk.secondary_address() + "4. tv" + iex> Faker.Address.Dk.secondary_address() + "6. sal th" + iex> Faker.Address.Dk.secondary_address() + "st. th" + """ + @spec secondary_address() :: String.t() + def secondary_address do + [ + "st. tv", + "st. th", + "st. mf", + "#. sal tv", + "#. sal th", + "#. sal mf", + "#. tv", + "#. th", + "#. mf" + ] + |> Enum.at(Faker.random_between(0, 8)) + |> Faker.format() + end + + @doc """ + Return street name. + + ## Examples + + iex> Faker.Address.Dk.street_name() + "Marie Johansens Vej" + iex> Faker.Address.Dk.street_name() + "Søndergade" + iex> Faker.Address.Dk.street_name() + "Christians Alle" + iex> Faker.Address.Dk.street_name() + "Hovedgaden" + """ + @spec street_name() :: String.t() + sampler(:street_name, [ + "Nørregade", + "Søndergade", + "Vestergade", + "Østergade", + "Hovedgaden", + "Strandvejen", + "Skolegade", + "Torvet", + "Hans Jensens Alle", + "Peter Nielsens Boulevard", + "Marie Johansens Vej", + "Lars Andersens Gade", + "Anna Petersens Stræde", + "Tværvej", + "Bakkevej", + "Jægersborggade", + "Bredgade", + "Langgade", + "Farvergade", + "Smedesvej", + "Møllevej", + "Kongens Gade", + "Dronningens Gade", + "Kirketorv", + "Havnegade", + "Skovvej", + "Rosenvej", + "Birkevej", + "Egevej", + "Lindevej", + "Nygade", + "Gamle Kirkevej", + "Ny Strandvej", + "Store Torv", + "Lille Torv", + "Christians Alle", + "Frederiks Boulevard", + "Annes Gade", + "Sofies Vej", + "Mads Hansens Stræde", + "Ole Jensens Passage", + "Margrete Alle", + "Valdemars Gade", + "Niels Borhs Vej", + "H.C. Andersens Boulevard", + "Karen Blixens Vej", + "Søren Kierkegaards Alle", + "Tycho Brahes Gade", + "Absalons Gade", + "Saxos Alle" + ]) + + @doc """ + Return street address. + + ## Examples + + iex> Faker.Address.Dk.street_address() + "Søndergade 14" + iex> Faker.Address.Dk.street_address() + "Bredgade 161a" + iex> Faker.Address.Dk.street_address() + "Kirketorv 197, 5. sal tv" + iex> Faker.Address.Dk.street_address() + "Kirketorv 17c" + """ + @spec street_address() :: String.t() + def street_address do + case Faker.random_between(0, 2) do + 0 -> + "#{street_name()} #{building_number()}" + + 1 -> + "#{street_name()} #{building_number()}#{Enum.at(["a", "b", "c"], Faker.random_between(0, 2))}" + + 2 -> + "#{street_name()} #{building_number()}" <> ", " <> secondary_address() + end + end + + @doc """ + Return random Danish postcode. + + ## Examples + + iex> Faker.Address.Dk.zip_code() + "0154" + iex> Faker.Address.Dk.zip_code() + "2646" + iex> Faker.Address.Dk.zip_code() + "1083" + iex> Faker.Address.Dk.zip_code() + "2970" + """ + @spec zip_code() :: String.t() + def zip_code do + ["####"] + |> Enum.at(0) + |> Faker.format() + end +end diff --git a/test/faker/address_test.exs b/test/faker/address_test.exs index dec47b551..67e344bc3 100644 --- a/test/faker/address_test.exs +++ b/test/faker/address_test.exs @@ -2,6 +2,7 @@ defmodule Faker.AddressTest do use ExUnit.Case, async: true doctest Faker.Address + doctest Faker.Address.Dk doctest Faker.Address.En doctest Faker.Address.Es doctest Faker.Address.Hy From c4a4fae69de5e11edcf60f7dda5c270d3bc35665 Mon Sep 17 00:00:00 2001 From: Philip Munksgaard Date: Mon, 18 Aug 2025 13:05:44 +0200 Subject: [PATCH 3/7] Add Danish company names --- lib/faker/company/dk.ex | 498 ++++++++++++++++++++++++++++++++++++ test/faker/company_test.exs | 1 + 2 files changed, 499 insertions(+) create mode 100644 lib/faker/company/dk.ex diff --git a/lib/faker/company/dk.ex b/lib/faker/company/dk.ex new file mode 100644 index 000000000..177bfa046 --- /dev/null +++ b/lib/faker/company/dk.ex @@ -0,0 +1,498 @@ +defmodule Faker.Company.Dk do + import Faker, only: [sampler: 2] + + alias Faker.Person.Dk, as: Person + + @moduledoc """ + Functions for company data in Danish + """ + + @doc """ + Returns a random complete Danish business related bullshit + + ## Examples + + iex> Faker.Company.Dk.bs() + "beskytte lokale løsninger" + iex> Faker.Company.Dk.bs() + "etablere skalerbare frameworks" + iex> Faker.Company.Dk.bs() + "verificere intelligente partnerskaber" + iex> Faker.Company.Dk.bs() + "synkronisere cloud-baserede interfaces" + """ + @spec bs() :: String.t() + def bs, do: "#{bullshit_prefix()} #{bullshit()} #{bullshit_suffix()}" + + @doc """ + Returns a random Danish business related bullshit + + ## Examples + + iex> Faker.Company.Dk.bullshit() + "databaserede" + iex> Faker.Company.Dk.bullshit() + "lokale" + iex> Faker.Company.Dk.bullshit() + "innovative" + iex> Faker.Company.Dk.bullshit() + "AI-drevne" + """ + @spec bullshit() :: String.t() + sampler(:bullshit, [ + "innovative", + "digitale", + "skalerbare", + "brugervenlige", + "bæredygtige", + "effektive", + "intelligente", + "automatiserede", + "integrerede", + "fleksible", + "sikre", + "moderne", + "avancerede", + "strategiske", + "dynamiske", + "globale", + "lokale", + "mobile", + "cloud-baserede", + "AI-drevne", + "databaserede", + "responsive", + "adaptive", + "optimerede", + "personaliserede", + "kollaborative", + "transparente", + "agile", + "holistiske", + "kundecentrerede", + "værdibaserede", + "fremtidssikrede", + "miljøvenlige", + "sociale", + "etiske" + ]) + + @doc """ + Returns a random Danish business related bullshit prefix + + ## Examples + + iex> Faker.Company.Dk.bullshit_prefix() + "beskytte" + iex> Faker.Company.Dk.bullshit_prefix() + "sikre" + iex> Faker.Company.Dk.bullshit_prefix() + "accelerere" + iex> Faker.Company.Dk.bullshit_prefix() + "etablere" + """ + @spec bullshit_prefix() :: String.t() + sampler(:bullshit_prefix, [ + "implementere", + "udvikle", + "optimere", + "integrere", + "automatisere", + "digitalisere", + "transformere", + "modernisere", + "effektivisere", + "skalere", + "personalisere", + "standardisere", + "synkronisere", + "koordinere", + "facilitere", + "accelerere", + "maksimere", + "minimere", + "analysere", + "evaluere", + "generere", + "producere", + "levere", + "administrere", + "styre", + "overvåge", + "kontrollere", + "validere", + "verificere", + "sikre", + "beskytte", + "oprette", + "etablere", + "lancere", + "introducere", + "revolutionere" + ]) + + @doc """ + Returns a random Danish business related bullshit suffix + + ## Examples + + iex> Faker.Company.Dk.bullshit_suffix() + "strategier" + iex> Faker.Company.Dk.bullshit_suffix() + "frameworks" + iex> Faker.Company.Dk.bullshit_suffix() + "løsninger" + iex> Faker.Company.Dk.bullshit_suffix() + "metodologier" + """ + @spec bullshit_suffix() :: String.t() + sampler(:bullshit_suffix, [ + "løsninger", + "systemer", + "platforme", + "interfaces", + "applikationer", + "services", + "teknologier", + "processer", + "workflows", + "strukturer", + "arkitekturer", + "infrastrukturer", + "netværk", + "databaser", + "algoritmer", + "modeller", + "frameworks", + "protokoller", + "standarder", + "metodologier", + "strategier", + "koncepter", + "initiativer", + "projekter", + "programmer", + "kanaler", + "partnerskaber", + "relationer", + "oplevelser", + "interaktioner", + "værktøjer", + "ressourcer", + "kapaciteter", + "kompetencer", + "muligheder" + ]) + + @doc """ + Returns a random Danish business related buzzword + + ## Examples + + iex> Faker.Company.Dk.buzzword() + "fremtidssikret" + iex> Faker.Company.Dk.buzzword() + "digital" + iex> Faker.Company.Dk.buzzword() + "intuitive" + iex> Faker.Company.Dk.buzzword() + "personaliseret" + """ + @spec buzzword() :: String.t() + sampler(:buzzword, [ + "innovativ", + "digital", + "skalerbar", + "brugercentreret", + "bæredygtig", + "effektiv", + "intelligent", + "automatiseret", + "integreret", + "fleksibel", + "sikker", + "moderne", + "avanceret", + "strategisk", + "dynamisk", + "global", + "lokal", + "mobil", + "cloud-baseret", + "AI-drevet", + "databaseret", + "responsiv", + "adaptiv", + "optimeret", + "personaliseret", + "kollaborativ", + "transparent", + "agil", + "holistisk", + "værdibaseret", + "fremtidssikret", + "miljøvenlig", + "social", + "etisk", + "interaktiv", + "intuitive", + "robust", + "pålidelig", + "stabil", + "sammenhængende" + ]) + + @doc """ + Returns a random Danish business related buzzword prefix + + ## Examples + + iex> Faker.Company.Dk.buzzword_prefix() + "Centraliseret" + iex> Faker.Company.Dk.buzzword_prefix() + "Kundefokuseret" + iex> Faker.Company.Dk.buzzword_prefix() + "Optimeret" + iex> Faker.Company.Dk.buzzword_prefix() + "Programmerbar" + """ + @spec buzzword_prefix() :: String.t() + sampler(:buzzword_prefix, [ + "Adaptiv", + "Avanceret", + "Forbedret", + "Automatiseret", + "Balanceret", + "Forretningsfokuseret", + "Centraliseret", + "Kompatibel", + "Konfigurerbar", + "Kundefokuseret", + "Tilpasselig", + "Decentraliseret", + "Distribueret", + "Diversificeret", + "Udvidet", + "Erhvervsvenlig", + "Ergonomisk", + "Eksklusiv", + "Fokuseret", + "Funktionsbaseret", + "Fundamental", + "Fremtidssikret", + "Horisontal", + "Implementeret", + "Innovativ", + "Integreret", + "Intuitiv", + "Administreret", + "Overvåget", + "Flerkanalig", + "Flerlags", + "Netværksbaseret", + "Objektbaseret", + "Open source", + "Operativ", + "Optimeret", + "Organisk", + "Organiseret", + "Proaktiv", + "Profitfokuseret", + "Programmerbar", + "Progressiv", + "Kvalitetsfokuseret", + "Reaktiv", + "Robust", + "Sikker", + "Selvstændig", + "Strømlinet", + "Synkroniseret", + "Teamorienteret", + "Universal", + "Brugercentreret", + "Brugervenlig", + "Alsidig", + "Virtuell", + "Visionær" + ]) + + @doc """ + Returns a random Danish business related buzzword suffix + + ## Examples + + iex> Faker.Company.Dk.buzzword_suffix() + "lokalt netværk" + iex> Faker.Company.Dk.buzzword_suffix() + "taskforce" + iex> Faker.Company.Dk.buzzword_suffix() + "projektion" + iex> Faker.Company.Dk.buzzword_suffix() + "arkitektur" + """ + @spec buzzword_suffix() :: String.t() + sampler(:buzzword_suffix, [ + "evne", + "adgang", + "adapter", + "algoritme", + "alliance", + "analysator", + "applikation", + "tilgang", + "arkitektur", + "arkiv", + "kunstig intelligens", + "array", + "attitude", + "benchmark", + "budgetledelse", + "kapacitet", + "udfordring", + "kredsløb", + "samarbejde", + "kompleksitet", + "koncept", + "konglomerat", + "beredskab", + "kerne", + "kundeloyalitet", + "database", + "datawarehouse", + "definition", + "emulering", + "kodning", + "kryptering", + "extranet", + "firmware", + "fleksibilitet", + "fokusgruppe", + "prognose", + "ramme", + "framework", + "funktion", + "funktionaliteter", + "interface", + "groupware", + "hardware", + "helpdesk", + "hierarki", + "hub", + "implementering", + "infrastruktur", + "initiativ", + "installation", + "instruktionssæt", + "internetløsning", + "intranet", + "videnbase", + "lokalt netværk", + "metodologi", + "middleware", + "migration", + "model", + "moderator", + "overvågning", + "moratorium", + "neuralt net", + "åben arkitektur", + "åbent system", + "orkestrering", + "paradigme", + "parallelisme", + "politik", + "portal", + "prisstruktur", + "procesforbedring", + "produkt", + "produktivitet", + "projekt", + "projektion", + "protokol", + "sikker linje", + "servicedesk", + "software", + "løsning", + "standardisering", + "strategi", + "struktur", + "succes", + "superstruktur", + "support", + "synergi", + "systemmotor", + "taskforce", + "gennemløb", + "tidsramme", + "værktøjssæt", + "udnyttelse", + "hjemmeside", + "arbejdsstyrke" + ]) + + @doc """ + Returns a random complete Danish catch phrase + + ## Examples + + iex> Faker.Company.Dk.catch_phrase() + "Centraliseret digital projektion" + iex> Faker.Company.Dk.catch_phrase() + "Programmerbar social applikation" + iex> Faker.Company.Dk.catch_phrase() + "Overvåget intelligent definition" + iex> Faker.Company.Dk.catch_phrase() + "Distribueret stabil tidsramme" + """ + @spec catch_phrase() :: String.t() + def catch_phrase, do: "#{buzzword_prefix()} #{buzzword()} #{buzzword_suffix()}" + + @doc """ + Returns complete Danish company name + + ## Examples + + iex> Faker.Company.Dk.name() + "Jacobsen og Sønner" + iex> Faker.Company.Dk.name() + "Kristensen, Henriksen og Jørgensen" + iex> Faker.Company.Dk.name() + "Schmidt, Møller og Olsen" + iex> Faker.Company.Dk.name() + "Sørensen-Hansen" + """ + @spec name() :: String.t() + def name, do: name(Faker.random_between(0, 2)) + defp name(0), do: "#{Person.last_name()} #{suffix()}" + defp name(1), do: "#{Person.last_name()}-#{Person.last_name()}" + + defp name(2) do + "#{Person.last_name()}, #{Person.last_name()} og #{Person.last_name()}" + end + + @doc """ + Returns a random type of Danish business entity + + ## Examples + + iex> Faker.Company.Dk.suffix() + "Holding" + iex> Faker.Company.Dk.suffix() + "ApS" + iex> Faker.Company.Dk.suffix() + "og Sønner" + iex> Faker.Company.Dk.suffix() + "A/S" + """ + @spec suffix() :: String.t() + sampler(:suffix, [ + "A/S", + "ApS", + "I/S", + "og Sønner", + "og Døtre", + "Gruppe", + "Holding", + "Koncern" + ]) +end diff --git a/test/faker/company_test.exs b/test/faker/company_test.exs index df363861d..6b0d27564 100644 --- a/test/faker/company_test.exs +++ b/test/faker/company_test.exs @@ -4,4 +4,5 @@ defmodule Faker.CompanyTest do doctest Faker.Company doctest Faker.Company.En doctest Faker.Company.Hy + doctest Faker.Company.Dk end From 2a61727d8afc92c664b8cfc012db069a637a84b2 Mon Sep 17 00:00:00 2001 From: Philip Munksgaard Date: Mon, 18 Aug 2025 13:13:57 +0200 Subject: [PATCH 4/7] Add Danish phone numbers --- lib/faker/phone/dk.ex | 215 ++++++++++++++++++++++++++++++++++++++ test/faker/phone_test.exs | 1 + 2 files changed, 216 insertions(+) create mode 100644 lib/faker/phone/dk.ex diff --git a/lib/faker/phone/dk.ex b/lib/faker/phone/dk.ex new file mode 100644 index 000000000..8dba17388 --- /dev/null +++ b/lib/faker/phone/dk.ex @@ -0,0 +1,215 @@ +defmodule Faker.Phone.Dk do + import Faker, only: [sampler: 2] + + @moduledoc """ + Functions for generating Danish phone numbers. + + Danish phone numbers are 8 digits long and follow these patterns: + - Mobile numbers start with: 2, 30-31, 40-42, 50-53, 60-61, 71, 81, 91-93 + - Landline numbers start with: 3-9 (but not mobile prefixes) + - Country code is +45 + - Common formats: XX XX XX XX or XXXX XXXX + """ + + @doc """ + Returns a random Danish phone number + + ## Examples + + iex> Faker.Phone.Dk.number() + "31 54 26 46" + iex> Faker.Phone.Dk.number() + "94 83 29 70" + iex> Faker.Phone.Dk.number() + "89 35 70 20" + iex> Faker.Phone.Dk.number() + "87 32 09 73" + """ + @spec number() :: String.t() + def number do + if Faker.random_between(0, 1) == 0 do + mobile_number() + else + landline_number() + end + end + + @doc """ + Returns a random Danish mobile phone number + + ## Examples + + iex> Faker.Phone.Dk.mobile_number() + "24 15 42 64" + iex> Faker.Phone.Dk.mobile_number() + "26 10 83 29" + iex> Faker.Phone.Dk.mobile_number() + "41 05 23 57" + iex> Faker.Phone.Dk.mobile_number() + "92 20 30 32" + """ + @spec mobile_number() :: String.t() + def mobile_number do + prefix = mobile_prefix() + suffix = generate_suffix(6) + format_number("#{prefix}#{suffix}") + end + + @doc """ + Returns a random Danish mobile phone number + + ## Examples + + iex> Faker.Phone.Dk.cell_number() + "24 15 42 64" + iex> Faker.Phone.Dk.cell_number() + "26 10 83 29" + iex> Faker.Phone.Dk.cell_number() + "41 05 23 57" + iex> Faker.Phone.Dk.cell_number() + "92 20 30 32" + """ + @spec cell_number() :: String.t() + defdelegate cell_number, to: __MODULE__, as: :mobile_number + + @doc """ + Returns a random Danish landline phone number + + ## Examples + + iex> Faker.Phone.Dk.landline_number() + "94 15 42 64" + iex> Faker.Phone.Dk.landline_number() + "43 10 83 29" + iex> Faker.Phone.Dk.landline_number() + "62 05 23 57" + iex> Faker.Phone.Dk.landline_number() + "43 20 30 32" + """ + @spec landline_number() :: String.t() + def landline_number do + prefix = landline_prefix() + suffix = generate_suffix(6) + format_number("#{prefix}#{suffix}") + end + + @doc """ + Returns a random Danish phone number with international format + + ## Examples + + iex> Faker.Phone.Dk.international_number() + "+45 31 54 26 46" + iex> Faker.Phone.Dk.international_number() + "+45 94 83 29 70" + iex> Faker.Phone.Dk.international_number() + "+45 89 35 70 20" + iex> Faker.Phone.Dk.international_number() + "+45 87 32 09 73" + """ + @spec international_number() :: String.t() + def international_number do + "+45 #{number()}" + end + + # Mobile number prefixes + sampler(:mobile_prefix, [ + "20", + "21", + "22", + "23", + "24", + "25", + "26", + "27", + "28", + "29", + "30", + "31", + "40", + "41", + "42", + "50", + "51", + "52", + "53", + "60", + "61", + "71", + "81", + "91", + "92", + "93" + ]) + + # Landline prefixes (excluding mobile prefixes) + sampler(:landline_prefix, [ + "32", + "33", + "34", + "35", + "36", + "37", + "38", + "39", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "54", + "55", + "56", + "57", + "58", + "59", + "62", + "63", + "64", + "65", + "66", + "67", + "68", + "69", + "70", + "72", + "73", + "74", + "75", + "76", + "77", + "78", + "79", + "80", + "82", + "83", + "84", + "85", + "86", + "87", + "88", + "89", + "90", + "94", + "95", + "96", + "97", + "98", + "99" + ]) + + # Generate remaining digits + defp generate_suffix(length) do + 1..length + |> Enum.map(fn _ -> Faker.random_between(0, 9) end) + |> Enum.join() + end + + # Format the 8-digit number as XX XX XX XX + defp format_number(number) do + <> = number + "#{<>} #{<>} #{<>} #{<>}" + end +end diff --git a/test/faker/phone_test.exs b/test/faker/phone_test.exs index b52949916..24038c550 100644 --- a/test/faker/phone_test.exs +++ b/test/faker/phone_test.exs @@ -5,4 +5,5 @@ defmodule Faker.PhoneTest do doctest Faker.Phone.EnUs doctest Faker.Phone.Hy doctest Faker.Phone.PtBr + doctest Faker.Phone.Dk end From 46a23152ee2d0f6ea8e9727044d6d57e22ef95bf Mon Sep 17 00:00:00 2001 From: Philip Munksgaard Date: Mon, 18 Aug 2025 13:15:28 +0200 Subject: [PATCH 5/7] Update USAGE.md with Danish modules --- USAGE.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/USAGE.md b/USAGE.md index a323a03c6..216b34705 100644 --- a/USAGE.md +++ b/USAGE.md @@ -1,6 +1,7 @@ - [Faker.Address](lib/faker/address.ex) +- [Faker.Address.Dk](lib/faker/address/dk.ex) - [Faker.Address.En](lib/faker/address/en.ex) - [Faker.Address.Es](lib/faker/address/es.ex) - [Faker.Address.Hy](lib/faker/address/hy.ex) @@ -40,6 +41,7 @@ - [Faker.Commerce.Hy](lib/faker/commerce/hy.ex) - [Faker.Commerce.PtBr](lib/faker/commerce/pt_br.ex) - [Faker.Company](lib/faker/company.ex) +- [Faker.Company.Dk](lib/faker/company/dk.ex) - [Faker.Company.En](lib/faker/company/en.ex) - [Faker.Company.Hy](lib/faker/company/hy.ex) - [Faker.Currency](lib/faker/currency.ex) @@ -88,12 +90,14 @@ - [Faker.Person](lib/faker/person.ex) +- [Faker.Person.Dk](lib/faker/person/dk.ex) - [Faker.Person.En](lib/faker/person/en.ex) - [Faker.Person.Es](lib/faker/person/es.ex) - [Faker.Person.Fr](lib/faker/person/fr.ex) - [Faker.Person.Hy](lib/faker/person/hy.ex) - [Faker.Person.It](lib/faker/person/it.ex) - [Faker.Person.PtBr](lib/faker/person/pt_br.ex) +- [Faker.Phone.Dk](lib/faker/phone/dk.ex) - [Faker.Phone.EnUs](lib/faker/phone/en_us.ex) - [Faker.Phone.EnGb](lib/faker/phone/en_gb.ex) - [Faker.Phone.Hy](lib/faker/phone/hy.ex) From f4def929dd58461ff100ba37a6837298a8302e2e Mon Sep 17 00:00:00 2001 From: Philip Munksgaard Date: Tue, 19 Aug 2025 13:04:52 +0200 Subject: [PATCH 6/7] Ooops, should've been Da, not Dk --- USAGE.md | 8 +-- lib/faker/address/{dk.ex => da.ex} | 58 ++++++++++----------- lib/faker/company/{dk.ex => da.ex} | 84 +++++++++++++++--------------- lib/faker/person/{dk.ex => da.ex} | 42 +++++++-------- lib/faker/phone/{dk.ex => da.ex} | 42 +++++++-------- test/faker/address_test.exs | 2 +- test/faker/company_test.exs | 2 +- test/faker/person_test.exs | 2 +- test/faker/phone_test.exs | 2 +- 9 files changed, 121 insertions(+), 121 deletions(-) rename lib/faker/address/{dk.ex => da.ex} (81%) rename lib/faker/company/{dk.ex => da.ex} (83%) rename lib/faker/person/{dk.ex => da.ex} (78%) rename lib/faker/phone/{dk.ex => da.ex} (78%) diff --git a/USAGE.md b/USAGE.md index 216b34705..11befd985 100644 --- a/USAGE.md +++ b/USAGE.md @@ -1,7 +1,7 @@ - [Faker.Address](lib/faker/address.ex) -- [Faker.Address.Dk](lib/faker/address/dk.ex) +- [Faker.Address.Da](lib/faker/address/da.ex) - [Faker.Address.En](lib/faker/address/en.ex) - [Faker.Address.Es](lib/faker/address/es.ex) - [Faker.Address.Hy](lib/faker/address/hy.ex) @@ -41,7 +41,7 @@ - [Faker.Commerce.Hy](lib/faker/commerce/hy.ex) - [Faker.Commerce.PtBr](lib/faker/commerce/pt_br.ex) - [Faker.Company](lib/faker/company.ex) -- [Faker.Company.Dk](lib/faker/company/dk.ex) +- [Faker.Company.Da](lib/faker/company/da.ex) - [Faker.Company.En](lib/faker/company/en.ex) - [Faker.Company.Hy](lib/faker/company/hy.ex) - [Faker.Currency](lib/faker/currency.ex) @@ -90,14 +90,14 @@ - [Faker.Person](lib/faker/person.ex) -- [Faker.Person.Dk](lib/faker/person/dk.ex) +- [Faker.Person.Da](lib/faker/person/da.ex) - [Faker.Person.En](lib/faker/person/en.ex) - [Faker.Person.Es](lib/faker/person/es.ex) - [Faker.Person.Fr](lib/faker/person/fr.ex) - [Faker.Person.Hy](lib/faker/person/hy.ex) - [Faker.Person.It](lib/faker/person/it.ex) - [Faker.Person.PtBr](lib/faker/person/pt_br.ex) -- [Faker.Phone.Dk](lib/faker/phone/dk.ex) +- [Faker.Phone.Da](lib/faker/phone/da.ex) - [Faker.Phone.EnUs](lib/faker/phone/en_us.ex) - [Faker.Phone.EnGb](lib/faker/phone/en_gb.ex) - [Faker.Phone.Hy](lib/faker/phone/hy.ex) diff --git a/lib/faker/address/dk.ex b/lib/faker/address/da.ex similarity index 81% rename from lib/faker/address/dk.ex rename to lib/faker/address/da.ex index c2bea4075..03b2f2530 100644 --- a/lib/faker/address/dk.ex +++ b/lib/faker/address/da.ex @@ -1,4 +1,4 @@ -defmodule Faker.Address.Dk do +defmodule Faker.Address.Da do import Faker, only: [sampler: 2] @moduledoc """ @@ -10,13 +10,13 @@ defmodule Faker.Address.Dk do ## Examples - iex> Faker.Address.Dk.building_number() + iex> Faker.Address.Da.building_number() "115" - iex> Faker.Address.Dk.building_number() + iex> Faker.Address.Da.building_number() "126" - iex> Faker.Address.Dk.building_number() + iex> Faker.Address.Da.building_number() "161" - iex> Faker.Address.Dk.building_number() + iex> Faker.Address.Da.building_number() "183" """ @spec building_number() :: String.t() @@ -31,13 +31,13 @@ defmodule Faker.Address.Dk do ## Examples - iex> Faker.Address.Dk.city() + iex> Faker.Address.Da.city() "Lillerød" - iex> Faker.Address.Dk.city() + iex> Faker.Address.Da.city() "Ringsted" - iex> Faker.Address.Dk.city() + iex> Faker.Address.Da.city() "Haderslev" - iex> Faker.Address.Dk.city() + iex> Faker.Address.Da.city() "Skanderborg" """ @spec city() :: String.t() @@ -98,13 +98,13 @@ defmodule Faker.Address.Dk do ## Examples - iex> Faker.Address.Dk.country() + iex> Faker.Address.Da.country() "Saudi-Arabien" - iex> Faker.Address.Dk.country() + iex> Faker.Address.Da.country() "Tyskland" - iex> Faker.Address.Dk.country() + iex> Faker.Address.Da.country() "Saudi-Arabien" - iex> Faker.Address.Dk.country() + iex> Faker.Address.Da.country() "Grønland" """ @spec country() :: String.t() @@ -191,13 +191,13 @@ defmodule Faker.Address.Dk do ## Examples - iex> Faker.Address.Dk.secondary_address() + iex> Faker.Address.Da.secondary_address() "1. sal tv" - iex> Faker.Address.Dk.secondary_address() + iex> Faker.Address.Da.secondary_address() "4. tv" - iex> Faker.Address.Dk.secondary_address() + iex> Faker.Address.Da.secondary_address() "6. sal th" - iex> Faker.Address.Dk.secondary_address() + iex> Faker.Address.Da.secondary_address() "st. th" """ @spec secondary_address() :: String.t() @@ -222,13 +222,13 @@ defmodule Faker.Address.Dk do ## Examples - iex> Faker.Address.Dk.street_name() + iex> Faker.Address.Da.street_name() "Marie Johansens Vej" - iex> Faker.Address.Dk.street_name() + iex> Faker.Address.Da.street_name() "Søndergade" - iex> Faker.Address.Dk.street_name() + iex> Faker.Address.Da.street_name() "Christians Alle" - iex> Faker.Address.Dk.street_name() + iex> Faker.Address.Da.street_name() "Hovedgaden" """ @spec street_name() :: String.t() @@ -290,13 +290,13 @@ defmodule Faker.Address.Dk do ## Examples - iex> Faker.Address.Dk.street_address() + iex> Faker.Address.Da.street_address() "Søndergade 14" - iex> Faker.Address.Dk.street_address() + iex> Faker.Address.Da.street_address() "Bredgade 161a" - iex> Faker.Address.Dk.street_address() + iex> Faker.Address.Da.street_address() "Kirketorv 197, 5. sal tv" - iex> Faker.Address.Dk.street_address() + iex> Faker.Address.Da.street_address() "Kirketorv 17c" """ @spec street_address() :: String.t() @@ -318,13 +318,13 @@ defmodule Faker.Address.Dk do ## Examples - iex> Faker.Address.Dk.zip_code() + iex> Faker.Address.Da.zip_code() "0154" - iex> Faker.Address.Dk.zip_code() + iex> Faker.Address.Da.zip_code() "2646" - iex> Faker.Address.Dk.zip_code() + iex> Faker.Address.Da.zip_code() "1083" - iex> Faker.Address.Dk.zip_code() + iex> Faker.Address.Da.zip_code() "2970" """ @spec zip_code() :: String.t() diff --git a/lib/faker/company/dk.ex b/lib/faker/company/da.ex similarity index 83% rename from lib/faker/company/dk.ex rename to lib/faker/company/da.ex index 177bfa046..1848e092d 100644 --- a/lib/faker/company/dk.ex +++ b/lib/faker/company/da.ex @@ -1,7 +1,7 @@ -defmodule Faker.Company.Dk do +defmodule Faker.Company.Da do import Faker, only: [sampler: 2] - alias Faker.Person.Dk, as: Person + alias Faker.Person.Da, as: Person @moduledoc """ Functions for company data in Danish @@ -12,13 +12,13 @@ defmodule Faker.Company.Dk do ## Examples - iex> Faker.Company.Dk.bs() + iex> Faker.Company.Da.bs() "beskytte lokale løsninger" - iex> Faker.Company.Dk.bs() + iex> Faker.Company.Da.bs() "etablere skalerbare frameworks" - iex> Faker.Company.Dk.bs() + iex> Faker.Company.Da.bs() "verificere intelligente partnerskaber" - iex> Faker.Company.Dk.bs() + iex> Faker.Company.Da.bs() "synkronisere cloud-baserede interfaces" """ @spec bs() :: String.t() @@ -29,13 +29,13 @@ defmodule Faker.Company.Dk do ## Examples - iex> Faker.Company.Dk.bullshit() + iex> Faker.Company.Da.bullshit() "databaserede" - iex> Faker.Company.Dk.bullshit() + iex> Faker.Company.Da.bullshit() "lokale" - iex> Faker.Company.Dk.bullshit() + iex> Faker.Company.Da.bullshit() "innovative" - iex> Faker.Company.Dk.bullshit() + iex> Faker.Company.Da.bullshit() "AI-drevne" """ @spec bullshit() :: String.t() @@ -82,13 +82,13 @@ defmodule Faker.Company.Dk do ## Examples - iex> Faker.Company.Dk.bullshit_prefix() + iex> Faker.Company.Da.bullshit_prefix() "beskytte" - iex> Faker.Company.Dk.bullshit_prefix() + iex> Faker.Company.Da.bullshit_prefix() "sikre" - iex> Faker.Company.Dk.bullshit_prefix() + iex> Faker.Company.Da.bullshit_prefix() "accelerere" - iex> Faker.Company.Dk.bullshit_prefix() + iex> Faker.Company.Da.bullshit_prefix() "etablere" """ @spec bullshit_prefix() :: String.t() @@ -136,13 +136,13 @@ defmodule Faker.Company.Dk do ## Examples - iex> Faker.Company.Dk.bullshit_suffix() + iex> Faker.Company.Da.bullshit_suffix() "strategier" - iex> Faker.Company.Dk.bullshit_suffix() + iex> Faker.Company.Da.bullshit_suffix() "frameworks" - iex> Faker.Company.Dk.bullshit_suffix() + iex> Faker.Company.Da.bullshit_suffix() "løsninger" - iex> Faker.Company.Dk.bullshit_suffix() + iex> Faker.Company.Da.bullshit_suffix() "metodologier" """ @spec bullshit_suffix() :: String.t() @@ -189,13 +189,13 @@ defmodule Faker.Company.Dk do ## Examples - iex> Faker.Company.Dk.buzzword() + iex> Faker.Company.Da.buzzword() "fremtidssikret" - iex> Faker.Company.Dk.buzzword() + iex> Faker.Company.Da.buzzword() "digital" - iex> Faker.Company.Dk.buzzword() + iex> Faker.Company.Da.buzzword() "intuitive" - iex> Faker.Company.Dk.buzzword() + iex> Faker.Company.Da.buzzword() "personaliseret" """ @spec buzzword() :: String.t() @@ -247,13 +247,13 @@ defmodule Faker.Company.Dk do ## Examples - iex> Faker.Company.Dk.buzzword_prefix() + iex> Faker.Company.Da.buzzword_prefix() "Centraliseret" - iex> Faker.Company.Dk.buzzword_prefix() + iex> Faker.Company.Da.buzzword_prefix() "Kundefokuseret" - iex> Faker.Company.Dk.buzzword_prefix() + iex> Faker.Company.Da.buzzword_prefix() "Optimeret" - iex> Faker.Company.Dk.buzzword_prefix() + iex> Faker.Company.Da.buzzword_prefix() "Programmerbar" """ @spec buzzword_prefix() :: String.t() @@ -321,13 +321,13 @@ defmodule Faker.Company.Dk do ## Examples - iex> Faker.Company.Dk.buzzword_suffix() + iex> Faker.Company.Da.buzzword_suffix() "lokalt netværk" - iex> Faker.Company.Dk.buzzword_suffix() + iex> Faker.Company.Da.buzzword_suffix() "taskforce" - iex> Faker.Company.Dk.buzzword_suffix() + iex> Faker.Company.Da.buzzword_suffix() "projektion" - iex> Faker.Company.Dk.buzzword_suffix() + iex> Faker.Company.Da.buzzword_suffix() "arkitektur" """ @spec buzzword_suffix() :: String.t() @@ -435,13 +435,13 @@ defmodule Faker.Company.Dk do ## Examples - iex> Faker.Company.Dk.catch_phrase() + iex> Faker.Company.Da.catch_phrase() "Centraliseret digital projektion" - iex> Faker.Company.Dk.catch_phrase() + iex> Faker.Company.Da.catch_phrase() "Programmerbar social applikation" - iex> Faker.Company.Dk.catch_phrase() + iex> Faker.Company.Da.catch_phrase() "Overvåget intelligent definition" - iex> Faker.Company.Dk.catch_phrase() + iex> Faker.Company.Da.catch_phrase() "Distribueret stabil tidsramme" """ @spec catch_phrase() :: String.t() @@ -452,13 +452,13 @@ defmodule Faker.Company.Dk do ## Examples - iex> Faker.Company.Dk.name() + iex> Faker.Company.Da.name() "Jacobsen og Sønner" - iex> Faker.Company.Dk.name() + iex> Faker.Company.Da.name() "Kristensen, Henriksen og Jørgensen" - iex> Faker.Company.Dk.name() + iex> Faker.Company.Da.name() "Schmidt, Møller og Olsen" - iex> Faker.Company.Dk.name() + iex> Faker.Company.Da.name() "Sørensen-Hansen" """ @spec name() :: String.t() @@ -475,13 +475,13 @@ defmodule Faker.Company.Dk do ## Examples - iex> Faker.Company.Dk.suffix() + iex> Faker.Company.Da.suffix() "Holding" - iex> Faker.Company.Dk.suffix() + iex> Faker.Company.Da.suffix() "ApS" - iex> Faker.Company.Dk.suffix() + iex> Faker.Company.Da.suffix() "og Sønner" - iex> Faker.Company.Dk.suffix() + iex> Faker.Company.Da.suffix() "A/S" """ @spec suffix() :: String.t() diff --git a/lib/faker/person/dk.ex b/lib/faker/person/da.ex similarity index 78% rename from lib/faker/person/dk.ex rename to lib/faker/person/da.ex index 3e12160c1..46cc92eaa 100644 --- a/lib/faker/person/dk.ex +++ b/lib/faker/person/da.ex @@ -1,4 +1,4 @@ -defmodule Faker.Person.Dk do +defmodule Faker.Person.Da do import Faker, only: [sampler: 2] @moduledoc """ @@ -10,13 +10,13 @@ defmodule Faker.Person.Dk do ## Examples - iex> Faker.Person.Dk.name() + iex> Faker.Person.Da.name() "Jonathan Jacobsen" - iex> Faker.Person.Dk.name() + iex> Faker.Person.Da.name() "Victor Knudsen" - iex> Faker.Person.Dk.name() + iex> Faker.Person.Da.name() "Naja Henriksen" - iex> Faker.Person.Dk.name() + iex> Faker.Person.Da.name() "Josefine Poulsen" """ @spec name() :: String.t() @@ -27,13 +27,13 @@ defmodule Faker.Person.Dk do ## Examples - iex> Faker.Person.Dk.first_name() + iex> Faker.Person.Da.first_name() "Jonathan" - iex> Faker.Person.Dk.first_name() + iex> Faker.Person.Da.first_name() "Liam" - iex> Faker.Person.Dk.first_name() + iex> Faker.Person.Da.first_name() "Victor" - iex> Faker.Person.Dk.first_name() + iex> Faker.Person.Da.first_name() "Freja" """ @spec first_name() :: String.t() @@ -106,13 +106,13 @@ defmodule Faker.Person.Dk do ## Examples - iex> Faker.Person.Dk.last_name() + iex> Faker.Person.Da.last_name() "Thomsen" - iex> Faker.Person.Dk.last_name() + iex> Faker.Person.Da.last_name() "Jacobsen" - iex> Faker.Person.Dk.last_name() + iex> Faker.Person.Da.last_name() "Mikkelsen" - iex> Faker.Person.Dk.last_name() + iex> Faker.Person.Da.last_name() "Knudsen" """ @spec last_name() :: String.t() @@ -161,13 +161,13 @@ defmodule Faker.Person.Dk do ## Examples - iex> Faker.Person.Dk.title() + iex> Faker.Person.Da.title() "Konsulent" - iex> Faker.Person.Dk.title() + iex> Faker.Person.Da.title() "Manager" - iex> Faker.Person.Dk.title() + iex> Faker.Person.Da.title() "Projektleder" - iex> Faker.Person.Dk.title() + iex> Faker.Person.Da.title() "Leder" """ @spec title() :: String.t() @@ -195,13 +195,13 @@ defmodule Faker.Person.Dk do ## Examples - iex> Faker.Person.Dk.prefix() + iex> Faker.Person.Da.prefix() "Frk." - iex> Faker.Person.Dk.prefix() + iex> Faker.Person.Da.prefix() "Fru" - iex> Faker.Person.Dk.prefix() + iex> Faker.Person.Da.prefix() "Dr." - iex> Faker.Person.Dk.prefix() + iex> Faker.Person.Da.prefix() "Hr." """ @spec prefix() :: String.t() diff --git a/lib/faker/phone/dk.ex b/lib/faker/phone/da.ex similarity index 78% rename from lib/faker/phone/dk.ex rename to lib/faker/phone/da.ex index 8dba17388..e18f7cd22 100644 --- a/lib/faker/phone/dk.ex +++ b/lib/faker/phone/da.ex @@ -1,4 +1,4 @@ -defmodule Faker.Phone.Dk do +defmodule Faker.Phone.Da do import Faker, only: [sampler: 2] @moduledoc """ @@ -16,13 +16,13 @@ defmodule Faker.Phone.Dk do ## Examples - iex> Faker.Phone.Dk.number() + iex> Faker.Phone.Da.number() "31 54 26 46" - iex> Faker.Phone.Dk.number() + iex> Faker.Phone.Da.number() "94 83 29 70" - iex> Faker.Phone.Dk.number() + iex> Faker.Phone.Da.number() "89 35 70 20" - iex> Faker.Phone.Dk.number() + iex> Faker.Phone.Da.number() "87 32 09 73" """ @spec number() :: String.t() @@ -39,13 +39,13 @@ defmodule Faker.Phone.Dk do ## Examples - iex> Faker.Phone.Dk.mobile_number() + iex> Faker.Phone.Da.mobile_number() "24 15 42 64" - iex> Faker.Phone.Dk.mobile_number() + iex> Faker.Phone.Da.mobile_number() "26 10 83 29" - iex> Faker.Phone.Dk.mobile_number() + iex> Faker.Phone.Da.mobile_number() "41 05 23 57" - iex> Faker.Phone.Dk.mobile_number() + iex> Faker.Phone.Da.mobile_number() "92 20 30 32" """ @spec mobile_number() :: String.t() @@ -60,13 +60,13 @@ defmodule Faker.Phone.Dk do ## Examples - iex> Faker.Phone.Dk.cell_number() + iex> Faker.Phone.Da.cell_number() "24 15 42 64" - iex> Faker.Phone.Dk.cell_number() + iex> Faker.Phone.Da.cell_number() "26 10 83 29" - iex> Faker.Phone.Dk.cell_number() + iex> Faker.Phone.Da.cell_number() "41 05 23 57" - iex> Faker.Phone.Dk.cell_number() + iex> Faker.Phone.Da.cell_number() "92 20 30 32" """ @spec cell_number() :: String.t() @@ -77,13 +77,13 @@ defmodule Faker.Phone.Dk do ## Examples - iex> Faker.Phone.Dk.landline_number() + iex> Faker.Phone.Da.landline_number() "94 15 42 64" - iex> Faker.Phone.Dk.landline_number() + iex> Faker.Phone.Da.landline_number() "43 10 83 29" - iex> Faker.Phone.Dk.landline_number() + iex> Faker.Phone.Da.landline_number() "62 05 23 57" - iex> Faker.Phone.Dk.landline_number() + iex> Faker.Phone.Da.landline_number() "43 20 30 32" """ @spec landline_number() :: String.t() @@ -98,13 +98,13 @@ defmodule Faker.Phone.Dk do ## Examples - iex> Faker.Phone.Dk.international_number() + iex> Faker.Phone.Da.international_number() "+45 31 54 26 46" - iex> Faker.Phone.Dk.international_number() + iex> Faker.Phone.Da.international_number() "+45 94 83 29 70" - iex> Faker.Phone.Dk.international_number() + iex> Faker.Phone.Da.international_number() "+45 89 35 70 20" - iex> Faker.Phone.Dk.international_number() + iex> Faker.Phone.Da.international_number() "+45 87 32 09 73" """ @spec international_number() :: String.t() diff --git a/test/faker/address_test.exs b/test/faker/address_test.exs index 67e344bc3..5e1837309 100644 --- a/test/faker/address_test.exs +++ b/test/faker/address_test.exs @@ -2,7 +2,7 @@ defmodule Faker.AddressTest do use ExUnit.Case, async: true doctest Faker.Address - doctest Faker.Address.Dk + doctest Faker.Address.Da doctest Faker.Address.En doctest Faker.Address.Es doctest Faker.Address.Hy diff --git a/test/faker/company_test.exs b/test/faker/company_test.exs index 6b0d27564..0e1d3312c 100644 --- a/test/faker/company_test.exs +++ b/test/faker/company_test.exs @@ -4,5 +4,5 @@ defmodule Faker.CompanyTest do doctest Faker.Company doctest Faker.Company.En doctest Faker.Company.Hy - doctest Faker.Company.Dk + doctest Faker.Company.Da end diff --git a/test/faker/person_test.exs b/test/faker/person_test.exs index 86b42e864..c7c739a7a 100644 --- a/test/faker/person_test.exs +++ b/test/faker/person_test.exs @@ -2,7 +2,7 @@ defmodule Faker.PersonTest do use ExUnit.Case, async: true doctest Faker.Person - doctest Faker.Person.Dk + doctest Faker.Person.Da doctest Faker.Person.En doctest Faker.Person.Es doctest Faker.Person.Fr diff --git a/test/faker/phone_test.exs b/test/faker/phone_test.exs index 24038c550..cecde8f40 100644 --- a/test/faker/phone_test.exs +++ b/test/faker/phone_test.exs @@ -5,5 +5,5 @@ defmodule Faker.PhoneTest do doctest Faker.Phone.EnUs doctest Faker.Phone.Hy doctest Faker.Phone.PtBr - doctest Faker.Phone.Dk + doctest Faker.Phone.Da end From de746e9d9e6444bd4f45b865c846ef42968aed68 Mon Sep 17 00:00:00 2001 From: Philip Munksgaard Date: Wed, 13 May 2026 08:33:14 +0200 Subject: [PATCH 7/7] Address credo warning --- lib/faker/phone/da.ex | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/faker/phone/da.ex b/lib/faker/phone/da.ex index e18f7cd22..a4cdc1143 100644 --- a/lib/faker/phone/da.ex +++ b/lib/faker/phone/da.ex @@ -202,9 +202,7 @@ defmodule Faker.Phone.Da do # Generate remaining digits defp generate_suffix(length) do - 1..length - |> Enum.map(fn _ -> Faker.random_between(0, 9) end) - |> Enum.join() + Enum.map_join(1..length, fn _ -> Faker.random_between(0, 9) end) end # Format the 8-digit number as XX XX XX XX