View Source BibleEx.Reference (bible_ex v0.2.1)
Represents a normalized Bible reference.
A %BibleEx.Reference{} ties together book, chapter(s), verse(s), and
derived metadata such as OSIS code, abbreviation, and the list of
BibleEx.Chapter and BibleEx.Verse structs that make up the reference.
Link to this section Summary
Functions
Builds a %BibleEx.Reference{} for a whole chapter.
Builds a %BibleEx.Reference{} for a chapter range.
Builds the most general %BibleEx.Reference{} with optional start and end.
Builds a %BibleEx.Reference{} for a single verse.
Builds a %BibleEx.Reference{} for a verse range within a chapter.
Link to this section Functions
Builds a %BibleEx.Reference{} for a whole chapter.
examples
Examples
iex> alias BibleEx.Reference
iex> ref = Reference.chapter(book: "Genesis", chapter: 1)
iex> {ref.book, ref.reference_type}
{"Genesis", :chapter}
iex> ref.reference
"Genesis 1"
Builds a %BibleEx.Reference{} for a chapter range.
The range spans from start_chapter to end_chapter, inclusive.
examples
Examples
iex> alias BibleEx.Reference
iex> ref = Reference.chapter_range(book: "Genesis", start_chapter: 1, end_chapter: 2)
iex> ref.reference
"Genesis 1-2"
iex> ref.reference_type
:chapter_range
Builds the most general %BibleEx.Reference{} with optional start and end.
This function:
- Normalizes the book name using
BibleEx.Librarian.get_book_names/1. - Computes default start and end chapters/verses when omitted.
- Loads
BibleEx.ChapterandBibleEx.Versestructs for the range. - Sets
reference,reference_type, andis_validusingBibleEx.Librarian.
Prefer calling the convenience helpers (chapter/2, verse/3,
chapter_range/3, verse_range/4) instead of this function directly
in most application code.
examples
Examples
iex> alias BibleEx.Reference
iex> ref = Reference.new(book: "Romans", start_chapter: 8, start_verse: 28, end_chapter: 8, end_verse: 30)
iex> ref.reference
"Romans 8:28-30"
iex> ref.is_valid
true
Builds a %BibleEx.Reference{} for a single verse.
examples
Examples
iex> alias BibleEx.Reference
iex> ref = Reference.verse(book: "Genesis", chapter: 1, verse: 1)
iex> {ref.book, ref.reference_type}
{"Genesis", :verse}
iex> ref.reference
"Genesis 1:1"
Builds a %BibleEx.Reference{} for a verse range within a chapter.
examples
Examples
iex> alias BibleEx.Reference
iex> ref = Reference.verse_range(book: "Matt", chapter: 2, start_verse: 4, end_verse: 10)
iex> ref.book
"Matthew"
iex> {ref.start_verse_number, ref.end_verse_number}
{4, 10}
iex> ref.reference_type
:verse_range