packages feed

conferer-snap 0.2.0.0 → 0.3.0.0

raw patch · 3 files changed

+75/−69 lines, 3 filesdep ~confererPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: conferer

API changes (from Hackage documentation)

- Conferer.FetchFromConfig.Snap: instance (Conferer.Types.FetchFromConfig a, Snap.Internal.Core.MonadSnap m) => Conferer.Types.FetchFromConfig (Snap.Internal.Http.Server.Config.Config m a)
- Conferer.FetchFromConfig.Snap: instance Conferer.Types.FetchFromConfig Snap.Internal.Http.Server.Config.ConfigLog
- Conferer.FetchFromConfig.Snap: instance Snap.Internal.Core.MonadSnap m => Conferer.Types.DefaultConfig (Snap.Internal.Http.Server.Config.Config m a)
+ Conferer.FromConfig.Snap: instance (Data.Typeable.Internal.Typeable m, Conferer.Types.FromConfig a, Snap.Internal.Core.MonadSnap m) => Conferer.Types.FromConfig (Snap.Internal.Http.Server.Config.Config m a)
+ Conferer.FromConfig.Snap: instance (Snap.Internal.Core.MonadSnap m, Conferer.Types.DefaultConfig a) => Conferer.Types.DefaultConfig (Snap.Internal.Http.Server.Config.Config m a)
+ Conferer.FromConfig.Snap: instance Conferer.Types.FromConfig Snap.Internal.Http.Server.Config.ConfigLog

Files

