jmacro-rpc-happstack 0.3.1 → 0.3.2
raw patch · 2 files changed
+5/−4 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Network.JMacroRPC.Happstack: mkConversationPage :: (Monad m, Functor m, MonadIO m) => IO timestamp -> (IntMap (timestamp, s) -> IO (IntMap (timestamp, s))) -> (JStat -> ServerPartT m Response) -> IO s -> [JsonRPC (ServerPartT m) s] -> IO (ServerPartT m Response)
+ Network.JMacroRPC.Happstack: mkConversationPage :: (Monad m, Functor m, MonadIO m, MonadPlus m) => IO timestamp -> (IntMap (timestamp, s) -> IO (IntMap (timestamp, s))) -> (JStat -> ServerPartT m Response) -> IO s -> [JsonRPC (ServerPartT m) s] -> IO (ServerPartT m Response)
- Network.JMacroRPC.Happstack: mkConversationPageNoCulling :: (Monad m, Functor m, MonadIO m) => (JStat -> ServerPartT m Response) -> IO s -> [JsonRPC (ServerPartT m) s] -> IO (ServerPartT m Response)
+ Network.JMacroRPC.Happstack: mkConversationPageNoCulling :: (Monad m, Functor m, MonadIO m, MonadPlus m) => (JStat -> ServerPartT m Response) -> IO s -> [JsonRPC (ServerPartT m) s] -> IO (ServerPartT m Response)
- Network.JMacroRPC.Happstack: panelToPage :: (Monad m, Functor m, MonadIO m) => Maybe String -> String -> Panel (ServerPartT m) -> ServerPartT m Response
+ Network.JMacroRPC.Happstack: panelToPage :: (Monad m, Functor m, MonadIO m, MonadPlus m) => Maybe String -> String -> Panel (ServerPartT m) -> ServerPartT m Response
Files
Network/JMacroRPC/Happstack.hs view
@@ -69,6 +69,7 @@ import Data.IntMap(IntMap) import Data.Aeson import qualified Text.Blaze.Html as H+import Control.Monad instance (ToJSON b, Monad m, Functor m) => ToJsonRPC (ServerPartT m (Either String b)) (ServerPartT m) where toJsonRPC_ f = \ _ -> fmap (fmap toJSON) $ f@@ -83,7 +84,7 @@ serveSimpleRpcs rpcs = serveRpcs (const $ return ()) rpcs -- | This general handler allows explicit culling of conversation state.-mkConversationPage :: forall m s timestamp. (Monad m, Functor m, MonadIO m) =>+mkConversationPage :: forall m s timestamp. (Monad m, Functor m, MonadIO m, MonadPlus m) => IO timestamp -- ^ Get an abstract timestamp -> (IntMap (timestamp,s) -> IO (IntMap (timestamp,s))) -- ^ Cull a map of conversations based on a timestamp -> (JStat -> ServerPartT m Response) -- ^ Take some JMacro Javascript and splice it into some generated page.@@ -93,10 +94,10 @@ mkConversationPage getStamp cullMap pageFun emptyState rpcs = (\(rpcPage, mainPage) -> dir "jrpcs" rpcPage `mappend` mainPage) <$> mkConversationPageGen getStamp cullMap serveRpcs pageFun emptyState rpcs -- | This simple handler allows conversation state to grow without bounds.-mkConversationPageNoCulling :: forall m s. (Monad m, Functor m, MonadIO m) => (JStat -> ServerPartT m Response) -> IO s -> [JsonRPC (ServerPartT m) s] -> IO (ServerPartT m Response)+mkConversationPageNoCulling :: forall m s. (Monad m, Functor m, MonadIO m, MonadPlus m) => (JStat -> ServerPartT m Response) -> IO s -> [JsonRPC (ServerPartT m) s] -> IO (ServerPartT m Response) mkConversationPageNoCulling pageFun emptyState rpcs = mkConversationPage (return ()) return pageFun emptyState rpcs -- | Render a Panel as a @ServerPartT m Response@.-panelToPage :: (Monad m, Functor m, MonadIO m) => Maybe String -> String -> Panel (ServerPartT m) -> ServerPartT m Response+panelToPage :: (Monad m, Functor m, MonadIO m, MonadPlus m) => Maybe String -> String -> Panel (ServerPartT m) -> ServerPartT m Response panelToPage jqLoc title p = dir "jrpcs" updateHandler `mappend` drawHandler where (updateHandler, drawHandler) = panelToPageGen (serveRpcs $ const (return ())) (return . toResponse . H.preEscapedToHtml) jqLoc title p
jmacro-rpc-happstack.cabal view
@@ -1,5 +1,5 @@ Name: jmacro-rpc-happstack-Version: 0.3.1+Version: 0.3.2 Homepage: http://hub.darcs.net/gershomb/jmacro-rpc License: BSD3 License-file: LICENSE