on master help sign in
* moved ElmUrl to elm-yesod (it's different in Happstack web-routes)
commitaab25b8356fcf3a3b9b67c3f3b12108fc0ef03eb authorVincent Ambo <v.ambo@me.com> dateWed 30 May 2012, 20:28 (14 years ago) parent4dd5937
3 files changed+13−16
elm-yesod/Language/Elm/Yesod.hs+11 elm-yesod/elm-yesod.cabal+2−1 elm/src/Language/Elm/Quasi.hs−15
elm-yesod/Language/Elm/Yesod.hs+11
@@ -21,6 +21,10 @@ import Text.Blaze (preEscapedToMarkup)
2121import Text.Julius
2222import Yesod.Widget (toWidgetHead, toWidgetBody, GWidget)
2323import Language.Elm
24+import Language.Elm.Quasi
25+
26+import qualified Data.Text as TS
27+import qualified Data.Text.Lazy as TL
2428
2529-- |toWidget takes some Elm code in String format and produces a widget. Usage example:
2630--
@@ -33,3 +37,10 @@ elmWidget source =
3337 do toWidgetHead css
3438 toWidgetHead [julius| #{js} |]
3539 toWidgetBody html
40+
41+-- | Return type of template-reading functions.
42+type ElmUrl url = (url -> [(TS.Text, TS.Text)] -> TS.Text) -> Elm
43+
44+-- | render with route interpolation
45+renderElmUrl :: (url -> [(TS.Text, TS.Text)] -> TS.Text) -> ElmUrl url -> TL.Text
46+renderElmUrl r s = renderElm $ s r
elm-yesod/elm-yesod.cabal+2−1
@@ -32,4 +32,5 @@ Library
3232 yesod-core >= 1,
3333 hamlet,
3434 shakespeare-css,
35− shakespeare-js
35+ shakespeare-js,
36+ text
elm/src/Language/Elm/Quasi.hs−15
@@ -21,7 +21,6 @@ module Language.Elm.Quasi
2121 , elmFileReload
2222
2323 -- * Datatypes
24− , ElmUrl
2524 , Elm (..)
2625
2726 -- * Typeclass for interpolated variables
@@ -29,7 +28,6 @@ module Language.Elm.Quasi
2928
3029 -- ** Rendering Functions
3130 , renderElm
32− , renderElmUrl
3331
3432 ) where
3533
@@ -45,23 +43,10 @@ import Text.Shakespeare
4543renderElm :: Elm -> TL.Text
4644renderElm (Elm b) = toLazyText b
4745
48−-- | render with route interpolation. If using this module standalone, apart
49−-- from type-safe routes, a dummy renderer can be used:
50−--
51−-- > renderElmUrl (\_ _ -> undefined) elmUrl
52−--
53−-- When using Yesod, a renderer is generated for you, which can be accessed
54−-- within the GHandler monad: 'Yesod.Handler.getUrlRenderParams'.
55−renderElmUrl :: (url -> [(TS.Text, TS.Text)] -> TS.Text) -> ElmUrl url -> TL.Text
56−renderElmUrl r s = renderElm $ s r
57−
5846-- | Newtype wrapper of 'Builder'.
5947newtype Elm = Elm { unElm :: Builder }
6048 deriving Monoid
6149
62−-- | Return type of template-reading functions.
63−type ElmUrl url = (url -> [(TS.Text, TS.Text)] -> TS.Text) -> Elm
64−
6550-- | A typeclass for types that can be interpolated in CoffeeScript templates.
6651class ToElm a where
6752 toElm :: a -> Builder