# `mix isbn.update_ranges`
[🔗](https://github.com/solar05/exisbn/blob/main/lib/tasks/isbn/update_ranges.ex#L1)

Uses for library needs to regenerate datasets.

# `generate_module`

```elixir
@spec generate_module(map(), String.t()) :: String.t()
```

Renders the `Exisbn.Regions` module source from a dataset map.

`module_name` defaults to `"Exisbn.Regions"` and can be overridden in tests
to avoid redefining the live module.

# `parse_range_message`

```elixir
@spec parse_range_message(binary()) :: [
  %{prefix: String.t(), agency: String.t(), ranges: [[String.t()]]}
]
```

Parses an ISBN RangeMessage XML binary and returns a list of group maps.

Each map has keys `:prefix`, `:agency`, and `:ranges`, where `:ranges` is a
list of `[lo, hi]` string pairs with leading zeros preserved.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
