BeamLabCountries.Unions (beamlab_countries v1.0.6)

View Source

Module for working with international unions, organizations, and country groupings.

This module provides functions to query unions such as the European Union, NATO, G7, ASEAN, and other international organizations.

Examples

# Get all unions
BeamLabCountries.Unions.all()

# Get a specific union
BeamLabCountries.Unions.get("eu")

# Check if a country is a member of a union
BeamLabCountries.Unions.member?("DE", "eu")

# Get all unions a country belongs to
BeamLabCountries.Unions.for_country("DE")

Summary

Functions

Returns all unions.

Returns union codes that a country belongs to.

Returns the total number of unions.

Checks if a union exists.

Filters unions by given attribute and value.

Returns all unions that a country belongs to.

Returns one union given its code, or nil if not found.

Returns one union given its code, or raises if not found.

Checks if a country is a member of a union.

Returns all member countries of a union as Country structs.

Functions

all()

@spec all() :: [BeamLabCountries.Union.t()]

Returns all unions.

Examples

iex> unions = BeamLabCountries.Unions.all()
iex> length(unions) > 0
true

codes_for_country(country_code)

@spec codes_for_country(String.t()) :: [String.t()]

Returns union codes that a country belongs to.

Examples

iex> codes = BeamLabCountries.Unions.codes_for_country("DE")
iex> "eu" in codes
true

count()

@spec count() :: non_neg_integer()

Returns the total number of unions.

Examples

iex> BeamLabCountries.Unions.count()
13

exists?(union_code)

@spec exists?(String.t()) :: boolean()

Checks if a union exists.

Examples

iex> BeamLabCountries.Unions.exists?("eu")
true

iex> BeamLabCountries.Unions.exists?("invalid")
false

filter_by(attribute, value)

@spec filter_by(atom(), any()) :: [BeamLabCountries.Union.t()]

Filters unions by given attribute and value.

Examples

iex> unions = BeamLabCountries.Unions.filter_by(:type, :military)
iex> Enum.any?(unions, &(&1.code == "nato"))
true

for_country(country_code)

@spec for_country(String.t()) :: [BeamLabCountries.Union.t()]

Returns all unions that a country belongs to.

Examples

iex> unions = BeamLabCountries.Unions.for_country("DE")
iex> "eu" in Enum.map(unions, & &1.code)
true

get(union_code)

@spec get(String.t()) :: BeamLabCountries.Union.t() | nil

Returns one union given its code, or nil if not found.

Examples

iex> %BeamLabCountries.Union{name: name} = BeamLabCountries.Unions.get("eu")
iex> name
"European Union"

iex> BeamLabCountries.Unions.get("invalid")
nil

get!(union_code)

@spec get!(String.t()) :: BeamLabCountries.Union.t()

Returns one union given its code, or raises if not found.

Examples

iex> %BeamLabCountries.Union{name: name} = BeamLabCountries.Unions.get!("eu")
iex> name
"European Union"

member?(country_code, union_code)

@spec member?(String.t(), String.t()) :: boolean()

Checks if a country is a member of a union.

Examples

iex> BeamLabCountries.Unions.member?("DE", "eu")
true

iex> BeamLabCountries.Unions.member?("US", "eu")
false

member_countries(union_code)

@spec member_countries(String.t()) :: [BeamLabCountries.Country.t()]

Returns all member countries of a union as Country structs.

Examples

iex> countries = BeamLabCountries.Unions.member_countries("eu")
iex> length(countries)
27