packages feed

Spock 0.4.1.0 → 0.4.2.0

raw patch · 4 files changed

+24/−8 lines, 4 filesdep +pool-conduit

Dependencies added: pool-conduit

Files

Spock.cabal view
@@ -1,5 +1,5 @@ name:                Spock-version:             0.4.1.0+version:             0.4.2.0 synopsis:            Another Haskell web toolkit based on scotty description:         This toolbox provides everything you need to get a quick start into web hacking with haskell: sessions, database helper, authentication and the power of scotty Homepage:            https://github.com/agrafix/Spock@@ -38,7 +38,8 @@                        xsd ==0.4.*,                        aeson >=0.6,                        resource-pool ==0.2.*,-                       random ==1.*+                       random ==1.*,+                       pool-conduit ==0.1.*   ghc-options: -fwarn-unused-imports  source-repository head
Web/Spock.hs view
@@ -51,13 +51,15 @@     do sessionMgr <- openSessionManager sessionCfg        connectionPool <-            case poolOrConn of+             PCConduitPool p ->+                 return (ConduitPool p)              PCPool p ->-                 return p+                 return (DataPool p)              PCConn cb ->                  let pc = cb_poolConfiguration cb-                 in createPool (cb_createConn cb) (cb_destroyConn cb)-                        (pc_stripes pc) (pc_keepOpenTime pc)-                        (pc_resPerStripe pc)+                 in DataPool <$> createPool (cb_createConn cb) (cb_destroyConn cb)+                                  (pc_stripes pc) (pc_keepOpenTime pc)+                                   (pc_resPerStripe pc)        let internalState =                WebState                { web_dbConn = connectionPool
Web/Spock/Monad.hs view
@@ -10,6 +10,7 @@ import Data.Pool import Data.Time.Clock ( UTCTime(..) ) import Web.Scotty.Trans+import qualified Data.Conduit.Pool as CP import qualified Data.ByteString.Lazy as BSL import qualified Data.Text.Encoding as T import qualified Data.Text.Lazy as TL@@ -25,7 +26,13 @@ runQuery query =     webM $     do pool <- asks web_dbConn-       liftIO $ withResource pool query+       let fun =+               case pool of+                 DataPool p ->+                     withResource p+                 ConduitPool p ->+                     CP.withResource p+       liftIO (fun query)  -- | Read the application's state. If you wish to have mutable state, you could -- use a 'TVar' from the STM packge.
Web/Spock/Types.hs view
@@ -12,6 +12,7 @@ import Control.Monad.Trans.Resource import Data.Pool import Data.Time.Clock ( UTCTime(..), NominalDiffTime(..) )+import qualified Data.Conduit.Pool as CP import qualified Data.HashMap.Strict as HM import qualified Data.Text as T import Data.Text.Lazy (Text)@@ -47,6 +48,7 @@ -- a connection pool. See 'ConnBuilder' data PoolOrConn a    = PCPool (Pool a)+   | PCConduitPool (CP.Pool a)    | PCConn (ConnBuilder a)  -- | Configuration for the session manager@@ -67,9 +69,13 @@    | NoSession    deriving (Show, Eq, Read, Enum) +data ConnectionPool conn+   = DataPool (Pool conn)+   | ConduitPool (CP.Pool conn)+ data WebState conn sess st    = WebState-   { web_dbConn :: Pool conn+   { web_dbConn :: ConnectionPool conn    , web_sessionMgr :: SessionManager sess    , web_state :: st    }