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 +12/−8
- Yesod/Feed.hs +5/−14
- Yesod/RssFeed.hs +10/−6
- yesod-newsfeed.cabal +2/−2
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