Merge pull request #191 from eatkins/avoid-io

Add file FileInfo factory applys without io
This commit is contained in:
eugene yokota 2019-02-06 14:52:39 -05:00 committed by GitHub
commit 62471c6215
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 0 deletions

View File

@ -90,6 +90,8 @@ object FileInfo {
implicit def apply(file: File): HashModifiedFileInfo =
FileHashModified(file.getAbsoluteFile, Hash(file).toList, IO.getModifiedTimeOrZero(file))
def apply(file: File, hash: List[Byte], lastModified: Long): HashModifiedFileInfo =
FileHashModified(file.getAbsoluteFile, hash, lastModified)
}
object hash extends Style {
@ -115,6 +117,8 @@ object FileInfo {
}
implicit def apply(file: File): HashFileInfo = FileHash(file.getAbsoluteFile, computeHash(file))
def apply(file: File, bytes: List[Byte]): HashFileInfo =
FileHash(file.getAbsoluteFile, bytes)
private def computeHash(file: File): List[Byte] =
try Hash(file).toList
@ -147,6 +151,8 @@ object FileInfo {
implicit def apply(file: File): ModifiedFileInfo =
FileModified(file.getAbsoluteFile, IO.getModifiedTimeOrZero(file))
def apply(file: File, lastModified: Long): ModifiedFileInfo =
FileModified(file.getAbsoluteFile, lastModified)
}
object exists extends Style {
@ -175,5 +181,9 @@ object FileInfo {
val abs = file.getAbsoluteFile
PlainFile(abs, abs.exists)
}
def apply(file: File, exists: Boolean): PlainFileInfo = {
val abs = file.getAbsoluteFile
PlainFile(abs, exists)
}
}
}