lib/fragmentor/parser/html_parser.ex

defmodule Fragmentor.Parser.HtmlParser do
  @moduledoc """
  Modulo
  """
  alias Fragmentor.Fragment.{Code, Html, Video}
  alias Fragmentor.Parser.HtmlParser.{ContentSplitter, FragmentMapper}

  @spec to_fragments(binary) :: list(Code.t() | Html.t() | Video.t())
  def to_fragments(nil), do: []

  def to_fragments(""), do: []

  def to_fragments(html_content) do
    html_content
    |> ContentSplitter.split()
    |> Enum.map(&FragmentMapper.to_struct/1)
  end
end