Class: BomDB::Models::Verse

Inherits:
Object
  • Object
show all
Defined in:
lib/bomdb/models/verse.rb

Instance Method Summary collapse

Constructor Details

#initialize(db) ⇒ Verse

Returns a new instance of Verse.



4
5
6
# File 'lib/bomdb/models/verse.rb', line 4

def initialize(db)
  @db = db
end

Instance Method Details

#create(chapter:, verse:, book_name: nil, book_id: nil, heading: false) ⇒ Object

Create a verse and return its verse_id



19
20
21
22
23
24
25
26
# File 'lib/bomdb/models/verse.rb', line 19

def create(chapter:, verse:, book_name: nil, book_id: nil, heading: false)
  @db[:verses].insert(
    book_id:       book_by_name_or_id(book_name, book_id),
    verse_chapter: chapter,
    verse_number:  verse,
    verse_heading: heading ? 0 : nil
  )
end

#find(chapter:, verse:, book_name: nil, book_id: nil, heading: false) ⇒ Object

Find a verse and return a hash, or nil if not found



9
10
11
12
13
14
15
16
# File 'lib/bomdb/models/verse.rb', line 9

def find(chapter:, verse:, book_name: nil, book_id: nil, heading: false)
  @db[:verses].where(
    book_id:       book_by_name_or_id(book_name, book_id),
    verse_chapter: chapter,
    verse_number:  verse,
    verse_heading: heading ? 0 : nil
  ).first
end

#find_or_create(**args) ⇒ Object

Returns a verse_id after finding or creating the verse



29
30
31
32
# File 'lib/bomdb/models/verse.rb', line 29

def find_or_create(**args)
  verse = find(**args)
  (verse && verse[:verse_id]) || create(**args)
end