From 5d8ee5e7fb24acd816a77c93e1164422674d3d98 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Tue, 6 Jul 2010 20:17:00 +0300 Subject: [PATCH] Renamed Routes to Route --- Yesod/Dispatch.hs | 8 +++---- Yesod/Form.hs | 2 +- Yesod/Hamlet.hs | 4 ++-- Yesod/Handler.hs | 44 +++++++++++++++++++-------------------- Yesod/Helpers/AtomFeed.hs | 2 +- Yesod/Helpers/Auth.hs | 6 +++--- Yesod/Helpers/Crud.hs | 2 +- Yesod/Helpers/Sitemap.hs | 4 ++-- Yesod/Helpers/Static.hs | 4 ++-- Yesod/Widget.hs | 32 ++++++++++++++-------------- Yesod/Yesod.hs | 36 ++++++++++++++++---------------- 11 files changed, 72 insertions(+), 72 deletions(-) diff --git a/Yesod/Dispatch.hs b/Yesod/Dispatch.hs index f4115ca2..f61fb563 100644 --- a/Yesod/Dispatch.hs +++ b/Yesod/Dispatch.hs @@ -141,9 +141,9 @@ mkYesodGeneral name args clazzes isSub res = do $ map (\x -> (x, [])) ("master" : args) ++ clazzes th <- mapM (thResourceFromResource arg) res -- FIXME now we cannot have multi-nested subsites w' <- createRoutes th - let routesName = mkName $ name ++ "Routes" + let routesName = mkName $ name ++ "Route" let w = DataD [] routesName [] w' [''Show, ''Read, ''Eq] - let x = TySynInstD ''Routes [arg] $ ConT routesName + let x = TySynInstD ''Route [arg] $ ConT routesName parse' <- createParse th parse'' <- newName "parse" @@ -189,7 +189,7 @@ thResourceFromResource master (Resource n ps atts@[stype, toSubArg]) (ConT ''GHandler `AppT` stype' `AppT` master `AppT` ConT ''ChooseRep) let typ = ConT ''Site `AppT` - (ConT ''Routes `AppT` stype') `AppT` + (ConT ''Route `AppT` stype') `AppT` (ArrowT `AppT` ConT ''String `AppT` inside) let gss' = gss `SigE` typ parse' <- [|parsePathSegments|] @@ -199,7 +199,7 @@ thResourceFromResource master (Resource n ps atts@[stype, toSubArg]) dispatch' <- [|flip handleSite (error "Cannot use subsite render function")|] let dispatch = dispatch' `AppE` gss' return (n, SubSite - { ssType = ConT ''Routes `AppT` stype' + { ssType = ConT ''Route `AppT` stype' , ssParse = parse , ssRender = render , ssDispatch = dispatch diff --git a/Yesod/Form.hs b/Yesod/Form.hs index 20b531f5..d0846611 100644 --- a/Yesod/Form.hs +++ b/Yesod/Form.hs @@ -224,7 +224,7 @@ optionalFieldHelper (FieldProfile parse render mkXml w) label tooltip orig' = data FieldProfile sub y a = FieldProfile { fpParse :: String -> Either String a , fpRender :: a -> String - , fpHamlet :: Html () -> Html () -> Bool -> Hamlet (Routes y) + , fpHamlet :: Html () -> Html () -> Bool -> Hamlet (Route y) , fpWidget :: String -> GWidget sub y () } diff --git a/Yesod/Hamlet.hs b/Yesod/Hamlet.hs index 7aa6992b..a30b5eba 100644 --- a/Yesod/Hamlet.hs +++ b/Yesod/Hamlet.hs @@ -30,11 +30,11 @@ data PageContent url = PageContent -- | Converts the given Hamlet template into 'Content', which can be used in a -- Yesod 'Response'. -hamletToContent :: Hamlet (Routes master) -> GHandler sub master Content +hamletToContent :: Hamlet (Route master) -> GHandler sub master Content hamletToContent h = do render <- getUrlRender return $ toContent $ renderHamlet render h -- | Wraps the 'Content' generated by 'hamletToContent' in a 'RepHtml'. -hamletToRepHtml :: Hamlet (Routes master) -> GHandler sub master RepHtml +hamletToRepHtml :: Hamlet (Route master) -> GHandler sub master RepHtml hamletToRepHtml = fmap RepHtml . hamletToContent diff --git a/Yesod/Handler.hs b/Yesod/Handler.hs index 6b1f4e3a..0168f20f 100644 --- a/Yesod/Handler.hs +++ b/Yesod/Handler.hs @@ -22,7 +22,7 @@ --------------------------------------------------------- module Yesod.Handler ( -- * Type families - Routes + Route -- * Handler monad , Handler , GHandler @@ -30,7 +30,7 @@ module Yesod.Handler , getYesod , getYesodSub , getUrlRender - , getRoute + , getCurrentRoute , getRouteToMaster -- * Special responses -- ** Redirecting @@ -96,20 +96,20 @@ import Numeric (showIntAtBase) import Data.Char (ord, chr) -- | The type-safe URLs associated with a site argument. -type family Routes a +type family Route a data HandlerData sub master = HandlerData { handlerRequest :: Request , handlerSub :: sub , handlerMaster :: master - , handlerRoute :: Maybe (Routes sub) - , handlerRender :: (Routes master -> String) - , handlerToMaster :: Routes sub -> Routes master + , handlerRoute :: Maybe (Route sub) + , handlerRender :: (Route master -> String) + , handlerToMaster :: Route sub -> Route master } -handlerSubData :: (Routes sub -> Routes master) +handlerSubData :: (Route sub -> Route master) -> (master -> sub) - -> Routes sub + -> Route sub -> HandlerData oldSub master -> HandlerData sub master handlerSubData tm ts route hd = hd @@ -120,9 +120,9 @@ handlerSubData tm ts route hd = hd -- | Used internally for promoting subsite handler functions to master site -- handler functions. Should not be needed by users. -toMasterHandler :: (Routes sub -> Routes master) +toMasterHandler :: (Route sub -> Route master) -> (master -> sub) - -> Routes sub + -> Route sub -> GHandler sub master a -> Handler master a toMasterHandler tm ts route (GHandler h) = @@ -181,17 +181,17 @@ getYesod :: GHandler sub master master getYesod = handlerMaster <$> GHandler ask -- | Get the URL rendering function. -getUrlRender :: GHandler sub master (Routes master -> String) +getUrlRender :: GHandler sub master (Route master -> String) getUrlRender = handlerRender <$> GHandler ask -- | Get the route requested by the user. If this is a 404 response- where the -- user requested an invalid route- this function will return 'Nothing'. -getRoute :: GHandler sub master (Maybe (Routes sub)) -getRoute = handlerRoute <$> GHandler ask +getCurrentRoute :: GHandler sub master (Maybe (Route sub)) +getCurrentRoute = handlerRoute <$> GHandler ask -- | Get the function to promote a route for a subsite to a route for the -- master site. -getRouteToMaster :: GHandler sub master (Routes sub -> Routes master) +getRouteToMaster :: GHandler sub master (Route sub -> Route master) getRouteToMaster = handlerToMaster <$> GHandler ask modifySession :: [(String, String)] -> (String, Maybe String) @@ -208,9 +208,9 @@ dropKeys k = filter $ \(x, _) -> x /= k -- 'GHandler' into an 'W.Application'. Should not be needed by users. runHandler :: HasReps c => GHandler sub master c - -> (Routes master -> String) - -> Maybe (Routes sub) - -> (Routes sub -> Routes master) + -> (Route master -> String) + -> Maybe (Route sub) + -> (Route sub -> Route master) -> master -> (master -> sub) -> YesodApp @@ -260,11 +260,11 @@ safeEh er = YesodApp $ \_ _ _ -> do return (W.Status500, [], typePlain, toContent "Internal Server Error", []) -- | Redirect to the given route. -redirect :: RedirectType -> Routes master -> GHandler sub master a +redirect :: RedirectType -> Route master -> GHandler sub master a redirect rt url = redirectParams rt url [] -- | Redirects to the given route with the associated query-string parameters. -redirectParams :: RedirectType -> Routes master -> [(String, String)] +redirectParams :: RedirectType -> Route master -> [(String, String)] -> GHandler sub master a redirectParams rt url params = do r <- getUrlRender @@ -302,7 +302,7 @@ ultDestKey = "_ULT" -- -- An ultimate destination is stored in the user session and can be loaded -- later by 'redirectUltDest'. -setUltDest :: Routes master -> GHandler sub master () +setUltDest :: Route master -> GHandler sub master () setUltDest dest = do render <- getUrlRender setUltDestString $ render dest @@ -317,7 +317,7 @@ setUltDestString = setSession ultDestKey -- nothing. setUltDest' :: GHandler sub master () setUltDest' = do - route <- getRoute + route <- getCurrentRoute tm <- getRouteToMaster maybe (return ()) setUltDest $ tm <$> route @@ -326,7 +326,7 @@ setUltDest' = do -- -- The ultimate destination is set with 'setUltDest'. redirectUltDest :: RedirectType - -> Routes master -- ^ default destination if nothing in session + -> Route master -- ^ default destination if nothing in session -> GHandler sub master () redirectUltDest rt def = do mdest <- lookupSession ultDestKey diff --git a/Yesod/Helpers/AtomFeed.hs b/Yesod/Helpers/AtomFeed.hs index 23e99e34..bcb25937 100644 --- a/Yesod/Helpers/AtomFeed.hs +++ b/Yesod/Helpers/AtomFeed.hs @@ -29,7 +29,7 @@ newtype RepAtom = RepAtom Content instance HasReps RepAtom where chooseRep (RepAtom c) _ = return (typeAtom, c) -atomFeed :: AtomFeed (Routes master) -> GHandler sub master RepAtom +atomFeed :: AtomFeed (Route master) -> GHandler sub master RepAtom atomFeed = fmap RepAtom . hamletToContent . template data AtomFeed url = AtomFeed diff --git a/Yesod/Helpers/Auth.hs b/Yesod/Helpers/Auth.hs index f5e30d3e..80b2b84a 100644 --- a/Yesod/Helpers/Auth.hs +++ b/Yesod/Helpers/Auth.hs @@ -22,7 +22,7 @@ module Yesod.Helpers.Auth ( -- * Subsite Auth (..) - , AuthRoutes (..) + , AuthRoute (..) -- * Settings , YesodAuth (..) , Creds (..) @@ -55,10 +55,10 @@ import Data.Object class Yesod master => YesodAuth master where -- | Default destination on successful login or logout, if no other -- destination exists. - defaultDest :: master -> Routes master + defaultDest :: master -> Route master -- | Default page to redirect user to for logging in. - defaultLoginRoute :: master -> Routes master + defaultLoginRoute :: master -> Route master -- | Callback for a successful login. -- diff --git a/Yesod/Helpers/Crud.hs b/Yesod/Helpers/Crud.hs index d91c8f42..9b25cdde 100644 --- a/Yesod/Helpers/Crud.hs +++ b/Yesod/Helpers/Crud.hs @@ -6,7 +6,7 @@ module Yesod.Helpers.Crud ( Item (..) , Crud (..) - , CrudRoutes (..) + , CrudRoute (..) , defaultCrud ) where diff --git a/Yesod/Helpers/Sitemap.hs b/Yesod/Helpers/Sitemap.hs index 82c12eba..5b009553 100644 --- a/Yesod/Helpers/Sitemap.hs +++ b/Yesod/Helpers/Sitemap.hs @@ -61,11 +61,11 @@ template urls = [$hamlet| %priority $show.priority.url$ |] -sitemap :: [SitemapUrl (Routes master)] -> GHandler sub master RepXml +sitemap :: [SitemapUrl (Route master)] -> GHandler sub master RepXml sitemap = fmap RepXml . hamletToContent . template -- | A basic robots file which just lists the "Sitemap: " line. -robots :: Routes sub -- ^ sitemap url +robots :: Route sub -- ^ sitemap url -> GHandler sub master RepPlain robots smurl = do tm <- getRouteToMaster diff --git a/Yesod/Helpers/Static.hs b/Yesod/Helpers/Static.hs index f62d4bac..f498dfbd 100644 --- a/Yesod/Helpers/Static.hs +++ b/Yesod/Helpers/Static.hs @@ -27,7 +27,7 @@ module Yesod.Helpers.Static ( -- * Subsite Static (..) - , StaticRoutes (..) + , StaticRoute (..) -- * Lookup files in filesystem , fileLookupDir , staticFiles @@ -127,7 +127,7 @@ staticFiles fp = do f' <- lift f let sr = ConE $ mkName "StaticRoute" return - [ SigD name $ ConT ''Routes `AppT` ConT ''Static + [ SigD name $ ConT ''Route `AppT` ConT ''Static , FunD name [ Clause [] (NormalB $ sr `AppE` f') [] ] diff --git a/Yesod/Widget.hs b/Yesod/Widget.hs index 05c964b2..a287c9f5 100644 --- a/Yesod/Widget.hs +++ b/Yesod/Widget.hs @@ -30,7 +30,7 @@ import Data.Monoid import Control.Monad.Trans.Writer import Control.Monad.Trans.State import Yesod.Hamlet (Hamlet, hamlet, PageContent (..), Html) -import Yesod.Handler (Routes, GHandler) +import Yesod.Handler (Route, GHandler) import Yesod.Yesod (Yesod, defaultLayout) import Yesod.Content (RepHtml (..)) import Control.Applicative (Applicative) @@ -66,12 +66,12 @@ newtype Body url = Body (Hamlet url) deriving Monoid newtype GWidget sub master a = GWidget ( - WriterT (Body (Routes master)) ( + WriterT (Body (Route master)) ( WriterT (Last Title) ( - WriterT (UniqueList (Script (Routes master))) ( - WriterT (UniqueList (Stylesheet (Routes master))) ( - WriterT (Style (Routes master)) ( - WriterT (Head (Routes master)) ( + WriterT (UniqueList (Script (Route master))) ( + WriterT (UniqueList (Stylesheet (Route master))) ( + WriterT (Style (Route master)) ( + WriterT (Head (Route master)) ( StateT Int ( GHandler sub master ))))))) a) @@ -84,10 +84,10 @@ type Widget y = GWidget y y setTitle :: Html () -> GWidget sub master () setTitle = GWidget . lift . tell . Last . Just . Title -addHead :: Hamlet (Routes master) -> GWidget sub master () +addHead :: Hamlet (Route master) -> GWidget sub master () addHead = GWidget . lift . lift . lift . lift . lift . tell . Head -addBody :: Hamlet (Routes master) -> GWidget sub master () +addBody :: Hamlet (Route master) -> GWidget sub master () addBody = GWidget . tell . Body newIdent :: GWidget sub master String @@ -97,30 +97,30 @@ newIdent = GWidget $ lift $ lift $ lift $ lift $ lift $ lift $ do put i' return $ "w" ++ show i' -addStyle :: Hamlet (Routes master) -> GWidget sub master () +addStyle :: Hamlet (Route master) -> GWidget sub master () addStyle = GWidget . lift . lift . lift . lift . tell . Style -addStylesheet :: Routes master -> GWidget sub master () +addStylesheet :: Route master -> GWidget sub master () addStylesheet = GWidget . lift . lift . lift . tell . toUnique . Stylesheet . Local addStylesheetRemote :: String -> GWidget sub master () addStylesheetRemote = GWidget . lift . lift . lift . tell . toUnique . Stylesheet . Remote -addScript :: Routes master -> GWidget sub master () +addScript :: Route master -> GWidget sub master () addScript = GWidget . lift . lift . tell . toUnique . Script . Local addScriptRemote :: String -> GWidget sub master () addScriptRemote = GWidget . lift . lift . tell . toUnique . Script . Remote -applyLayoutW :: (Eq (Routes m), Yesod m) +applyLayoutW :: (Eq (Route m), Yesod m) => GWidget sub m () -> GHandler sub m RepHtml applyLayoutW w = widgetToPageContent w >>= fmap RepHtml . defaultLayout -widgetToPageContent :: Eq (Routes master) +widgetToPageContent :: Eq (Route master) => GWidget sub master () - -> GHandler sub master (PageContent (Routes master)) + -> GHandler sub master (PageContent (Route master)) widgetToPageContent (GWidget w) = do w' <- flip evalStateT 0 $ runWriterT $ runWriterT $ runWriterT $ runWriterT @@ -148,14 +148,14 @@ $forall stylesheets s return $ PageContent title head'' body wrapWidget :: GWidget s m a - -> (Hamlet (Routes m) -> Hamlet (Routes m)) + -> (Hamlet (Route m) -> Hamlet (Route m)) -> GWidget s m a wrapWidget (GWidget w) wrap = GWidget $ mapWriterT (fmap go) w where go (a, Body h) = (a, Body $ wrap h) -extractBody :: GWidget s m () -> GWidget s m (Hamlet (Routes m)) +extractBody :: GWidget s m () -> GWidget s m (Hamlet (Route m)) extractBody (GWidget w) = GWidget $ mapWriterT (fmap go) w where diff --git a/Yesod/Yesod.hs b/Yesod/Yesod.hs index 3ec2be0a..5fbfb233 100644 --- a/Yesod/Yesod.hs +++ b/Yesod/Yesod.hs @@ -41,18 +41,18 @@ import Web.Routes.Site (Site) -- | This class is automatically instantiated when you use the template haskell -- mkYesod function. You should never need to deal with it directly. -class Eq (Routes y) => YesodSite y where - getSite :: Site (Routes y) (Method -> Maybe (Handler y ChooseRep)) +class Eq (Route y) => YesodSite y where + getSite :: Site (Route y) (Method -> Maybe (Handler y ChooseRep)) type Method = String -- | Same as 'YesodSite', but for subsites. Once again, users should not need -- to deal with it directly, as the mkYesodSub creates instances appropriately. -class Eq (Routes s) => YesodSubSite s y where - getSubSite :: Site (Routes s) (Method -> Maybe (GHandler s y ChooseRep)) +class Eq (Route s) => YesodSubSite s y where + getSubSite :: Site (Route s) (Method -> Maybe (GHandler s y ChooseRep)) -- | Define settings for a Yesod applications. The only required setting is -- 'approot'; other than that, there are intelligent defaults. -class Eq (Routes a) => Yesod a where +class Eq (Route a) => Yesod a where -- | An absolute URL to the root of the application. Do not include -- trailing slash. -- @@ -79,7 +79,7 @@ class Eq (Routes a) => Yesod a where errorHandler = defaultErrorHandler -- | Applies some form of layout to the contents of a page. - defaultLayout :: PageContent (Routes a) -> GHandler sub a Content + defaultLayout :: PageContent (Route a) -> GHandler sub a Content defaultLayout p = hamletToContent [$hamlet| !!! %html @@ -97,7 +97,7 @@ class Eq (Routes a) => Yesod a where -- | Override the rendering function for a particular URL. One use case for -- this is to offload static hosting to a different domain name to avoid -- sending cookies. - urlRenderOverride :: a -> Routes a -> Maybe String + urlRenderOverride :: a -> Route a -> Maybe String urlRenderOverride _ _ = Nothing -- | Determine if a request is authorized or not. @@ -105,14 +105,14 @@ class Eq (Routes a) => Yesod a where -- Return 'Nothing' is the request is authorized, 'Just' a message if -- unauthorized. If authentication is required, you should use a redirect; -- the Auth helper provides this functionality automatically. - isAuthorized :: Routes a -> GHandler s a AuthResult + isAuthorized :: Route a -> GHandler s a AuthResult isAuthorized _ = return Authorized -- | The default route for authentication. -- -- Used in particular by 'isAuthorized', but library users can do whatever -- they want with it. - authRoute :: a -> Maybe (Routes a) + authRoute :: a -> Maybe (Route a) authRoute _ = Nothing data AuthResult = Authorized | AuthenticationRequired | Unauthorized String @@ -124,13 +124,13 @@ data AuthResult = Authorized | AuthenticationRequired | Unauthorized String class YesodBreadcrumbs y where -- | Returns the title and the parent resource, if available. If you return -- a 'Nothing', then this is considered a top-level page. - breadcrumb :: Routes y -> GHandler sub y (String, Maybe (Routes y)) + breadcrumb :: Route y -> GHandler sub y (String, Maybe (Route y)) -- | Gets the title of the current page and the hierarchy of parent pages, -- along with their respective titles. -breadcrumbs :: YesodBreadcrumbs y => GHandler sub y (String, [(Routes y, String)]) +breadcrumbs :: YesodBreadcrumbs y => GHandler sub y (String, [(Route y, String)]) breadcrumbs = do - x' <- getRoute + x' <- getCurrentRoute tm <- getRouteToMaster let x = fmap tm x' case x of @@ -148,8 +148,8 @@ breadcrumbs = do -- | Apply the default layout ('defaultLayout') to the given title and body. applyLayout :: Yesod master => String -- ^ title - -> Hamlet (Routes master) -- ^ head - -> Hamlet (Routes master) -- ^ body + -> Hamlet (Route master) -- ^ head + -> Hamlet (Route master) -- ^ body -> GHandler sub master RepHtml applyLayout t h b = RepHtml `fmap` defaultLayout PageContent @@ -162,8 +162,8 @@ applyLayout t h b = -- the default layout for the HTML output ('defaultLayout'). applyLayoutJson :: Yesod master => String -- ^ title - -> Hamlet (Routes master) -- ^ head - -> Hamlet (Routes master) -- ^ body + -> Hamlet (Route master) -- ^ head + -> Hamlet (Route master) -- ^ body -> Json -> GHandler sub master RepHtmlJson applyLayoutJson t h html json = do @@ -177,7 +177,7 @@ applyLayoutJson t h html json = do applyLayout' :: Yesod master => String -- ^ title - -> Hamlet (Routes master) -- ^ body + -> Hamlet (Route master) -- ^ body -> GHandler sub master ChooseRep applyLayout' s = fmap chooseRep . applyLayout s mempty @@ -222,7 +222,7 @@ class YesodPersist y where -- -- Built on top of 'isAuthorized'. This is useful for building page that only -- contain links to pages the user is allowed to see. -maybeAuthorized :: Yesod a => Routes a -> GHandler s a (Maybe (Routes a)) +maybeAuthorized :: Yesod a => Route a -> GHandler s a (Maybe (Route a)) maybeAuthorized r = do x <- isAuthorized r return $ if x == Authorized then Just r else Nothing