Class: BibleSearch

Inherits:
Object
  • Object
show all
Defined in:
lib/biblesearch-api/client_version.rb,
lib/biblesearch-api/endpoints/books.rb,
lib/biblesearch-api/endpoints/search.rb,
lib/biblesearch-api/endpoints/verses.rb,
lib/biblesearch-api/endpoints/chapters.rb,
lib/biblesearch-api/endpoints/passages.rb,
lib/biblesearch-api/endpoints/versions.rb

Defined Under Namespace

Modules: Books, Chapters, Passages, Search, Verses, Versions

Constant Summary collapse

VERSION =
"1.2.0"

Instance Method Summary collapse

Instance Method Details

#valid_book(book_sig) ⇒ Object

accept a hash or string book signature, validate it, and return a string



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/biblesearch-api/endpoints/books.rb', line 4

def valid_book(book_sig)
  # if it's a hash, convert it to a string
  if book_sig.is_a?(Hash)
    begin
      book_sig = "#{book_sig.fetch(:version_id)}:#{book_sig.fetch(:book_id)}"
    rescue
      raise ArgumentError.new('Book signature hash must include :version_id and :book_id')
    end
  end

  # then check
  unless book_sig.match(@book_re)
    raise ArgumentError.new('Book signature must be in the form "LANGUAGE_ID-VERSION_ID:BOOK_ID"')
  end
  book_sig
end

#valid_chapter(chapter_sig) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/biblesearch-api/endpoints/chapters.rb', line 3

def valid_chapter(chapter_sig)
  if chapter_sig.is_a?(Hash)
    begin
      # chapter_sig = chapter_sig.fetch(:version_id) + ':' + chapter_sig.fetch(:book_id) +  ".#{chapter_sig.fetch(:chapter)}"
      chapter_sig = "#{valid_book(chapter_sig)}.#{chapter_sig.fetch(:chapter)}"
    rescue
      raise ArgumentError.new('Chapter signature hash must include :version_id, :book_id, and :chapter')
    end
  end

  unless chapter_sig.match(@chapter_re)
    raise ArgumentError.new('Chapter signature must be in the form "VERSION_ID:BOOK_ID.CHAPTER_NUMBER"')
  end
  chapter_sig
end

#valid_verse(verse_sig) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/biblesearch-api/endpoints/verses.rb', line 3

def valid_verse(verse_sig)
  if verse_sig.is_a?(Hash)
    begin
      verse_sig = "#{valid_chapter(verse_sig)}.#{verse_sig[:verse]}"
    rescue
      raise ArgumentError.new('Verse signature hash must include :version_id, :book_id, :chapter, and :verse')
    end
  end

  # Validate a signature string, returning a verse Mash if valid and the
  # remote request succeeds
  unless verse_sig.match(@verse_re)
    raise ArgumentError.new('Verse signature must be in the form "VERSION_ID:BOOK_ID.CHAPTER_NUMBER.VERSE_NUMBER"')
  end
  verse_sig
end