packages feed

yesod-newsfeed 1.1.0.1 → 1.2.0

raw patch · 4 files changed

+29/−30 lines, 4 filesdep ~yesod-corePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: yesod-core

API changes (from Hackage documentation)

- Yesod.AtomFeed: instance HasReps RepAtom
- Yesod.Feed: RepAtomRss :: RepAtom -> RepRss -> RepAtomRss
- Yesod.Feed: data RepAtomRss
- Yesod.Feed: instance HasReps RepAtomRss
- Yesod.RssFeed: instance HasReps RepRss
+ Yesod.AtomFeed: instance HasContentType RepAtom
+ Yesod.AtomFeed: instance ToContent RepAtom
+ Yesod.AtomFeed: instance ToTypedContent RepAtom
+ Yesod.RssFeed: instance HasContentType RepRss
+ Yesod.RssFeed: instance ToContent RepRss
+ Yesod.RssFeed: instance ToTypedContent RepRss
- Yesod.AtomFeed: atomFeed :: Feed (Route master) -> GHandler sub master RepAtom
+ Yesod.AtomFeed: atomFeed :: MonadHandler m => Feed (Route (HandlerSite m)) -> m RepAtom
- Yesod.AtomFeed: atomLink :: Route m -> Text -> GWidget s m ()
+ Yesod.AtomFeed: atomLink :: MonadWidget m => Route (HandlerSite m) -> Text -> m ()
- Yesod.Feed: newsFeed :: Feed (Route master) -> GHandler sub master RepAtomRss
+ Yesod.Feed: newsFeed :: MonadHandler m => Feed (Route (HandlerSite m)) -> m TypedContent
- Yesod.RssFeed: rssFeed :: Feed (Route master) -> GHandler sub master RepRss
+ Yesod.RssFeed: rssFeed :: MonadHandler m => Feed (Route (HandlerSite m)) -> m RepRss
- Yesod.RssFeed: rssLink :: Route m -> Text -> GWidget s m ()
+ Yesod.RssFeed: rssLink :: MonadWidget m => Route (HandlerSite m) -> Text -> m ()

Files

Yesod/AtomFeed.hs view
@@ -2,6 +2,7 @@ {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE CPP #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-} --------------------------------------------------------- -- -- Module        : Yesod.AtomFeed@@ -35,10 +36,13 @@ 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 :: MonadHandler m => Feed (Route (HandlerSite m)) -> m RepAtom atomFeed feed = do     render <- getUrlRender     return $ RepAtom $ toContent $ renderLBS def $ template feed render@@ -71,10 +75,10 @@     ]  -- | Generates a link tag in the head of a widget.-atomLink :: Route m+atomLink :: MonadWidget m+         => Route (HandlerSite m)          -> Text -- ^ title-         -> GWidget s m ()+         -> m () atomLink r title = toWidgetHead [hamlet|-$newline never-<link href=@{r} type=#{S8.unpack typeAtom} rel="alternate" title=#{title}>-|]+    <link href=@{r} type=#{S8.unpack typeAtom} rel="alternate" title=#{title}>+    |]
Yesod/Feed.hs view
@@ -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 :: MonadHandler m => Feed (Route (HandlerSite m)) -> m TypedContent+newsFeed f = selectRep $ do+    provideRep $ atomFeed f+    provideRep $ rssFeed f
Yesod/RssFeed.hs view
@@ -2,6 +2,7 @@ {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE CPP #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-} ------------------------------------------------------------------------------- -- -- Module        : Yesod.RssFeed@@ -31,11 +32,14 @@ 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+rssFeed :: MonadHandler m => Feed (Route (HandlerSite m)) -> m RepRss rssFeed feed = do     render <- getUrlRender     return $ RepRss $ toContent $ renderLBS def $ template feed render@@ -67,10 +71,10 @@     ]  -- | Generates a link tag in the head of a widget.-rssLink :: Route m+rssLink :: MonadWidget m+        => Route (HandlerSite m)         -> Text -- ^ title-        -> GWidget s m ()+        -> m () rssLink r title = toWidgetHead [hamlet|-$newline never     <link href=@{r} type=#{S8.unpack typeRss} rel="alternate" title=#{title}>     |]
yesod-newsfeed.cabal view
@@ -1,5 +1,5 @@ name:            yesod-newsfeed-version:         1.1.0.1+version:         1.2.0 license:         MIT license-file:    LICENSE author:          Michael Snoyman, Patrick Brisbin@@ -14,7 +14,7 @@  library     build-depends:   base                 >= 4        && < 5-                   , yesod-core           >= 1.1      && < 1.2+                   , yesod-core           >= 1.2      && < 1.3                    , time                 >= 1.1.4                    , hamlet               >= 1.1      && < 1.2                    , bytestring           >= 0.9.1.4