- Rename source module from RDReaderView to RDEpubReaderView - Move all source files from Sources/RDReaderView/ to Sources/RDEpubReaderView/ - Update podspec: RDReaderView.podspec -> RDEpubReaderView.podspec - Update Podfile, demo project, and CocoaPods config for new pod name - Delete old RDReaderView pod support files from ReadViewDemo/Pods - Add new RDEpubReaderView pod support files - Update documentation (API ref, architecture, UML, conventions, etc.) - Add FixedLayoutRotationTests - Update .gitignore: exclude .DS_Store, manual unpack backups, _ssoft-output
55 lines
1.8 KiB
Swift
55 lines
1.8 KiB
Swift
import Foundation
|
|
|
|
final class RDEPUBReaderServices {
|
|
|
|
var dependencies: RDEPUBReaderDependencies
|
|
|
|
init(dependencies: RDEPUBReaderDependencies) {
|
|
self.dependencies = dependencies
|
|
}
|
|
|
|
func resolvedTextRenderer(configuration: RDEPUBReaderConfiguration) -> RDEPUBTextRenderer {
|
|
dependencies.makeTextRenderer(configuration.textRenderingEngine)
|
|
}
|
|
|
|
func makeParser() -> RDEPUBParser {
|
|
dependencies.makeParser()
|
|
}
|
|
|
|
func makePaginator() -> RDEPUBPaginator {
|
|
dependencies.makePaginator()
|
|
}
|
|
|
|
func makeTextBookBuilder(
|
|
configuration: RDEPUBReaderConfiguration,
|
|
cache: RDEPUBTextBookCache?,
|
|
layoutConfig: RDEPUBTextLayoutConfig
|
|
) -> RDEPUBTextBookBuilder {
|
|
dependencies.makeTextBookBuilder(
|
|
resolvedTextRenderer(configuration: configuration),
|
|
cache,
|
|
layoutConfig
|
|
)
|
|
}
|
|
|
|
func makePlainTextBookBuilder(
|
|
configuration: RDEPUBReaderConfiguration,
|
|
layoutConfig: RDEPUBTextLayoutConfig
|
|
) -> RDEpubPlainTextBookBuilder {
|
|
dependencies.makePlainTextBookBuilder(
|
|
resolvedTextRenderer(configuration: configuration),
|
|
layoutConfig
|
|
)
|
|
}
|
|
|
|
func makeChapterSummaryDiskCache(bookIdentifier: String?) -> RDEPUBChapterSummaryDiskCache {
|
|
let cachesDirectory = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first
|
|
?? FileManager.default.temporaryDirectory
|
|
let bookID = (bookIdentifier ?? "default").rd_sha256Hex
|
|
let directory = cachesDirectory
|
|
.appendingPathComponent("RDEPUBChapterSummaryCache", isDirectory: true)
|
|
.appendingPathComponent(bookID, isDirectory: true)
|
|
return RDEPUBChapterSummaryDiskCache(cacheDirectory: directory)
|
|
}
|
|
}
|