class RcvBible::Reference

Public Class Methods

new(reference) click to toggle source
# File lib/rcv_bible/reference.rb, line 3
def initialize(reference)
  @reference = reference
  @parsed_request = RcvBible::OneChapterBookConverter.adjust_reference(reference)
  initial_request
  verse_requests
end

Public Instance Methods

chapter_verse_count() click to toggle source
# File lib/rcv_bible/reference.rb, line 42
def chapter_verse_count
  message.sub(/.*?requested /, '').split.first.to_i
end
completed_response?() click to toggle source
# File lib/rcv_bible/reference.rb, line 34
def completed_response?
  message == "\t" || message == nil
end
error() click to toggle source
# File lib/rcv_bible/reference.rb, line 14
def error
  @error
end
initial_request() click to toggle source
# File lib/rcv_bible/reference.rb, line 10
def initial_request
  @response = HTTParty.get("https://api.lsm.org/recver.php?String=#{@parsed_request}").to_h
end
invalid_reference?() click to toggle source
# File lib/rcv_bible/reference.rb, line 38
def invalid_reference?
  message["Bad Reference"]
end
message() click to toggle source
# File lib/rcv_bible/reference.rb, line 26
def message
  @message ||= @response["request"]["message"]
end
short_chapter_verses_array() click to toggle source
# File lib/rcv_bible/reference.rb, line 30
def short_chapter_verses_array
  @short_chapter_verses_array ||= @response["request"]["verses"]["verse"]
end
verse_requests() click to toggle source
# File lib/rcv_bible/reference.rb, line 46
def verse_requests
  if completed_response?
    @verses = short_chapter_verses_array
  elsif invalid_reference?
    @verses = []
    @error = "Bad Reference"
  else
    long_chapter_verses_array = []
    RcvBible::ChapterRangeMaker.new(chapter_verse_count).verse_ranges.each do |vr|
      verses_chunk = HTTParty.get(
                                "https://api.lsm.org/recver.php?
                                String=#{@reference}: #{vr.first}-#{vr.last}").
                                to_h["request"]["verses"]["verse"]
      long_chapter_verses_array << verses_chunk
    end
    @verses = long_chapter_verses_array.flatten
  end
end
verses() click to toggle source
# File lib/rcv_bible/reference.rb, line 22
def verses
  @verses + copyright
end