Skip to content

Commit

Permalink
fix bug where BOOK references were returning as CHAPTER
Browse files Browse the repository at this point in the history
  • Loading branch information
mazz committed Jun 8, 2022
1 parent ef1dfcb commit cf09b28
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 32 deletions.
59 changes: 30 additions & 29 deletions Sources/BibleKit/Librarian.swift
Original file line number Diff line number Diff line change
Expand Up @@ -347,43 +347,44 @@ public class Librarian {

guard book != nil else { return nil }
var reference: String = ""
if let book = book,
let startChapter = startChapter {
if let book = book {
reference.append(contentsOf: book)
reference.append(contentsOf: " \(startChapter)")
if let startChapter = startChapter {
reference.append(contentsOf: " \(startChapter)")

if startVerse != nil {
if let startVerse = startVerse {
reference.append(contentsOf: ":\(startVerse)")
if startVerse != nil {
if let startVerse = startVerse {
reference.append(contentsOf: ":\(startVerse)")

if endChapter != nil && endChapter != startChapter {
if let endChapter = endChapter {
reference.append(contentsOf: " - \(endChapter)")
}
if endChapter != nil && endChapter != startChapter {
if let endChapter = endChapter {
reference.append(contentsOf: " - \(endChapter)")
}

if let endVerse = endVerse {
reference.append(contentsOf: ":\(endVerse)")
} else {
if let lastVerseNumber = getLastVerseNumber(book: book, chapter: endChapter) {
reference.append(contentsOf: ":\(lastVerseNumber)")
if let endVerse = endVerse {
reference.append(contentsOf: ":\(endVerse)")
} else {
if let lastVerseNumber = getLastVerseNumber(book: book, chapter: endChapter) {
reference.append(contentsOf: ":\(lastVerseNumber)")
}
}
}

} else if endVerse != nil && endVerse != startVerse {
if let endVerse = endVerse {
reference.append(contentsOf: "-\(endVerse)")
} else if endVerse != nil && endVerse != startVerse {
if let endVerse = endVerse {
reference.append(contentsOf: "-\(endVerse)")
}
}
}
}
} else if endChapter != nil && endChapter != startChapter {
if endVerse != nil {
if let endChapter = endChapter,
let endVerse = endVerse {
reference.append(contentsOf: ":1 - \(endChapter):\(endVerse)")
}
} else {
if let endChapter = endChapter {
reference.append(contentsOf: "-\(endChapter)")
} else if endChapter != nil && endChapter != startChapter {
if endVerse != nil {
if let endChapter = endChapter,
let endVerse = endVerse {
reference.append(contentsOf: ":1 - \(endChapter):\(endVerse)")
}
} else {
if let endChapter = endChapter {
reference.append(contentsOf: "-\(endChapter)")
}
}
}
}
Expand Down
6 changes: 3 additions & 3 deletions Sources/BibleKit/Reference.swift
Original file line number Diff line number Diff line change
Expand Up @@ -172,21 +172,21 @@ public class Reference: BibleReference {
}

self.reference = Librarian.createReferenceString(book: fullBookName,
startChapter: startChapterNumber,
startChapter: startChapter,
startVerse: startVerse,
endChapter: endChapter,
endVerse: endVerse
)

self.referenceType = Librarian.identifyReferenceType(book: fullBookName,
startChapter: startChapterNumber,
startChapter: startChapter,
startVerse: startVerse,
endChapter: endChapter,
endVerse: endVerse
)

self.isValid = Librarian.verifyReference(book: fullBookName,
startChapter: startChapterNumber,
startChapter: startChapter,
startVerse: startVerse,
endChapter: endChapter,
endVerse: endVerse
Expand Down
8 changes: 8 additions & 0 deletions Tests/BibleKitTests/BibleReferenceParser_ParserTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,14 @@ class BibleReferenceParser_ParserTests: XCTestCase {
XCTAssert(ref[0].reference == "Matthew 2:3-5")
XCTAssert(ref[0].book == "Matthew")
XCTAssert(ref[0].isValid == true)

ref = RefParser.parseReferences("genesis")
XCTAssert(ref.count == 1)
XCTAssert(ref[0].reference == "Genesis")
XCTAssert(ref[0].book == "Genesis")
XCTAssert(ref[0].referenceType == ReferenceType.BOOK)
XCTAssert(ref[0].isValid == true)

}

func testParsingAllReferences() throws {
Expand Down

0 comments on commit cf09b28

Please sign in to comment.