snaplet-sqlite-simple 0.4.8.3 → 1.0.0.0
raw patch · 3 files changed
+32/−31 lines, 3 filesdep +exceptionsdep +lifted-basedep +monad-controldep −MonadCatchIO-transformersdep −SafeSemaphoredep ~aesondep ~basedep ~bytestringnew-uploaderPVP ok
version bump matches the API change (PVP)
Dependencies added: exceptions, lifted-base, monad-control, transformers-base
Dependencies removed: MonadCatchIO-transformers, SafeSemaphore
Dependency ranges changed: aeson, base, bytestring, configurator, errors, lens, mtl, snap, text, transformers
API changes (from Hackage documentation)
- Snap.Snaplet.Auth.Backends.SqliteSimple: instance FromField Password
- Snap.Snaplet.Auth.Backends.SqliteSimple: instance FromField UserId
- Snap.Snaplet.Auth.Backends.SqliteSimple: instance FromRow AuthUser
- Snap.Snaplet.Auth.Backends.SqliteSimple: instance IAuthBackend SqliteAuthManager
- Snap.Snaplet.Auth.Backends.SqliteSimple: instance ToField Password
- Snap.Snaplet.SqliteSimple: fromOnly :: Only a -> a
- Snap.Snaplet.SqliteSimple: instance HasSqlite (Handler b Sqlite)
- Snap.Snaplet.SqliteSimple: instance MonadCatchIO m => HasSqlite (ReaderT (Snaplet Sqlite) m)
- Snap.Snaplet.SqliteSimple: instance MonadCatchIO m => HasSqlite (ReaderT Sqlite m)
- Snap.Snaplet.SqliteSimple: sqliteConn :: Sqlite -> MVar Connection
+ Snap.Snaplet.Auth.Backends.SqliteSimple: instance Database.SQLite.Simple.FromField.FromField Snap.Snaplet.Auth.Types.Password
+ Snap.Snaplet.Auth.Backends.SqliteSimple: instance Database.SQLite.Simple.FromField.FromField Snap.Snaplet.Auth.Types.UserId
+ Snap.Snaplet.Auth.Backends.SqliteSimple: instance Database.SQLite.Simple.FromRow.FromRow Snap.Snaplet.Auth.Types.AuthUser
+ Snap.Snaplet.Auth.Backends.SqliteSimple: instance Database.SQLite.Simple.ToField.ToField Snap.Snaplet.Auth.Types.Password
+ Snap.Snaplet.Auth.Backends.SqliteSimple: instance Snap.Snaplet.Auth.AuthManager.IAuthBackend Snap.Snaplet.Auth.Backends.SqliteSimple.SqliteAuthManager
+ Snap.Snaplet.SqliteSimple: ConversionFailed :: String -> String -> String -> ResultError
+ Snap.Snaplet.SqliteSimple: FormatError :: String -> Query -> [String] -> FormatError
+ Snap.Snaplet.SqliteSimple: Incompatible :: String -> String -> String -> ResultError
+ Snap.Snaplet.SqliteSimple: UnexpectedNull :: String -> String -> String -> ResultError
+ Snap.Snaplet.SqliteSimple: [errHaskellType] :: ResultError -> String
+ Snap.Snaplet.SqliteSimple: [errMessage] :: ResultError -> String
+ Snap.Snaplet.SqliteSimple: [errSQLType] :: ResultError -> String
+ Snap.Snaplet.SqliteSimple: [fmtMessage] :: FormatError -> String
+ Snap.Snaplet.SqliteSimple: [fmtParams] :: FormatError -> [String]
+ Snap.Snaplet.SqliteSimple: [fmtQuery] :: FormatError -> Query
+ Snap.Snaplet.SqliteSimple: [fromOnly] :: Only a -> a
+ Snap.Snaplet.SqliteSimple: [sqliteConn] :: Sqlite -> MVar Connection
+ Snap.Snaplet.SqliteSimple: instance Control.Monad.Base.MonadBase GHC.Types.IO m => Snap.Snaplet.SqliteSimple.HasSqlite (Control.Monad.Trans.Reader.ReaderT (Snap.Snaplet.Internal.Types.Snaplet Snap.Snaplet.SqliteSimple.Sqlite) m)
+ Snap.Snaplet.SqliteSimple: instance Control.Monad.Base.MonadBase GHC.Types.IO m => Snap.Snaplet.SqliteSimple.HasSqlite (Control.Monad.Trans.Reader.ReaderT Snap.Snaplet.SqliteSimple.Sqlite m)
+ Snap.Snaplet.SqliteSimple: instance Snap.Snaplet.SqliteSimple.HasSqlite (Snap.Snaplet.Internal.Types.Handler b Snap.Snaplet.SqliteSimple.Sqlite)
- Snap.Snaplet.SqliteSimple: class MonadCatchIO m => HasSqlite m
+ Snap.Snaplet.SqliteSimple: class (MonadBase IO m) => HasSqlite m
- Snap.Snaplet.SqliteSimple: execute :: (HasSqlite m, ToRow q, MonadCatchIO m) => Query -> q -> m ()
+ Snap.Snaplet.SqliteSimple: execute :: (HasSqlite m, ToRow q) => Query -> q -> m ()
- Snap.Snaplet.SqliteSimple: execute_ :: (HasSqlite m, MonadCatchIO m) => Query -> m ()
+ Snap.Snaplet.SqliteSimple: execute_ :: (HasSqlite m) => Query -> m ()
- Snap.Snaplet.SqliteSimple: fromRow :: FromRow a => RowParser a
+ Snap.Snaplet.SqliteSimple: fromRow :: RowParser a
- Snap.Snaplet.SqliteSimple: toRow :: ToRow a => a -> [SQLData]
+ Snap.Snaplet.SqliteSimple: toRow :: a -> [SQLData]
- Snap.Snaplet.SqliteSimple: withSqlite :: HasSqlite m => (Connection -> IO b) -> m b
+ Snap.Snaplet.SqliteSimple: withSqlite :: (HasSqlite m) => (Connection -> IO b) -> m b
Files
- snaplet-sqlite-simple.cabal +22/−20
- src/Snap/Snaplet/Auth/Backends/SqliteSimple.hs +2/−3
- src/Snap/Snaplet/SqliteSimple.hs +8/−8
snaplet-sqlite-simple.cabal view
@@ -1,5 +1,5 @@ name: snaplet-sqlite-simple-version: 0.4.8.3+version: 1.0.0.0 synopsis: sqlite-simple snaplet for the Snap Framework description: This snaplet provides support for using the SQLite database with a Snap Framework application via the@@ -20,6 +20,7 @@ license-file: LICENSE author: Janne Hellsten, Doug Beardsley maintainer: Janne Hellsten <jjhellst@gmail.com>+ , Sergey Bushnyak <sergey.bushnyak@sigrlami.eu> build-type: Simple cabal-version: >= 1.10 homepage: https://github.com/nurpax/snaplet-sqlite-simple@@ -47,19 +48,21 @@ Paths_snaplet_sqlite_simple build-depends:- aeson >= 0.6 && < 0.10, base >= 4 && < 5,+ aeson >= 0.11.1.4, bytestring >= 0.9.1 && < 0.11, clientsession >= 0.8 && < 0.10,- configurator >= 0.2 && < 0.4,- lens >= 3.7.6 && < 5,- MonadCatchIO-transformers >= 0.3 && < 0.4,+ configurator >= 0.3,+ lifted-base >= 0.2 && < 0.3,+ monad-control >= 1.0.1.0,+ lens >= 4.0 && < 5, mtl >= 2 && < 3, sqlite-simple >= 0.4.1 && < 1.0, direct-sqlite >= 2.3.3 && < 2.4,- snap >= 0.13 && < 0.15,- text >= 0.11 && < 1.3,- transformers >= 0.3 && < 0.5,+ snap >= 1.0 && < 1.1,+ text >= 1.2,+ transformers >= 0.4,+ transformers-base >= 0.4 && < 0.5, unordered-containers >= 0.2 && < 0.3 @@ -80,28 +83,27 @@ build-depends: aeson, HUnit >= 1.2 && < 2,- MonadCatchIO-transformers,- base,- bytestring,+ exceptions >= 0.8,+ base >= 4 && < 5,+ bytestring >= 0.9 && < 0.11, clientsession,- configurator,+ configurator >= 0.3, containers >= 0.3, directory >= 1.0 && < 1.3,- errors >= 1.3.1 && < 1.5,- lens,- mtl,- SafeSemaphore,+ errors >= 2.1.2,+ lens >= 4.0 && < 5,+ mtl >= 2, snap-core,- snap,+ snap >= 1.0 && < 1.1, snaplet-sqlite-simple, sqlite-simple, stm >= 2.4, test-framework >= 0.6 && < 0.9, test-framework-hunit >= 0.2.7 && < 0.4,- text,+ text >= 1.2, time >= 1.1,- transformers,- unordered-containers >= 0.2 && < 0.3+ transformers >= 0.4,+ unordered-containers >= 0.2 && < 0.3 default-extensions: FlexibleInstances
src/Snap/Snaplet/Auth/Backends/SqliteSimple.hs view
@@ -1,8 +1,8 @@ {-# LANGUAGE BangPatterns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE FlexibleContexts #-} {-| @@ -39,9 +39,8 @@ ) where -------------------------------------------------------------------------------import Control.Applicative ((<$>), (<*>)) import Control.Concurrent-import Control.Lens ((^#))+import Control.Lens import Control.Monad import Control.Monad.IO.Class import qualified Data.Aeson as A
src/Snap/Snaplet/SqliteSimple.hs view
@@ -87,8 +87,8 @@ import Prelude hiding (catch) import Control.Concurrent-import Control.Lens ((^#))-import Control.Monad.CatchIO hiding (Handler)+import Control.Lens+import Control.Monad.Base import Control.Monad.IO.Class import Control.Monad.State import Control.Monad.Trans.Reader@@ -120,7 +120,7 @@ -- the sqlite snaplet in your application, then don't provide this instance -- and leverage the default instance by using \"@with dbLens@\" in front of calls -- to snaplet-sqlite-simple functions.-class (MonadCatchIO m) => HasSqlite m where+class (MonadBase IO m) => HasSqlite m where getSqliteState :: m Sqlite @@ -136,14 +136,14 @@ -- -- > d <- nestSnaplet "db" db sqliteInit -- > count <- liftIO $ runReaderT (execute "INSERT ..." params) d-instance (MonadCatchIO m) => HasSqlite (ReaderT (Snaplet Sqlite) m) where+instance (MonadBase IO m) => HasSqlite (ReaderT (Snaplet Sqlite) m) where getSqliteState = asks (\sqlsnaplet -> sqlsnaplet ^# snapletValue) ------------------------------------------------------------------------------ -- | A convenience instance to make it easier to use functions written for -- this snaplet in non-snaplet contexts.-instance (MonadCatchIO m) => HasSqlite (ReaderT Sqlite m) where+instance (MonadBase IO m) => HasSqlite (ReaderT Sqlite m) where getSqliteState = ask @@ -191,7 +191,7 @@ withSqlite f = do s <- getSqliteState let conn = sqliteConn s- liftIO $ withMVar conn f+ liftBase $ withMVar conn f ------------------------------------------------------------------------------ -- | See 'S.query'@@ -214,7 +214,7 @@ -- | -- -- See also 'withSqlite' for notes on concurrent access.-execute :: (HasSqlite m, ToRow q, MonadCatchIO m)+execute :: (HasSqlite m, ToRow q) => S.Query -> q -> m () execute template qs = withSqlite (\c -> S.execute c template qs) @@ -223,6 +223,6 @@ -- | -- -- See also 'withSqlite' for notes on concurrent access.-execute_ :: (HasSqlite m, MonadCatchIO m)+execute_ :: (HasSqlite m) => S.Query -> m () execute_ template = withSqlite (`S.execute_` template)