Module: Bible

Defined in:
lib/bible/parser.rb,
lib/bible.rb,
lib/bible/iterator.rb,
lib/bible/lookup/dr.rb,
lib/bible/lookup/nab.rb,
lib/bible/lookup/rsv.rb

Overview

Contains classes to parse bible verses and an iterator to look them up given an appropriate bible lookup class.

Defined Under Namespace

Classes: BibleIterator, BibleRefParser, BookInfo, ChapterInfo, DRLookup, NABLookup, RSVLookup

Constant Summary collapse

CanonicalBooks =

Index all books by single ‘canonical’ symbol. Keys are symbols, values are BookInfo instances.

Books =

Index all books by possible abbreviations. Keys are strings or symbols and values are BookInfo instances.

Class Method Summary collapse

Class Method Details

.[](ref, lookup = nil) ⇒ Object

Returns an iterator for the given verses, with the given lookup.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/bible.rb', line 8

def self.[](ref, lookup = nil)
  require 'iterator' unless defined? BibleIterator
  if lookup.is_a?(Symbol) || lookup.is_a?(String) 
    case lookup.to_s.downcase.strip
    when "nab"
      require 'bible/lookup/nab' unless defined?(NABLookup)
      lookup = NABLookup
    when "dr"
      require 'bible/lookup/dr' unless defined?(DRLookup)
      lookup = DRLookup 
    when "rsv"
      require 'bible/lookup/rsv' unless defined?(RSVLookup)
      lookup = RSVLookup 
    else
      raise "Unknown lookup specified: #{lookup}"
    end
  elsif lookup.nil?
    if BibleIterator.default_lookup.nil?
      require 'bible/lookup/rsv' unless defined?(RSVLookup)
      BibleIterator.default_lookup = RSVLookup
    end
  end

  return BibleIterator.new(BibleRefParser::parse(ref), lookup)
end