conferer-snap.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: c3fb3465cdfcdbd877ac1a90998917be21c2be3174c9e635942c41abe78ea795+-- hash: a9417ee6e2d363834a082603cf8246196ad028d600b5f5d544451b6fe8d0b838  name:           conferer-snap-version:        0.2.0.0+version:        0.3.0.0 synopsis:       conferer's FromConfig instances for snap Config  description:    Library to abstract the parsing of many haskell config values from different config sources@@ -25,7 +25,7 @@  library   exposed-modules:-      Conferer.FetchFromConfig.Snap+      Conferer.FromConfig.Snap   other-modules:       Paths_conferer_snap   hs-source-dirs:@@ -33,13 +33,13 @@   default-extensions: OverloadedStrings LambdaCase QuasiQuotes ScopedTypeVariables   build-depends:       base >=4.3 && <5-    , conferer >=0.2.0.0 && <0.3.0.0+    , conferer >=0.3.0.0 && <0.4.0.0     , snap-core >=1.0 && <2.0     , snap-server >=1.0 && <2.0     , text >=1.1 && <1.3   default-language: Haskell2010 -test-suite conferer-snap-test+test-suite specs   type: exitcode-stdio-1.0   main-is: Spec.hs   other-modules:@@ -49,7 +49,7 @@   default-extensions: OverloadedStrings LambdaCase QuasiQuotes ScopedTypeVariables   build-depends:       base >=4.3 && <5-    , conferer >=0.2.0.0 && <0.3.0.0+    , conferer >=0.3.0.0 && <0.4.0.0     , conferer-snap     , hspec     , snap-core >=1.0 && <2.0
− src/Conferer/FetchFromConfig/Snap.hs
@@ -1,63 +0,0 @@-module Conferer.FetchFromConfig.Snap-  (-  -- * How to use this-  -- | FetchFromConfig instance for snap server configuration-  ---  -- @-  -- import Conferer-  -- import Conferer.FetchFromConfig.Snap ()-  ---  -- main = do-  --   config <- 'defaultConfig' \"awesomeapp\"-  --   snapConfig <- 'getFromConfig' \"snap\" config-  -- @-  ---  -- * Internal utility functions-  -- | These may be useful for someone but are subject to change at any point so-  -- use with care-  ) where--import Conferer.Core-import Conferer.Types-import Conferer.FetchFromConfig.Basics--import Data.Either (rights)-import Data.String (fromString)-import Data.Text (Text, unpack)--import qualified Snap.Http.Server.Config as Snap-import qualified Snap.Core as Snap--instance FetchFromConfig Snap.ConfigLog where-  fetch k config = do-    getKey k config-      >>= \case-        Just "NoLog" -> return $ Just $ Snap.ConfigNoLog-        Just t -> return $ Just $ Snap.ConfigFileLog $ unpack t-        Nothing -> return $ Nothing--instance (Snap.MonadSnap m) => DefaultConfig (Snap.Config m a) where-  configDef = Snap.defaultConfig--instance (FetchFromConfig a, Snap.MonadSnap m) => FetchFromConfig (Snap.Config m a) where-  fetch k config = do-    pure (configDef)-      >>= findKeyAndApplyConfig config k "default-timeout" Snap.setDefaultTimeout-      >>= findKeyAndApplyConfig config k "access-log" Snap.setAccessLog-      >>= findKeyAndApplyConfig config k "bind" Snap.setBind-      >>= findKeyAndApplyConfig config k "compression" Snap.setCompression-      >>= findKeyAndApplyConfig config k "error-log" Snap.setErrorLog-      >>= findKeyAndApplyConfig config k "hostname" Snap.setHostname-      >>= findKeyAndApplyConfig config k "locale" Snap.setLocale-      >>= findKeyAndApplyConfig config k "other" Snap.setOther-      >>= findKeyAndApplyConfig config k "port" Snap.setPort-      -- >>= findKeyAndApplyConfig config k "proxy-type" Snap.setProxyType-      >>= findKeyAndApplyConfig config k "ssl-bind" Snap.setSSLBind-      >>= findKeyAndApplyConfig config k "ssl-cert" Snap.setSSLCert-      >>= findKeyAndApplyConfig config k "ssl-key" Snap.setSSLKey-      >>= findKeyAndApplyConfig config k "ssl-chain-cert" Snap.setSSLChainCert-      >>= findKeyAndApplyConfig config k "ssl-port" Snap.setSSLPort-      >>= findKeyAndApplyConfig config k "verbose" Snap.setVerbose-      >>= findKeyAndApplyConfig config k "unix-socket" Snap.setUnixSocket-      >>= findKeyAndApplyConfig config k "unix-socket-access-mode" Snap.setUnixSocketAccessMode-      >>= (return . return)
+ src/Conferer/FromConfig/Snap.hs view
@@ -0,0 +1,69 @@+module Conferer.FromConfig.Snap+  (+  -- * How to use this+  -- | FromConfig instance for snap server configuration+  --+  -- @+  -- import Conferer+  -- import Conferer.FromConfig.Snap ()+  --+  -- main = do+  --   config <- 'defaultConfig' \"awesomeapp\"+  --   snapConfig <- 'getFromConfig' \"snap\" config+  -- @+  --+  -- * Internal utility functions+  -- | These may be useful for someone but are subject to change at any point so+  -- use with care+  ) where++import Conferer.Core+import Conferer.Types+import Conferer.FromConfig.Basics++import Data.Either (rights)+import Data.String (fromString)+import Data.Text (Text, unpack)+import Data.Typeable++import qualified Snap.Http.Server.Config as Snap+import qualified Snap.Core as Snap++instance FromConfig Snap.ConfigLog where+  updateFromConfig = updateAllAtOnceUsingFetch+  fetchFromConfig k config = do+    getKey k config+      >>= \case+        Just "NoLog" -> return $ Just $ Snap.ConfigNoLog+        Just t -> return $ Just $ Snap.ConfigFileLog $ unpack t+        Nothing -> return $ Nothing++instance (Snap.MonadSnap m, DefaultConfig a) => DefaultConfig (Snap.Config m a) where+  configDef = Snap.defaultConfig++withMaybe f (Just a) c = f a c+withMaybe f (Nothing) c = c++instance forall a m. (Typeable m, FromConfig a, Snap.MonadSnap m) => FromConfig (Snap.Config m a) where+  fetchFromConfig k config = return Nothing+  updateFromConfig k config snapConfig = do+    pure snapConfig+      >>= findKeyAndApplyConfig config k "defaultTimeout" Snap.getDefaultTimeout (withMaybe Snap.setDefaultTimeout)+      >>= findKeyAndApplyConfig config k "accessLog" Snap.getAccessLog (withMaybe Snap.setAccessLog)+      >>= findKeyAndApplyConfig config k "bind" Snap.getBind (withMaybe Snap.setBind)+      >>= findKeyAndApplyConfig config k "compression" Snap.getCompression (withMaybe Snap.setCompression)+      >>= findKeyAndApplyConfig config k "errorLog" Snap.getErrorLog (withMaybe Snap.setErrorLog)+      >>= findKeyAndApplyConfig config k "hostname" Snap.getHostname (withMaybe Snap.setHostname)+      >>= findKeyAndApplyConfig config k "locale" Snap.getLocale (withMaybe Snap.setLocale)+      >>= findKeyAndApplyConfig config k "port" Snap.getPort (withMaybe Snap.setPort)+      -- >>= findKeyAndApplyConfig config k "proxy-type" (withMaybe Snap.setProxyType)+      >>= findKeyAndApplyConfig config k "sslBind" Snap.getSSLBind (withMaybe Snap.setSSLBind)+      >>= findKeyAndApplyConfig config k "sslCert" Snap.getSSLCert (withMaybe Snap.setSSLCert)+      >>= findKeyAndApplyConfig config k "sslKey" Snap.getSSLKey (withMaybe Snap.setSSLKey)+      >>= findKeyAndApplyConfig config k "sslChain-cert" Snap.getSSLChainCert (withMaybe Snap.setSSLChainCert)+      >>= findKeyAndApplyConfig config k "sslPort" Snap.getSSLPort (withMaybe Snap.setSSLPort)+      >>= findKeyAndApplyConfig config k "verbose" Snap.getVerbose (withMaybe Snap.setVerbose)+      >>= findKeyAndApplyConfig config k "unixSocket" Snap.getUnixSocket (withMaybe Snap.setUnixSocket)+      >>= findKeyAndApplyConfig config k "unixSocketAccessMode" Snap.getUnixSocketAccessMode (withMaybe Snap.setUnixSocketAccessMode)+      >>= findKeyAndApplyConfig config k "other" Snap.getOther (withMaybe Snap.setOther)+      >>= return