on master help sign in
Minor style changes
ca80171Jasper Van der Jeugt
src/Hakyll/Core/Provider/MetadataCache.hs+4−4
@@ -7,8 +7,8 @@ module Hakyll.Core.Provider.MetadataCache
7
7
8
8
9--------------------------------------------------------------------------------
9--------------------------------------------------------------------------------
10+import Control.Monad (unless)
10import qualified Data.Map as M
11import qualified Data.Map as M
11−import Control.Monad (unless)
12
12
13--------------------------------------------------------------------------------
13--------------------------------------------------------------------------------
14import Hakyll.Core.Identifier
14import Hakyll.Core.Identifier
@@ -51,9 +51,9 @@ load :: Provider -> Identifier -> IO ()
51load p r = do
51load p r = do
52 mmof <- Store.isMember store mdk
52 mmof <- Store.isMember store mdk
53 unless mmof $ do
53 unless mmof $ do
54− (md, body) <- loadMetadata p r
54+ (md, body) <- loadMetadata p r
55− Store.set store mdk md
55+ Store.set store mdk md
56− Store.set store bk body
56+ Store.set store bk body
57 where
57 where
58 store = providerStore p
58 store = providerStore p
59 mdk = [name, toFilePath r, "metadata"]
59 mdk = [name, toFilePath r, "metadata"]
src/Hakyll/Core/Store.hs+7−9
@@ -24,6 +24,7 @@ import qualified Data.ByteString as B
24import qualified Data.ByteString.Lazy as BL
24import qualified Data.ByteString.Lazy as BL
25import qualified Data.Cache.LRU.IO as Lru
25import qualified Data.Cache.LRU.IO as Lru
26import Data.List (intercalate)
26import Data.List (intercalate)
27+import Data.Maybe (isJust)
27import qualified Data.Text as T
28import qualified Data.Text as T
28import qualified Data.Text.Encoding as T
29import qualified Data.Text.Encoding as T
29import Data.Typeable (TypeRep, Typeable, cast, typeOf)
30import Data.Typeable (TypeRep, Typeable, cast, typeOf)
@@ -103,12 +104,8 @@ cacheLookup (Store _ (Just lru)) key = do
103
104
104--------------------------------------------------------------------------------
105--------------------------------------------------------------------------------
105cacheIsMember :: Store -> String -> IO Bool
106cacheIsMember :: Store -> String -> IO Bool
106−cacheIsMember (Store _ Nothing) _ = return False
107+cacheIsMember (Store _ Nothing) _ = return False
107−cacheIsMember (Store _ (Just lru)) key = do
108+cacheIsMember (Store _ (Just lru)) key = isJust <$> Lru.lookup key lru
108− res <- Lru.lookup key lru
109− case res of
110− Nothing -> return False
111− _ -> return True
112
109
113
110
114--------------------------------------------------------------------------------
111--------------------------------------------------------------------------------
@@ -168,9 +165,10 @@ isMember :: Store -> [String] -> IO Bool
168isMember store identifier = do
165isMember store identifier = do
169 inCache <- cacheIsMember store key
166 inCache <- cacheIsMember store key
170 if inCache then return True else doesFileExist path
167 if inCache then return True else doesFileExist path
171− where
168+ where
172− key = hash identifier
169+ key = hash identifier
173− path = storeDirectory store </> key
170+ path = storeDirectory store </> key
171+
174
172
175--------------------------------------------------------------------------------
173--------------------------------------------------------------------------------
176-- | Delete an item
174-- | Delete an item
tests/Hakyll/Core/Store/Tests.hs+3−6
@@ -72,15 +72,12 @@ wrongType = do
72
72
73
73
74--------------------------------------------------------------------------------
74--------------------------------------------------------------------------------
75−
76isMembertest :: H.Assertion
75isMembertest :: H.Assertion
77isMembertest = do
76isMembertest = do
78 store <- newTestStore
77 store <- newTestStore
79 Store.set store ["foo", "bar"] ("qux" :: String)
78 Store.set store ["foo", "bar"] ("qux" :: String)
80− --value <- Store.get store ["foo", "bar"] :: IO (Store.Result Int)
81 good <- Store.isMember store ["foo", "bar"]
79 good <- Store.isMember store ["foo", "bar"]
82−
83− bad <- Store.isMember store ["foo", "baz"]
80+ bad <- Store.isMember store ["foo", "baz"]
84− H.assert good
81+ H.assert good
85 H.assert (not bad)
82 H.assert (not bad)
86− cleanTestEnv
83+ cleanTestEnv