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-jtj.rb, line 141 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-jtj.rb, line 96 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-jtj.rb, line 125 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