packages feed

mongodb-queue 0.2.3.1 → 0.2.4

raw patch · 2 files changed

+10/−31 lines, 2 filesdep ~mongoDBPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: mongoDB

API changes (from Hackage documentation)

+ Database.MongoDB.Queue: emitterMaxByteSize :: EmitterOpts -> Int
- Database.MongoDB.Queue: EmitterOpts :: Int -> Collection -> EmitterOpts
+ Database.MongoDB.Queue: EmitterOpts :: Int -> Collection -> Int -> EmitterOpts

Files

Database/MongoDB/Queue.hs view
@@ -13,10 +13,10 @@ import Data.Typeable (Typeable) import Database.MongoDB import Control.Monad.IO.Class (MonadIO, liftIO)-import Control.Applicative (Applicative) import Control.Monad.Trans.Control (MonadBaseControl(..)) import Data.Text (Text) import Network.BSD (getHostName, HostName)+import Control.Monad (void)  queueCollection, handled, dataField, _id, hostField, versionField :: Text queueCollection = "queue"@@ -26,33 +26,7 @@ versionField = "version" _id = "_id" --- from Database.Persist.MongoDB, trying to move into driver-findAndModify :: (Applicative m, MonadIO m)-              => Query-              -> Document -- ^ updates-              -> Action m (Either String Document)-findAndModify (Query {-    selection = Select sel collection-  , project = project-  , sort = sort-  }) updates = do-  result <- runCommand [-     "findAndModify" := String collection-   , "new"    := Bool True -- return updated document, not original document-   , "query"  := Doc sel-   , "update" := Doc updates-   , "fields" := Doc project-   , "sort"   := Doc sort-   ]-  return $ case findErr result of-    Nothing -> case lookup "value" result of-      Nothing -> Left "findAndModify: no document found (value field was empty)"-      Just doc -> Right doc-    Just e -> Left e-    where-      findErr result = lookup "err" (at "lastErrorObject" result) - type DBRunner = (MonadIO m, MonadBaseControl IO m) => Action m a -> m a data QueueEmitter = QueueEmitter {                       qeVersion :: Int -- ^ version@@ -64,18 +38,22 @@ data EmitterOpts = EmitterOpts                    { emitterVersion :: Int                    , emitterCollection :: Collection+                   , emitterMaxByteSize :: Int                    }  instance Default EmitterOpts where-    def = EmitterOpts 1 queueCollection+    def = EmitterOpts 1 queueCollection 100000   -- | create a QueueEmitter createEmitter :: DBRunner -> IO QueueEmitter createEmitter runEmitter = mkEmitter def runEmitter++-- | create an emitter with non-default configuration mkEmitter :: EmitterOpts -> DBRunner -> IO QueueEmitter mkEmitter EmitterOpts {..} emitterRunner = do   name <- getHostName+  void $ emitterRunner $ createCollection [Capped, MaxByteSize emitterMaxByteSize] emitterCollection   return $ QueueEmitter emitterVersion name emitterRunner emitterCollection  -- | emit a message for a worker@@ -110,6 +88,7 @@ createWorker :: DBRunner -> IO QueueWorker createWorker runWorker = mkWorker def runWorker +-- | create an worker with non-default configuration mkWorker :: WorkerOpts -> DBRunner -> IO QueueWorker mkWorker WorkerOpts {..} workerRunner = do     _<- workerRunner $
mongodb-queue.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/  name:                mongodb-queue-version:             0.2.3.1+version:             0.2.4 synopsis:            a message queue using MongoDB -- description:          homepage:            https://github.com/docmunch/haskell-mongodb-queue@@ -25,7 +25,7 @@   -- other-modules:          build-depends:       base > 4.5 && < 5-    , mongoDB >= 1.3.1 && < 1.4+    , mongoDB >= 1.4.1 && < 1.5     , transformers     , monad-control     , text@@ -42,7 +42,7 @@    build-depends:       base > 4.5 && < 5-    , mongoDB >= 1.3.1 && < 1.4+    , mongoDB >= 1.4.1 && < 1.5     , transformers     , monad-control     , text