CouchDB 0.8.1.1 → 0.8.1.2
raw patch · 3 files changed
+8/−9 lines, 3 filesdep ~HTTPdep ~jsonPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: HTTP, json
API changes (from Hackage documentation)
- Database.CouchDB: getAndUpdateDoc :: (JSON a) => DB -> Doc -> a -> IO a -> CouchMonad (Maybe Rev)
+ Database.CouchDB: getAndUpdateDoc :: (JSON a) => DB -> Doc -> (a -> IO a) -> CouchMonad (Maybe Rev)
Files
- CouchDB.cabal +2/−2
- src/Database/CouchDB/HTTP.hs +5/−6
- src/Database/CouchDB/JSON.hs +1/−1
CouchDB.cabal view
@@ -1,5 +1,5 @@ Name: CouchDB-Version: 0.8.1.1+Version: 0.8.1.2 Cabal-Version: >= 1.2.4 Copyright: Copyright (c) 2008 Arjun Guha and Brendan Hickey License: BSD3@@ -19,7 +19,7 @@ Hs-Source-Dirs: src Build-Depends:- base, mtl, containers, network, HTTP<4000.0.0, json>=0.3.3+ base, mtl, containers, network, HTTP>=4000.0.4, json>=0.4.3 ghc-options: -fwarn-incomplete-patterns Extensions:
src/Database/CouchDB/HTTP.hs view
@@ -14,7 +14,6 @@ import Data.IORef import Control.Concurrent import Network.TCP-import Network.Stream import Network.HTTP import Network.URI import Control.Exception (finally)@@ -23,7 +22,7 @@ -- |Describes a connection to a CouchDB database. This type is -- encapsulated by 'CouchMonad'. data CouchConn = CouchConn - { ccConn :: IORef Connection + { ccConn :: IORef (HandleStream String) , ccURI :: URI , ccHostname :: String , ccPort :: Int@@ -60,7 +59,7 @@ } ,conn ) -getConn :: CouchMonad Connection+getConn :: CouchMonad (HandleStream String) getConn = CouchMonad $ \conn -> do r <- readIORef (ccConn conn) return (r,conn)@@ -68,7 +67,7 @@ reopenConnection :: CouchMonad () reopenConnection = CouchMonad $ \conn -> do c <- liftIO $ readIORef (ccConn conn) >>= close- connection <- liftIO $ openTCPPort (ccHostname conn) (ccPort conn)+ connection <- liftIO $ openTCPConnection (ccHostname conn) (ccPort conn) writeIORef (ccConn conn) connection return ((), conn) @@ -86,7 +85,7 @@ -> RequestMethod -> [Header] -> String -- ^body of the request- -> CouchMonad Response+ -> CouchMonad (Response String) request path query method headers body = do url <- makeURL path query let allHeaders = (makeHeaders (length body)) ++ headers @@ -111,7 +110,7 @@ runCouchDB hostname port (CouchMonad m) = do let uriAuth = URIAuth "" hostname (':':(show port)) let baseURI = URI "http:" (Just uriAuth) "" "" ""- c <- openTCPPort hostname port+ c <- openTCPConnection hostname port conn <- newIORef c (a,_) <- m (CouchConn conn baseURI hostname port) `finally` (do c <- readIORef conn
src/Database/CouchDB/JSON.hs view
@@ -17,7 +17,7 @@ jsonString _ = fail "expected a string" jsonInt :: (Integral n) => JSValue -> Result n-jsonInt (JSRational r) = case (numerator r, denominator r) of+jsonInt (JSRational _ r) = case (numerator r, denominator r) of (n,1) -> return (fromIntegral n) otherwise -> fail "expected an integer; got a rational" jsonInt _ = fail "expected an integer"