shuwariafrica / world   0.0.1

Apache License 2.0 Website GitHub

Scala toolkit for modelling and manipulation of real-world domain concepts

Scala versions: 3.x
Scala.js versions: 1.x
Scala Native versions: 0.5

world – Real-World Domain Concepts for Scala

License Build Status

A collection of Scala libraries for type-safe modelling and manipulation of real-world domain concepts.


Documentation


Data Management

Country Data

  • Sources:
    • countries-iso3166.csv (ISO 3166-1, UN Statistics Division)
    • supplemental-countries.yml (additional/reserved codes)
  • Generated output:
    • modules/locale/src/main/scala/africa/shuwari/locale/country/Countries.scala

Update process:

  1. Download latest ISO 3166 data.
  2. Update countries-iso3166.csv and/or supplemental-countries.yml.
  3. Run:
    sbt locale/compile

Currency Data

  • Sources:
    • currencies.yml (ISO 4217, SIX Group)
    • currency-usage.yml (currency-to-country mappings)
  • Generated output:
    • modules/money/src/main/scala/africa/shuwari/money/currency/Currencies.scala
    • modules/money/src/main/scala/africa/shuwari/money/currency/HistoricCurrencies.scala
    • modules/money/src/main/scala/africa/shuwari/money/currency/CurrencyUsageInstances.scala
    • modules/money/src/main/scala/africa/shuwari/money/CurrencyFactorySyntax.scala

Update process:

  1. Download latest ISO 4217 and mapping data.
  2. Update currencies.yml and currency-usage.yml (validate country codes).
  3. Run:
    sbt money/compile

Documentation

  • Scaladoc 3 for API documentation
  • mdoc guides for usage examples and developer notes

Generate documentation:

sbt generateUnidoc
cd target/scala-3.7.3/unidoc # Or current Scala specific target directory
python3 -m http.server 8000

Adding Domain Data

Currencies

  1. Update currencies.yml.
  2. Update currency-usage.yml.
  3. sbt money/compile
  4. Add relevant tests.
  5. Update documentation if needed.

Countries

  1. Update countries-iso3166.csv (or supplemental-countries.yml).
  2. sbt locale/compile
  3. Add relevant tests.
  4. Update currency usage if applicable.

Project Resources


License

Copyright © 2023–2025 Shuwari Africa Ltd.

Licensed under the Apache License, Version 2.0 (the "Licence");
you may not use this file except in compliance with the Licence.
You may obtain a copy of the Licence at:

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the Licence is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied. See the Licence for the specific language
governing permissions and limitations under the Licence.