packages feed

mongodb-queue 0.2.2.1 → 0.2.3.0

raw patch · 2 files changed

+26/−27 lines, 2 filesdep +data-defaultdep ~mongoDB

Dependencies added: data-default

Dependency ranges changed: mongoDB

Files

Database/MongoDB/Queue.hs view
@@ -2,12 +2,14 @@ module Database.MongoDB.Queue (     emit   , nextFromQueue-  , createEmitter-  , createWorker+  , createEmitter, mkEmitter, EmitterOpts (..)+  , createWorker, mkWorker, WorkerOpts (..)+ ) where  import Prelude hiding (lookup) import Control.Exception.Base (throwIO, Exception)+import Data.Default (Default (..)) import Data.Typeable (Typeable) import Database.MongoDB import Control.Monad.IO.Class (MonadIO, liftIO)@@ -59,22 +61,20 @@                     , qeCollection :: Collection                     } -data EmitterOpts = EmitterOpts {-                     emitterVersion :: Int-                   , emitterRunner :: DBRunner+data EmitterOpts = EmitterOpts+                   { emitterVersion :: Int                    , emitterCollection :: Collection                    } +instance Default EmitterOpts where+    def = EmitterOpts 1 queueCollection++ -- | create a QueueEmitter createEmitter :: DBRunner -> IO QueueEmitter-createEmitter runEmitter = mkEmitter $ EmitterOpts {-                             emitterVersion = 1-                           , emitterRunner = runEmitter-                           , emitterCollection = queueCollection-                           }--mkEmitter :: EmitterOpts -> IO QueueEmitter-mkEmitter EmitterOpts {..} = do+createEmitter runEmitter = mkEmitter def runEmitter+mkEmitter :: EmitterOpts -> DBRunner -> IO QueueEmitter+mkEmitter EmitterOpts {..} emitterRunner = do   name <- getHostName   return $ QueueEmitter emitterVersion name emitterRunner emitterCollection @@ -89,7 +89,7 @@           ]           -- TODO: add timestamp           -- but actually the _id will already have a timestamp-          -- localTime: dt, +          -- localTime: dt,           -- globalTime: new Date(dt-self.serverTimeOffset),           -- pickedTime: new Date(dt-self.serverTimeOffset), @@ -98,23 +98,20 @@                    , qwCursor :: Cursor                    , qwCollection :: Collection                    }-data WorkerOpts = WorkerOpts { -                    workerRunner :: DBRunner-                  , workerMaxByteSize :: Int+data WorkerOpts = WorkerOpts+                  { workerMaxByteSize :: Int                   , workerCollection :: Collection                   }+instance Default WorkerOpts where+    def = WorkerOpts 100000 queueCollection  -- | creates a QueueWorker -- Do not 'work' multiple times against the same QueueWorker createWorker :: DBRunner -> IO QueueWorker-createWorker runWorker = mkWorker $ WorkerOpts { -                         workerRunner = runWorker-                       , workerMaxByteSize = 100000-                       , workerCollection = queueCollection-                       }+createWorker runWorker = mkWorker def runWorker -mkWorker :: WorkerOpts -> IO QueueWorker-mkWorker WorkerOpts {..} = do+mkWorker :: WorkerOpts -> DBRunner -> IO QueueWorker+mkWorker WorkerOpts {..} workerRunner = do     _<- workerRunner $       createCollection [Capped, MaxByteSize workerMaxByteSize] workerCollection     cursor <- getCursor workerRunner workerCollection
mongodb-queue.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/  name:                mongodb-queue-version:             0.2.2.1+version:             0.2.3.0 synopsis:            a message queue using MongoDB -- description:          homepage:            https://github.com/docmunch/haskell-mongodb-queue@@ -25,11 +25,12 @@   -- other-modules:          build-depends:       base > 4.5 && < 5-    , mongoDB+    , mongoDB >= 1.3.1 && < 1.4     , transformers     , monad-control     , text     , network+    , data-default  test-suite test   type: exitcode-stdio-1.0@@ -41,12 +42,13 @@    build-depends:       base > 4.5 && < 5-    , mongoDB+    , mongoDB >= 1.3.1 && < 1.4     , transformers     , monad-control     , text     , network     , hspec+    , data-default