class BomDB::Import::Verses
Public Instance Methods
import_json(data, **args)
click to toggle source
Expected data format is: [
{ "range_id": Int, # the mericope range ID "book": String, # the name of the book, e.g. 1 Nephi "chapter": Int, # the chapter number "verse": Int # the verse number }, ...
]
# File lib/bomdb/import/verses.rb, line 19 def import_json(data, **args) book, chapter = nil, nil verse_model = Models::Verse.new(@db) data.each do |r| if r['chapter'] != chapter || r['book'] != book # Create a heading per chapter Models::Verse.new(@db).find_or_create( chapter: r['chapter'], verse: nil, book_name: r['book'], heading: true ) chapter = r['chapter'] end if r['book'] != book puts "Importing chapters & verses for '#{r['book']}'" book = r['book'] end verse_model.find_or_create( chapter: r['chapter'], verse: r['verse'], book_name: r['book'], range_id: r['range_id'] ) end Import::Result.new(success: true) rescue Sequel::UniqueConstraintViolation => e Import::Result.new(success: false, error: e) end