packages feed

freckle-memcached 0.0.0.2 → 0.0.0.3

raw patch · 11 files changed

+68/−49 lines, 11 filesdep ~freckle-envdep ~hspecdep ~hspec-core

Dependency ranges changed: freckle-env, hspec, hspec-core

Files

CHANGELOG.md view
@@ -1,4 +1,8 @@-## [_Unreleased_](https://github.com/freckle/freckle-app/compare/freckle-memcached-v0.0.0.2...main)+## [_Unreleased_](https://github.com/freckle/freckle-memcached/compare/v0.0.0.3...main)++## [v0.0.0.3](https://github.com/freckle/freckle-memcached/compare/v0.0.0.2...v0.0.0.3)++Metadata-only changes to update the package's source repository location.  ## [v0.0.0.2](https://github.com/freckle/freckle-app/compare/freckle-memcached-v0.0.0.1...freckle-memcached-v0.0.0.2) 
LICENSE view
@@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2022-2024 Renaissance Learning Inc+Copyright (c) 2025 Renaissance Learning Inc  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal
README.md view
@@ -1,1 +1,7 @@ # freckle-memcached++Some extensions to the [memcache](https://hackage.haskell.org/package/memcache) library.++---++[CHANGELOG](./CHANGELOG.md) | [LICENSE](./LICENSE)
freckle-memcached.cabal view
@@ -1,12 +1,12 @@ cabal-version:      1.18 name:               freckle-memcached-version:            0.0.0.2+version:            0.0.0.3 license:            MIT license-file:       LICENSE maintainer:         Freckle Education-homepage:           https://github.com/freckle/freckle-app#readme-bug-reports:        https://github.com/freckle/freckle-app/issues-synopsis:           ..+homepage:           https://github.com/freckle/freckle-memcached#readme+bug-reports:        https://github.com/freckle/freckle-memcached/issues+synopsis:           Some extensions to the memcache library description:        Please see README.md category:           Database build-type:         Simple@@ -17,7 +17,7 @@  source-repository head     type:     git-    location: https://github.com/freckle/freckle-app+    location: https://github.com/freckle/freckle-memcached  library     exposed-modules:@@ -98,11 +98,11 @@         base >=4.16.4.0 && <5,         errors >=2.3.0,         exceptions >=0.10.4,-        freckle-env >=0.0.1.1,+        freckle-env >=0.0.1.2,         freckle-memcached,         hs-opentelemetry-sdk >=0.0.3.6,-        hspec >=2.10.10,-        hspec-core >=2.10.10,+        hspec >=2.9.7,+        hspec-core >=2.9.7,         hspec-expectations-lifted >=0.10.0,         lens >=5.1.1,         lens-aeson >=1.2.2,
library/Freckle/App/Memcached.hs view
@@ -78,10 +78,11 @@     CacheDeserializeError err -> "Unable to deserialize: " <> err  -- | Log any thrown 'CachingError's as warnings and return the given value-warnOnCachingError :: (MonadUnliftIO m, MonadLogger m) => a -> m a -> m a+warnOnCachingError+  :: forall m a. (MonadLogger m, MonadUnliftIO m) => a -> m a -> m a warnOnCachingError val =-  flip catch $-    (val <$)+  flip catch+    $ (val <$)       . logWarnNS "caching"       . annotatedExceptionMessage @CachingError @@ -103,13 +104,14 @@  -- | Memoize an action using Memcached and 'Cachable' caching-  :: ( MonadUnliftIO m+  :: forall m env a+   . ( Cachable a+     , HasCallStack+     , HasMemcachedClient env      , MonadLogger m-     , MonadTracer m      , MonadReader env m-     , HasMemcachedClient env-     , Cachable a-     , HasCallStack+     , MonadTracer m+     , MonadUnliftIO m      )   => CacheKey   -> CacheTTL@@ -119,12 +121,13 @@  -- | Like 'caching', but with explicit conversion functions cachingAs-  :: ( MonadUnliftIO m+  :: forall m env a+   . ( HasCallStack+     , HasMemcachedClient env      , MonadLogger m-     , MonadTracer m      , MonadReader env m-     , HasMemcachedClient env-     , HasCallStack+     , MonadTracer m+     , MonadUnliftIO m      )   => (ByteString -> Either String a)   -> (a -> ByteString)@@ -147,14 +150,15 @@  -- | Like 'caching', but de/serializing the value as JSON cachingAsJSON-  :: ( MonadUnliftIO m+  :: forall m env a+   . ( FromJSON a+     , HasCallStack+     , HasMemcachedClient env      , MonadLogger m-     , MonadTracer m      , MonadReader env m-     , HasMemcachedClient env-     , FromJSON a+     , MonadTracer m+     , MonadUnliftIO m      , ToJSON a-     , HasCallStack      )   => CacheKey   -> CacheTTL@@ -164,13 +168,14 @@  -- | Cache data in memcached in CBOR format cachingAsCBOR-  :: ( MonadUnliftIO m+  :: forall m env a+   . ( HasCallStack+     , HasMemcachedClient env      , MonadLogger m-     , MonadTracer m      , MonadReader env m-     , HasMemcachedClient env+     , MonadTracer m+     , MonadUnliftIO m      , Serialise a-     , HasCallStack      )   => CacheKey   -> CacheTTL
library/Freckle/App/Memcached/CacheKey.hs view
@@ -48,7 +48,7 @@     Left $ "Not a valid memcached key:\n  " <> T.unpack t <> "\n\n" <> msg  -- | Build a 'CacheKey' and throw if invalid-cacheKeyThrow :: (MonadIO m, HasCallStack) => Text -> m CacheKey+cacheKeyThrow :: (HasCallStack, MonadIO m) => Text -> m CacheKey cacheKeyThrow = either (throwWithCallStack . userError) pure . cacheKey  fromCacheKey :: CacheKey -> Key
library/Freckle/App/Memcached/CacheTTL.hs view
@@ -14,7 +14,7 @@  newtype CacheTTL = CacheTTL Int   deriving stock (Show)-  deriving newtype (Eq, Ord, Enum, Num, Real, Integral, Serialise)+  deriving newtype (Enum, Eq, Integral, Num, Ord, Real, Serialise)  instance ToAttribute CacheTTL where   toAttribute (CacheTTL x) = toAttribute x
library/Freckle/App/Memcached/Client.hs view
@@ -53,7 +53,8 @@ memcachedClientDisabled = MemcachedClientDisabled  get-  :: (MonadUnliftIO m, MonadTracer m, MonadReader env m, HasMemcachedClient env)+  :: forall m env+   . (HasMemcachedClient env, MonadReader env m, MonadTracer m, MonadUnliftIO m)   => CacheKey   -> m (Maybe Value) get k = traced $ with $ \case@@ -76,18 +77,19 @@ -- -- Pass @0@ to set a value that never expires. set-  :: (MonadUnliftIO m, MonadTracer m, MonadReader env m, HasMemcachedClient env)+  :: forall m env+   . (HasMemcachedClient env, MonadReader env m, MonadTracer m, MonadUnliftIO m)   => CacheKey   -> Value   -> CacheTTL   -> m () set k v expiration = traced $ with $ \case   MemcachedClient mc ->-    void $-      liftIO $-        Memcache.set mc (fromCacheKey k) v 0 $-          fromCacheTTL-            expiration+    void+      $ liftIO+      $ Memcache.set mc (fromCacheKey k) v 0+      $ fromCacheTTL+        expiration   MemcachedClientDisabled -> pure ()  where   traced =@@ -106,7 +108,8 @@  -- | Delete a key delete-  :: (MonadUnliftIO m, MonadTracer m, MonadReader env m, HasMemcachedClient env)+  :: forall m env+   . (HasMemcachedClient env, MonadReader env m, MonadTracer m, MonadUnliftIO m)   => CacheKey   -> m () delete k = traced $ with $ \case@@ -127,7 +130,8 @@   MemcachedClientDisabled -> pure ()  with-  :: (MonadReader env m, HasMemcachedClient env)+  :: forall env m a+   . (HasMemcachedClient env, MonadReader env m)   => (MemcachedClient -> m a)   -> m a with f = do
package.yaml view
@@ -1,9 +1,9 @@ name: freckle-memcached-version: 0.0.0.2+version: 0.0.0.3 maintainer: Freckle Education category: Database-github: freckle/freckle-app-synopsis: ..+github: freckle/freckle-memcached+synopsis: Some extensions to the memcache library description: Please see README.md  extra-doc-files:
tests/AppExample.hs view
@@ -31,11 +31,11 @@     , Functor     , Monad     , MonadCatch+    , MonadFail     , MonadIO-    , MonadUnliftIO     , MonadReader app     , MonadThrow-    , MonadFail+    , MonadUnliftIO     )   deriving     (MonadLogger, MonadLoggerIO)
tests/Freckle/App/MemcachedSpec.hs view
@@ -74,8 +74,8 @@ loadApp :: (App -> IO a) -> IO a loadApp f = do   servers <--    Env.parse id $-      Env.var+    Env.parse id+      $ Env.var         (Env.eitherReader readMemcachedServers)         "MEMCACHED_SERVERS"         (Env.def defaultMemcachedServers)