diff --git a/yesod-core/Yesod/Core/Handler.hs b/yesod-core/Yesod/Core/Handler.hs index 8116864b..dd048e9f 100644 --- a/yesod-core/Yesod/Core/Handler.hs +++ b/yesod-core/Yesod/Core/Handler.hs @@ -28,6 +28,7 @@ module Yesod.Core.Handler HandlerT -- ** Read information from handler , getYesod + , getsYesod , getUrlRender , getUrlRenderParams , getCurrentRoute @@ -291,6 +292,11 @@ askHandlerEnv = liftHandlerT $ HandlerT $ return . handlerEnv getYesod :: MonadHandler m => m (HandlerSite m) getYesod = rheSite `liftM` askHandlerEnv +-- | Get a specific component of the master site application argument. +-- Analogous to the 'gets' function for operating on 'StateT'. +getsYesod :: MonadHandler m => (HandlerSite m -> a) -> m a +getsYesod f = (f . rheSite) `liftM` askHandlerEnv + -- | Get the URL rendering function. getUrlRender :: MonadHandler m => m (Route (HandlerSite m) -> Text) getUrlRender = do