From 8246aa4c1e4876db32bb9a1c2d6fcc6e28a88177 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Mon, 11 Mar 2013 11:25:26 +0200 Subject: [PATCH] Whole repo compiles --- yesod-auth/Yesod/Auth.hs | 5 ++--- yesod-auth/Yesod/Auth/GoogleEmail.hs | 4 +--- yesod-auth/Yesod/Auth/OpenId.hs | 4 +--- yesod-auth/Yesod/Auth/Rpxnow.hs | 4 +--- yesod-core/Yesod/Core.hs | 2 ++ yesod-form/Yesod/Form/Class.hs | 2 +- yesod-form/Yesod/Form/Fields.hs | 6 +++--- yesod-form/Yesod/Form/Functions.hs | 6 +++--- yesod-form/Yesod/Form/Input.hs | 4 ++-- yesod-form/Yesod/Form/Jquery.hs | 5 +---- yesod-form/Yesod/Form/MassInput.hs | 2 +- yesod-form/Yesod/Form/Nic.hs | 4 +--- yesod-form/Yesod/Form/Types.hs | 2 +- yesod-newsfeed/Yesod/AtomFeed.hs | 8 ++++++-- yesod-newsfeed/Yesod/Feed.hs | 19 +++++-------------- yesod-newsfeed/Yesod/RssFeed.hs | 8 ++++++-- yesod-persistent/Yesod/Persist.hs | 2 +- yesod-sitemap/Yesod/Sitemap.hs | 3 +-- yesod/Yesod.hs | 2 -- 19 files changed, 39 insertions(+), 53 deletions(-) diff --git a/yesod-auth/Yesod/Auth.hs b/yesod-auth/Yesod/Auth.hs index 415e478a..7d34dbc3 100644 --- a/yesod-auth/Yesod/Auth.hs +++ b/yesod-auth/Yesod/Auth.hs @@ -45,7 +45,6 @@ import Text.Hamlet (shamlet) import Yesod.Core import Yesod.Persist -import Yesod.Json import Yesod.Auth.Message (AuthMessage, defaultMessage) import qualified Yesod.Auth.Message as Msg import Yesod.Form (FormMessage) @@ -184,12 +183,12 @@ $newline never onLogin redirectUltDest $ loginDest y -getCheckR :: YesodAuth master => GHandler Auth master RepHtmlJson +getCheckR :: YesodAuth master => GHandler Auth master TypedContent getCheckR = do creds <- maybeAuthId defaultLayoutJson (do setTitle "Authentication Status" - toWidget $ html' creds) (jsonCreds creds) + toWidget $ html' creds) (return $ jsonCreds creds) where html' creds = [shamlet| diff --git a/yesod-auth/Yesod/Auth/GoogleEmail.hs b/yesod-auth/Yesod/Auth/GoogleEmail.hs index 8f06abe3..d3df3c2e 100644 --- a/yesod-auth/Yesod/Auth/GoogleEmail.hs +++ b/yesod-auth/Yesod/Auth/GoogleEmail.hs @@ -18,9 +18,7 @@ module Yesod.Auth.GoogleEmail import Yesod.Auth import qualified Web.Authenticate.OpenId as OpenId -import Yesod.Handler -import Yesod.Widget (whamlet) -import Yesod.Request +import Yesod.Core #if MIN_VERSION_blaze_html(0, 5, 0) import Text.Blaze.Html (toHtml) #else diff --git a/yesod-auth/Yesod/Auth/OpenId.hs b/yesod-auth/Yesod/Auth/OpenId.hs index 5e216bf6..5751901d 100644 --- a/yesod-auth/Yesod/Auth/OpenId.hs +++ b/yesod-auth/Yesod/Auth/OpenId.hs @@ -14,9 +14,7 @@ import Yesod.Auth import qualified Web.Authenticate.OpenId as OpenId import Yesod.Form -import Yesod.Handler -import Yesod.Widget (toWidget, whamlet) -import Yesod.Request +import Yesod.Core import Text.Cassius (cassius) #if MIN_VERSION_blaze_html(0, 5, 0) import Text.Blaze.Html (toHtml) diff --git a/yesod-auth/Yesod/Auth/Rpxnow.hs b/yesod-auth/Yesod/Auth/Rpxnow.hs index 0c803004..6c1d5ed6 100644 --- a/yesod-auth/Yesod/Auth/Rpxnow.hs +++ b/yesod-auth/Yesod/Auth/Rpxnow.hs @@ -10,9 +10,7 @@ import Yesod.Auth import qualified Web.Authenticate.Rpxnow as Rpxnow import Control.Monad (mplus) -import Yesod.Handler -import Yesod.Widget -import Yesod.Request +import Yesod.Core import Text.Hamlet (hamlet) import Data.Text (pack, unpack) import Data.Text.Encoding (encodeUtf8, decodeUtf8With) diff --git a/yesod-core/Yesod/Core.hs b/yesod-core/Yesod/Core.hs index 76e19fd1..f0b58419 100644 --- a/yesod-core/Yesod/Core.hs +++ b/yesod-core/Yesod/Core.hs @@ -54,6 +54,7 @@ module Yesod.Core , module Yesod.Core.Json , module Yesod.Core.Trans.Class , module Text.Shakespeare.I18N + , module Yesod.Core.Internal.Util ) where import Yesod.Internal.Core @@ -65,6 +66,7 @@ import Yesod.Core.Json import Yesod.Core.Types import Yesod.Core.Trans.Class import Text.Shakespeare.I18N +import Yesod.Core.Internal.Util (formatW3 , formatRFC1123 , formatRFC822) import Control.Monad.Logger diff --git a/yesod-form/Yesod/Form/Class.hs b/yesod-form/Yesod/Form/Class.hs index 629a93ca..6838423c 100644 --- a/yesod-form/Yesod/Form/Class.hs +++ b/yesod-form/Yesod/Form/Class.hs @@ -14,7 +14,7 @@ import Yesod.Form.Functions (areq, aopt) import Data.Int (Int64) import Data.Time (Day, TimeOfDay) import Data.Text (Text) -import Yesod.Message (RenderMessage) +import Yesod.Core (RenderMessage) {- class ToForm a where diff --git a/yesod-form/Yesod/Form/Fields.hs b/yesod-form/Yesod/Form/Fields.hs index adc59deb..0391872f 100644 --- a/yesod-form/Yesod/Form/Fields.hs +++ b/yesod-form/Yesod/Form/Fields.hs @@ -51,7 +51,7 @@ import Yesod.Form.I18n.English import Yesod.Form.Functions (parseHelper) import Yesod.Handler (getMessageRender) import Yesod.Widget (toWidget, whamlet, GWidget) -import Yesod.Message (RenderMessage (renderMessage), SomeMessage (..)) +import Yesod.Core (RenderMessage (renderMessage), SomeMessage (..)) import Text.Hamlet import Text.Blaze (ToMarkup (toMarkup), preEscapedToMarkup, unsafeByteString) #define ToHtml ToMarkup @@ -86,8 +86,8 @@ import Data.Text (Text, unpack, pack) import qualified Data.Text.Read import qualified Data.Map as Map -import Yesod.Handler (newIdent, lift) -import Yesod.Request (FileInfo) +import Yesod.Core (newIdent, lift) +import Yesod.Core (FileInfo) import Yesod.Core (toPathPiece, GHandler, PathPiece, fromPathPiece) import Yesod.Persist (selectList, runDB, Filter, SelectOpt, YesodPersistBackend, Key, YesodPersist, PersistEntity, PersistQuery) diff --git a/yesod-form/Yesod/Form/Functions.hs b/yesod-form/Yesod/Form/Functions.hs index db3e4933..406a8582 100644 --- a/yesod-form/Yesod/Form/Functions.hs +++ b/yesod-form/Yesod/Form/Functions.hs @@ -55,17 +55,17 @@ import Text.Blaze (Markup, toMarkup) import Yesod.Handler (GHandler, getRequest, runRequestBody, newIdent, getYesod) import Yesod.Core (RenderMessage, SomeMessage (..)) import Yesod.Widget (GWidget, whamlet) -import Yesod.Request (reqToken, reqWaiRequest, reqGetParams, languages) +import Yesod.Core (reqToken, reqWaiRequest, reqGetParams, languages) import Network.Wai (requestMethod) import Text.Hamlet (shamlet) import Data.Monoid (mempty) import Data.Maybe (listToMaybe, fromMaybe) -import Yesod.Message (RenderMessage (..)) +import Yesod.Core (RenderMessage (..)) import qualified Data.Map as Map import qualified Data.Text.Encoding as TE import Control.Applicative ((<$>)) import Control.Arrow (first) -import Yesod.Request (FileInfo) +import Yesod.Core (FileInfo) -- | Get a unique identifier. newFormIdent :: MForm sub master Text diff --git a/yesod-form/Yesod/Form/Input.hs b/yesod-form/Yesod/Form/Input.hs index 0c23677d..205b9881 100644 --- a/yesod-form/Yesod/Form/Input.hs +++ b/yesod-form/Yesod/Form/Input.hs @@ -12,9 +12,9 @@ import Yesod.Form.Types import Data.Text (Text) import Control.Applicative (Applicative (..)) import Yesod.Handler (GHandler, invalidArgs, runRequestBody, getRequest, getYesod) -import Yesod.Request (reqGetParams, languages) +import Yesod.Core (reqGetParams, languages) import Control.Monad (liftM) -import Yesod.Message (RenderMessage (..), SomeMessage (..)) +import Yesod.Core (RenderMessage (..), SomeMessage (..)) import qualified Data.Map as Map import Data.Maybe (fromMaybe) import Control.Arrow ((***)) diff --git a/yesod-form/Yesod/Form/Jquery.hs b/yesod-form/Yesod/Form/Jquery.hs index 85a0c769..0dfbda22 100644 --- a/yesod-form/Yesod/Form/Jquery.hs +++ b/yesod-form/Yesod/Form/Jquery.hs @@ -12,17 +12,14 @@ module Yesod.Form.Jquery , Default (..) ) where -import Yesod.Handler -import Yesod.Core (Route) +import Yesod.Core import Yesod.Form -import Yesod.Widget import Data.Time (Day) import Data.Default import Text.Hamlet (shamlet) import Text.Julius (julius, rawJS) import Data.Text (Text, pack, unpack) import Data.Monoid (mconcat) -import Yesod.Core (RenderMessage) import Data.Aeson (toJSON) -- | Gets the Google hosted jQuery UI 1.8 CSS file with the given theme. diff --git a/yesod-form/Yesod/Form/MassInput.hs b/yesod-form/Yesod/Form/MassInput.hs index 62e89d68..0977ed7c 100644 --- a/yesod-form/Yesod/Form/MassInput.hs +++ b/yesod-form/Yesod/Form/MassInput.hs @@ -13,7 +13,7 @@ import Yesod.Form.Types import Yesod.Form.Functions import Yesod.Form.Fields (boolField) import Yesod.Widget (GWidget, whamlet) -import Yesod.Message (RenderMessage) +import Yesod.Core (RenderMessage) import Yesod.Handler (newIdent, GHandler) import Text.Blaze.Html (Html) import Control.Monad.Trans.Class (lift) diff --git a/yesod-form/Yesod/Form/Nic.hs b/yesod-form/Yesod/Form/Nic.hs index 7c65ce44..04b630f0 100644 --- a/yesod-form/Yesod/Form/Nic.hs +++ b/yesod-form/Yesod/Form/Nic.hs @@ -9,10 +9,8 @@ module Yesod.Form.Nic , nicHtmlField ) where -import Yesod.Handler -import Yesod.Core (Route, ScriptLoadPosition(..), jsLoader, Yesod) +import Yesod.Core import Yesod.Form -import Yesod.Widget import Text.HTML.SanitizeXSS (sanitizeBalance) import Text.Hamlet (Html, shamlet) import Text.Julius (julius, rawJS) diff --git a/yesod-form/Yesod/Form/Types.hs b/yesod-form/Yesod/Form/Types.hs index fc157b70..9d33aebe 100644 --- a/yesod-form/Yesod/Form/Types.hs +++ b/yesod-form/Yesod/Form/Types.hs @@ -22,7 +22,7 @@ module Yesod.Form.Types ) where import Control.Monad.Trans.RWS (RWST) -import Yesod.Request (FileInfo) +import Yesod.Core (FileInfo) import Data.Text (Text) import Data.Monoid (Monoid (..)) import Text.Blaze (Markup, ToMarkup (toMarkup)) diff --git a/yesod-newsfeed/Yesod/AtomFeed.hs b/yesod-newsfeed/Yesod/AtomFeed.hs index b5ae4e59..72af4b81 100644 --- a/yesod-newsfeed/Yesod/AtomFeed.hs +++ b/yesod-newsfeed/Yesod/AtomFeed.hs @@ -2,6 +2,7 @@ {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE CPP #-} +{-# LANGUAGE GeneralizedNewtypeDeriving #-} --------------------------------------------------------- -- -- Module : Yesod.AtomFeed @@ -35,8 +36,11 @@ import Text.Blaze.Html.Renderer.Text (renderHtml) import qualified Data.Map as Map newtype RepAtom = RepAtom Content -instance HasReps RepAtom where - chooseRep (RepAtom c) _ = return (typeAtom, c) + deriving ToContent +instance HasContentType RepAtom where + getContentType _ = typeAtom +instance ToTypedContent RepAtom where + toTypedContent = TypedContent typeAtom . toContent atomFeed :: Feed (Route master) -> GHandler sub master RepAtom atomFeed feed = do diff --git a/yesod-newsfeed/Yesod/Feed.hs b/yesod-newsfeed/Yesod/Feed.hs index 58673f8d..479d2c27 100644 --- a/yesod-newsfeed/Yesod/Feed.hs +++ b/yesod-newsfeed/Yesod/Feed.hs @@ -17,24 +17,15 @@ ------------------------------------------------------------------------------- module Yesod.Feed ( newsFeed - , RepAtomRss (..) , module Yesod.FeedTypes ) where import Yesod.FeedTypes import Yesod.AtomFeed import Yesod.RssFeed -import Yesod.Content (HasReps (chooseRep), typeAtom, typeRss) -import Yesod.Core (Route, GHandler) +import Yesod.Core -data RepAtomRss = RepAtomRss RepAtom RepRss -instance HasReps RepAtomRss where - chooseRep (RepAtomRss (RepAtom a) (RepRss r)) = chooseRep - [ (typeAtom, a) - , (typeRss, r) - ] -newsFeed :: Feed (Route master) -> GHandler sub master RepAtomRss -newsFeed f = do - a <- atomFeed f - r <- rssFeed f - return $ RepAtomRss a r +newsFeed :: Feed (Route master) -> GHandler sub master TypedContent +newsFeed f = selectRep $ do + provideRep $ atomFeed f + provideRep $ rssFeed f diff --git a/yesod-newsfeed/Yesod/RssFeed.hs b/yesod-newsfeed/Yesod/RssFeed.hs index 4a8d5029..40736449 100644 --- a/yesod-newsfeed/Yesod/RssFeed.hs +++ b/yesod-newsfeed/Yesod/RssFeed.hs @@ -2,6 +2,7 @@ {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE CPP #-} +{-# LANGUAGE GeneralizedNewtypeDeriving #-} ------------------------------------------------------------------------------- -- -- Module : Yesod.RssFeed @@ -31,8 +32,11 @@ import Text.Blaze.Html.Renderer.Text (renderHtml) import qualified Data.Map as Map newtype RepRss = RepRss Content -instance HasReps RepRss where - chooseRep (RepRss c) _ = return (typeRss, c) + deriving ToContent +instance HasContentType RepRss where + getContentType _ = typeRss +instance ToTypedContent RepRss where + toTypedContent = TypedContent typeRss . toContent -- | Generate the feed rssFeed :: Feed (Route master) -> GHandler sub master RepRss diff --git a/yesod-persistent/Yesod/Persist.hs b/yesod-persistent/Yesod/Persist.hs index 06461520..77441539 100644 --- a/yesod-persistent/Yesod/Persist.hs +++ b/yesod-persistent/Yesod/Persist.hs @@ -14,7 +14,7 @@ import Database.Persist import Database.Persist.TH import Control.Monad.Trans.Class (MonadTrans) -import Yesod.Handler +import Yesod.Core type YesodDB sub master = YesodPersistBackend master (GHandler sub master) diff --git a/yesod-sitemap/Yesod/Sitemap.hs b/yesod-sitemap/Yesod/Sitemap.hs index 517e8cce..826ca5b7 100644 --- a/yesod-sitemap/Yesod/Sitemap.hs +++ b/yesod-sitemap/Yesod/Sitemap.hs @@ -24,8 +24,7 @@ module Yesod.Sitemap , SitemapChangeFreq (..) ) where -import Yesod.Content (RepXml (..), RepPlain (..), toContent, formatW3) -import Yesod.Core (Route, GHandler, getUrlRender) +import Yesod.Core (RepXml (..), RepPlain (..), toContent, formatW3, Route, GHandler, getUrlRender) import Data.Time (UTCTime) import Data.Monoid (mappend) import Text.XML diff --git a/yesod/Yesod.hs b/yesod/Yesod.hs index ef9623d0..e2c3f4a6 100644 --- a/yesod/Yesod.hs +++ b/yesod/Yesod.hs @@ -5,7 +5,6 @@ module Yesod ( -- * Re-exports from yesod-core module Yesod.Core , module Yesod.Form - , module Yesod.Json , module Yesod.Persist -- * Running your application , warp @@ -45,7 +44,6 @@ import Text.Lucius import Text.Julius import Yesod.Form -import Yesod.Json import Yesod.Persist import Control.Monad.IO.Class (liftIO, MonadIO(..)) import Control.Monad.Trans.Control (MonadBaseControl)