packages feed

yesod-json (empty) → 0.0.0

raw patch · 4 files changed

+111/−0 lines, 4 filesdep +basedep +containersdep +json-enumeratorsetup-changed

Dependencies added: base, containers, json-enumerator, json-types, text, yesod-core

Files

+ LICENSE view
@@ -0,0 +1,25 @@+The following license covers this documentation, and the source code, except+where otherwise indicated.++Copyright 2010, Michael Snoyman. All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++* Redistributions of source code must retain the above copyright notice, this+  list of conditions and the following disclaimer.++* Redistributions in binary form must reproduce the above copyright notice,+  this list of conditions and the following disclaimer in the documentation+  and/or other materials provided with the distribution.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS" AND ANY EXPRESS OR+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO+EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,+OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ Setup.lhs view
@@ -0,0 +1,7 @@+#!/usr/bin/env runhaskell++> module Main where+> import Distribution.Simple++> main :: IO ()+> main = defaultMain
+ Yesod/Json.hs view
@@ -0,0 +1,53 @@+{-# LANGUAGE TypeSynonymInstances #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}+module Yesod.Json+    ( -- ^ Convert from a JSON value+      defaultLayoutJson+    , jsonToRepJson+      -- ^ Compatibility wrapper for old API+    , Json+    , jsonScalar+    , jsonList+    , jsonMap+    ) where++import Yesod.Handler (GHandler)+import Yesod.Content+    ( ToContent (toContent), RepHtmlJson (RepHtmlJson), RepHtml (RepHtml)+    , RepJson (RepJson), Content (ContentBuilder)+    )+import Yesod.Core (defaultLayout, Yesod)+import Yesod.Widget (GWidget)+import qualified Data.JSON.Types as J+import qualified Text.JSON.Enumerator as J+import Data.Text.Lazy (pack)+import Control.Arrow (first)+import Data.Map (fromList)++instance ToContent J.Value where+    toContent = flip ContentBuilder Nothing . J.renderValue++-- | Provide both an HTML and JSON representation for a piece of data, using+-- the default layout for the HTML output ('defaultLayout').+defaultLayoutJson :: Yesod master+                  => GWidget sub master ()+                  -> J.Value+                  -> GHandler sub master RepHtmlJson+defaultLayoutJson w json = do+    RepHtml html' <- defaultLayout w+    return $ RepHtmlJson html' $ toContent json++-- | Wraps the 'Content' generated by 'jsonToContent' in a 'RepJson'.+jsonToRepJson :: J.Value -> GHandler sub master RepJson+jsonToRepJson = return . RepJson . toContent++type Json = J.Value++jsonScalar :: String -> Json+jsonScalar = J.ValueAtom . J.AtomText . pack++jsonList :: [Json] -> Json+jsonList = J.ValueArray++jsonMap :: [(String, Json)] -> Json+jsonMap = J.ValueObject . fromList . map (first pack)
+ yesod-json.cabal view
@@ -0,0 +1,26 @@+name:            yesod-json+version:         0.0.0+license:         BSD3+license-file:    LICENSE+author:          Michael Snoyman <michael@snoyman.com>+maintainer:      Michael Snoyman <michael@snoyman.com>+synopsis:        Generate content for Yesod using the json-types package.+category:        Web, Yesod+stability:       Stable+cabal-version:   >= 1.6+build-type:      Simple+homepage:        http://docs.yesodweb.com/++library+    build-depends:   base                      >= 4        && < 5+                   , yesod-core                >= 0.7      && < 0.8+                   , json-enumerator           >= 0.0      && < 0.1+                   , json-types                >= 0.1      && < 0.2+                   , containers                >= 0.2      && < 0.5+                   , text                      >= 0.8      && < 0.12+    exposed-modules: Yesod.Json+    ghc-options:     -Wall++source-repository head+  type:     git+  location: git://github.com/snoyberg/yesod-json.git