monty5811/elm-bible/1.0.0

NOTE: this package is not compatible with Elm 0.19.1

Bible

A library for working with Bible references.

format : Reference -> String

Nicely formatted Reference.

format (Reference Genesis 1 1 1 1 ) --> "Genesis 1:1"


format (Reference Genesis 1 1 11 5 ) --> "Genesis 1:1-11:5"
fromString : String -> List (Result String Reference)

Parse any references in a string.

fromString "Gen 1:1" --> [ Ok <| Reference Genesis 1 1 1 1]


fromString "Gen 1:1, Exodus 1, Luke 10:16, Acts 28:100" -->
    [Ok <| Reference Genesis 1 1 1 1
    ,Ok <| Reference Exodus 1 1 1 22
    ,Ok <| Reference  Luke 10 16 10 16
    ,Err "Invalid end verse"
    ]

Helpers

reference : Book -> Int -> Int -> Int -> Int -> Result String Reference

Generate a Reference and check it is valid

reference Genesis 1 1 1 1 --> Ok <| Reference Genesis 1 1 1 1


reference Genesis 1 1 51 1 --> Err "End chapter invalid"
numChapters : Book -> Int

Check how many chapters are in a Book

numChapters Genesis --> 50


numChapters Jude --> 1
numVerses : Book -> Int -> Int

Check how many verses are in a chapter of a Book

numVerses Genesis 50 --> 26


numVerses Psalms 119 --> 176

Types

= Reference Book Int Int Int Int

Describes a Bible Reference

`Reference book startChapter startVerse endChapter endVerse`
type Book
= Genesis
| Exodus
| Leviticus
| Numbers
| Deuteronomy
| Joshua
| Judges
| Ruth
| Samuel_1
| Samuel_2
| Kings_1
| Kings_2
| Chronicles_2
| Chronicles_1
| Ezra
| Nehemiah
| Esther
| Job
| Psalms
| Proverbs
| Ecclesiastes
| Song_of_Solomon
| Isaiah
| Jeremiah
| Lamentations
| Ezekiel
| Daniel
| Hosea
| Joel
| Amos
| Obadiah
| Jonah
| Micah
| Nahum
| Habakkuk
| Zephaniah
| Haggai
| Zechariah
| Malachi
| Matthew
| Mark
| Luke
| John
| Acts
| Romans
| Corinthians_1
| Corinthians_2
| Galatians
| Ephesians
| Philippians
| Colossians
| Thessalonians_1
| Thessalonians_2
| Timothy_1
| Timothy_2
| Titus
| Philemon
| Hebrews
| James
| Peter_1
| Peter_2
| John_1
| John_2
| John_3
| Jude
| Revelation