class TextMe::BibleExtractor

Helper Class to generate the url from a verse name

Public Instance Methods

book_name_formatter(book_name) click to toggle source

Helper Method What: It is a very long switch statement (order maintained) that transform the bible book name Input: Name of the specific book of the bible - eg. 'Psalms' Output: The You Version url specific book name

# File lib/textme.rb, line 134
def book_name_formatter(book_name)
        transformed_name = nil

        case book_name
        when"Genesis"
                transformed_name = "gen"
        when"Exodus"
                transformed_name = "exo"            
        when"Leviticus"
                transformed_name = "lev"
        when"Numbers"
                transformed_name = "num"
        when"Deuteronomy"
                transformed_name = "deu"
        when"Joshua"
                transformed_name = "jos"
        when"Judges"
                transformed_name = "jdg"
        when"Ruth"
                transformed_name = "rut"
        when"1 Samuel"
                transformed_name = "1sa"
        when"2 Samuel"
                transformed_name = "2sa"
        when"1 Kings"
                transformed_name = "1ki"
        when"2 Kings"
                transformed_name = "2ki"
        when"1 Chronicles"
                transformed_name = "1ch"
        when"2 Chronicles"
                transformed_name = "2ch"
        when"Ezra"
                transformed_name = "ezr"
        when"Nehemiah"
                transformed_name = "neh"
        when"Esther"
                transformed_name = "est"
        when "Job"
                transformed_name = "job"
        when "Psalms"
                transformed_name = "psa"
        when "Proverbs"
                transformed_name = "pro"
        when "Ecclesiastes"
                transformed_name = "ecc"
        when "Song of Songs"
                transformed_name = "sng"
        when "Isaiah"
                transformed_name = "isa"
        when "Jeremiah"
                transformed_name = "jer"
        when "Lamentations"
                transformed_name = "lam"
        when "Ezekiel"
                transformed_name = "ezk"
        when "Daniel"
                transformed_name = "dan"
        when "Hosea"
                transformed_name = "hos"
        when "Joel"
                transformed_name = "jol"
        when "Amos"
                transformed_name = "amo"
        when "Obadiah"
                transformed_name = "oba"
        when "Jonah"
                transformed_name = "jon"
        when "Micah"
                transformed_name = "mic"
        when "Nahum"
                transformed_name = "nam"
        when "Habakkuk"
                transformed_name = "hab"
        when "Zephaniah"
                transformed_name = "zep"
        when "Haggai"
                transformed_name = "hag"
        when "Zechariah"
                transformed_name = "zec"
        when "Malachi"
                transformed_name = "mal"
        when "Matthew"
                transformed_name = "mat"
        when "Mark"
                transformed_name = "mek"
        when "Luke"
                transformed_name = "luk"
        when "John"
                transformed_name = "jhn"
        when "Acts"
                transformed_name = "act"
        when "Romans"
                transformed_name = "rom"
        when "1 Corinthians"
                transformed_name = "1co"
        when "2 Corinthians"
                transformed_name = "2co"
        when "Galatians"
                transformed_name = "gal"
        when "Ephesians"
                transformed_name = "eph"
        when "Philippians"
                transformed_name = "php"
        when "Colossians"
                transformed_name = "col"
        when "1 Thessalonians"
                transformed_name = "1th"
        when "2 Thessalonians"
                transformed_name = "2th"
        when "1 Timothy"
                transformed_name = "1ti"
        when "2 Timothy"
                transformed_name = "2ti"
        when "Titus"
                transformed_name = "tit"
        when "Philemon"
                transformed_name = "phm"
        when "Hebrews"
                transformed_name = "heb"
        when "James"
                transformed_name = "jas"
        when "1 Peter"
                transformed_name = "1pe"
        when "2 Peter"
                transformed_name = "2pe"
        when "1 John"
                transformed_name = "1jn"
        when "2 John"
                transformed_name = "2jn"
        when "3 John"
                transformed_name = "3jn"
        when "Jude"
                transformed_name = "jud"
        when "Revelation"
                transformed_name = "rev"
        end
end
verse_meta_extractor(verse_name) click to toggle source

Helper Method What: Take in the verse name and return the metadata as a Hash. Input: Verse name, for example 'Proverbs 3:5-6'.

Can also accept chapter names eg. 'Romans 3' (not recommended due to the length of the chapters)

Output: Returns the book, chapter number and the specfic verse (optional) rfom the verse name

# File lib/textme.rb, line 89
def verse_meta_extractor(verse_name)
        book_list =["Genesis", "Exodus", "Leviticus", "Numbers", "Deuteronomy", "Joshua", "Judges", "Ruth", "1 Samuel", "2 Samuel", "1 Kings", "2 Kings", "1 Chronicles", "2 Chronicles", "Ezra", "Nehemiah", "Esther", "Job", "Psalms", "Proverbs", "Ecclesiastes", "Song of Songs", "Isaiah", "Jeremiah", "Lamentations", "Ezekiel", "Daniel", "Hosea", "Joel", "Amos", "Obadiah", "Jonah", "Micah", "Nahum", "Habakkuk", "Zephaniah", "Haggai", "Zechariah", "Malachi", "Matthew", "Mark", "Luke", "John", "Acts", "Romans", "1 Corinthians", "2 Corinthians", "Galatians", "Ephesians", "Philippians", "Colossians", "1 Thessalonians", "2 Thessalonians", "1 Timothy", "2 Timothy", "Titus", "Philemon", "Hebrews", "James", "1 Peter", "2 Peter", "1 John", "2 John", "3 John", "Jude", "Revelation"]
        verse_meta = {}

        #Loop through the book_list to see which book verse name contains
        for book in book_list
                if verse_name.downcase.include? book.downcase
                        verse_meta["book"] = book

                        #Split the rest of the verse name into list (chapter number + verse number)
                        verse_number = verse_name.split(book)[1].strip

                        #To check if the whole chapter is requested or specific verses
                        if verse_number.include? ':'
                                verse_meta['chapter_number'] = verse_number.split(':')[0].strip
                                verse_meta['specific_verse'] = verse_number.split(':')[1].strip
                        else
                                verse_meta['chapter_number'] = verse_number
                        end
                end
        end
        return verse_meta
end
verse_url_generator(verse_name) click to toggle source

What: Is called from the Core class. Gets the verse name and calls verse_meta_extractor.

Uses the meta data and book_name_formatter to generate th You Version url

Input: Verse name, for example 'Proverbs 3:5-6'.

Can also accept chapter names eg. 'Romans 3' (not recommended due to the length of the chapters)

Output: You version url of the verse

# File lib/textme.rb, line 118
def verse_url_generator(verse_name)
        verse_meta = verse_meta_extractor(verse_name)
        url = 'https://bible.com/bible/59/' #base url
        url = url + book_name_formatter(verse_meta['book']) + '/' #book name
        url = url + verse_meta["chapter_number"] + '/' #chapter number
        #add verse number only if not just book name
        if verse_meta['specific_verse']
                url = url + verse_meta['specific_verse']
        end
        return url
end