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:

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