Translate

lunes, 9 de diciembre de 2024

¿Cómo Crear una Librería en Elixir?


Elixir es un lenguaje poderoso y flexible, ideal para crear librerías reutilizables. En esta guía, aprenderás cómo iniciar y publicar tu propia librería.

1. Inicializando el Proyecto


Para empezar, crea un nuevo proyecto con mix:

mix new mi_libreria --module MiLibreria


Esto generará una estructura básica con carpetas como `lib` (para el código) y `mix.exs` (configuración del proyecto).  

En el archivo `mix.exs`, ajusta la metadata básica, como nombre y descripción, para que sea más descriptiva:


def project do

  [

    app: :mi_libreria,

    version: "0.1.0",

    elixir: "~> 1.15",

    description: "Una librería simple para manipular cadenas",

    start_permanent: Mix.env() == :prod

  ]

end


2. Implementando la Funcionalidad


Agregamos lógica en lib/mi_libreria.ex. Por ejemplo, una función para convertir cadenas a mayúsculas:


defmodule MiLibreria do

  @moduledoc """

  MiLibreria es una colección de funciones útiles para cadenas.

  """


  @doc """

  Convierte una cadena en mayúsculas.


  ## Ejemplo

      iex> MiLibreria.convertir_mayusculas("hola")

      "HOLA"

  """

  def convertir_mayusculas(cadena) when is_binary(cadena) do

    String.upcase(cadena)

  end

end


La documentación (`@moduledoc` y `@doc`) ayuda a otros desarrolladores a entender y usar tu librería.


3. Generando Documentación con ExDoc


Añade `ExDoc` al archivo `mix.exs` para generar documentación en HTML:


{:ex_doc, "~> 0.29", only: :dev, runtime: false}


Instala las dependencias:


mix deps.get


Genera la documentación:


mix docs


Esto crea una carpeta `doc` con una versión navegable de tu documentación.


4. Publicando en Hex


Crea una cuenta en Hex.pm:

   Tenemos que registrarnos en Hex.pm y genera una clave de autenticación con:  


   mix hex.user register


Completa la Metadata en mix.exs:


   def project do

     [

       app: :mi_libreria,

       version: "0.1.0",

       description: "Librería para manipulación de cadenas",

       package: package_info()

     ]

   end


   defp package_info do

     [

       maintainers: ["Tu Nombre"],

       licenses: ["MIT"],

       links: %{"GitHub" => "https://github.com/tu_usuario/mi_libreria"}

     ]

   end


  Publica la librería:


   mix hex.publish


Crear una librería en Elixir es sencillo y gratificante. Con estas herramientas y pasos, puedes compartir tu trabajo con la comunidad y contribuir al crecimiento del ecosistema.