rss 3000.0.1 → 3000.1.0
raw patch · 2 files changed
+21/−21 lines, 2 filesdep ~HaXml
Dependency ranges changed: HaXml
Files
- Text/RSS.hs +18/−18
- rss.cabal +3/−3
Text/RSS.hs view
@@ -111,7 +111,7 @@ deriving Show -- | Converts RSS to XML. -rssToXML :: RSS -> CFilter+rssToXML :: RSS -> CFilter () rssToXML (RSS title link description celems items) = mkElemAttr "rss" [("version",literal "2.0")] [mkElem "channel" ([mkTitle title, @@ -122,44 +122,44 @@ ++ map mkItem items)] -- | Render XML as a string.-showXML :: CFilter -> String+showXML :: CFilter () -> String showXML = verbatim . cfilterToElem -cfilterToElem :: CFilter -> Element-cfilterToElem f = case f (CString False "") of- [CElem e] -> xmlEscape stdXmlEscaper e- [] -> error "RSS produced no output"- _ -> error "RSS produced more than one output"+cfilterToElem :: CFilter () -> Element ()+cfilterToElem f = case f (CString False "" ()) of+ [CElem e _] -> xmlEscape stdXmlEscaper e+ [] -> error "RSS produced no output"+ _ -> error "RSS produced more than one output" -mkSimple :: String -> String -> CFilter+mkSimple :: String -> String -> CFilter () mkSimple t str = mkElem t [literal str] -mkTitle :: Title -> CFilter+mkTitle :: Title -> CFilter () mkTitle = mkSimple "title" -mkLink :: Link -> CFilter+mkLink :: Link -> CFilter () mkLink = mkSimple "link" . show -mkDescription :: Description -> CFilter+mkDescription :: Description -> CFilter () mkDescription str = mkElem "description" [cdata str] -mkDocs :: CFilter+mkDocs :: CFilter () mkDocs = mkSimple "docs" "http://www.rssboard.org/rss-specification" -mkPubDate :: CalendarTime -> CFilter+mkPubDate :: CalendarTime -> CFilter () mkPubDate = mkSimple "pubDate" . formatDate formatDate :: CalendarTime -> String formatDate = formatCalendarTime defaultTimeLocale rfc822DateFormat -mkCategory :: Maybe Domain -> String -> CFilter+mkCategory :: Maybe Domain -> String -> CFilter () mkCategory md s = mkElemAttr "category" attrs [literal s] where attrs = maybe [] (\d -> [("domain", literal d)]) md -maybeElem :: (a -> CFilter) -> Maybe a -> [CFilter]+maybeElem :: (a -> CFilter ()) -> Maybe a -> [CFilter ()] maybeElem = maybe [] . ((:[]) .) -mkChannelElem :: ChannelElem -> CFilter+mkChannelElem :: ChannelElem -> CFilter () mkChannelElem (Language str) = mkSimple "language" str mkChannelElem (Copyright str) = mkSimple "copyright" str mkChannelElem (ManagingEditor str) = mkSimple "managingEditor" str@@ -192,10 +192,10 @@ protocolName CloudProtocolXmlRpc = "xml-rpc" protocolName CloudProtocolSOAP = "soap" -mkItem :: Item -> CFilter+mkItem :: Item -> CFilter () mkItem itemElems = mkElem "item" (map mkItemElem itemElems) -mkItemElem :: ItemElem -> CFilter+mkItemElem :: ItemElem -> CFilter () mkItemElem (Title t) = mkTitle t mkItemElem (Link l) = mkLink l mkItemElem (Description d) = mkDescription d
rss.cabal view
@@ -1,5 +1,5 @@ Name: rss-Version: 3000.0.1+Version: 3000.1.0 Cabal-version: >=1.2 Build-type: Simple Copyright: Jeremy Shaw 2004, Bjorn Bringert 2004-2006@@ -13,10 +13,10 @@ Flag split-base Library- build-depends: base, network, HaXml >=1.13 && <1.14+ build-depends: base, network, HaXml >= 1.19.2 && < 1.20 if flag(split-base) Build-depends: base >= 3.0, old-time, old-locale else Build-depends: base < 3.0 Exposed-Modules: Text.RSS- ghc-options: -O2 -W -fwarn-incomplete-patterns+ ghc-options: -W -fwarn-incomplete-patterns