packages feed

shakespeare-text 0.10.5 → 0.11

raw patch · 3 files changed

+69/−8 lines, 3 filesdep ~shakespearenew-uploaderPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: shakespeare

API changes (from Hackage documentation)

+ Text.Shakespeare.Text: codegen :: QuasiQuoter
+ Text.Shakespeare.Text: codegenFile :: FilePath -> Q Exp
+ Text.Shakespeare.Text: codegenFileReload :: FilePath -> Q Exp
+ Text.Shakespeare.Text: codegenSt :: QuasiQuoter

Files

Text/Shakespeare/Text.hs view
@@ -14,6 +14,11 @@     , textFileReload     , st -- | strict text     , lt -- | lazy text, same as stext :)+    -- * Yesod code generation+    , codegen+    , codegenSt+    , codegenFile+    , codegenFileReload     ) where  import Language.Haskell.TH.Quote (QuasiQuoter (..))@@ -51,6 +56,7 @@   , unwrap = unWrapExp   } + stext, lt, st, text :: QuasiQuoter stext =    QuasiQuoter { quoteExp = \s -> do@@ -74,6 +80,7 @@     quoteExp (shakespeare rs) s     } + textFile :: FilePath -> Q Exp textFile fp = do     rs <- settings@@ -87,4 +94,58 @@ textFileReload :: FilePath -> Q Exp textFileReload fp = do     rs <- settings-    shakespeareFileDebug rs fp+    shakespeareFileReload rs fp++-- | codegen is designed for generating Yesod code, including templates+-- So it uses different interpolation characters that won't clash with templates.+codegenSettings :: Q ShakespeareSettings+codegenSettings = do+  toTExp <- [|toText|]+  wrapExp <- [|id|]+  unWrapExp <- [|id|]+  return $ defaultShakespeareSettings { toBuilder = toTExp+  , wrap = wrapExp+  , unwrap = unWrapExp+  , varChar = '~'+  , urlChar = '*'+  , intChar = '&'+  , justVarInterpolation = True -- always!+  }++-- | codegen is designed for generating Yesod code, including templates+-- So it uses different interpolation characters that won't clash with templates.+-- You can use the normal text quasiquoters to generate code+codegen :: QuasiQuoter+codegen =+  QuasiQuoter { quoteExp = \s -> do+    rs <- codegenSettings+    render <- [|renderText|]+    rendered <- shakespeareFromString rs { justVarInterpolation = True } s+    return (render `AppE` rendered)+    }++-- | Generates strict Text+-- codegen is designed for generating Yesod code, including templates+-- So it uses different interpolation characters that won't clash with templates.+codegenSt :: QuasiQuoter+codegenSt =+  QuasiQuoter { quoteExp = \s -> do+    rs <- codegenSettings+    render <- [|TL.toStrict . renderText|]+    rendered <- shakespeareFromString rs { justVarInterpolation = True } s+    return (render `AppE` rendered)+    }++codegenFileReload :: FilePath -> Q Exp+codegenFileReload fp = do+    rs <- codegenSettings+    render <- [|TL.toStrict . renderText|]+    rendered <- shakespeareFileReload rs{ justVarInterpolation = True } fp+    return (render `AppE` rendered)++codegenFile :: FilePath -> Q Exp+codegenFile fp = do+    rs <- codegenSettings+    render <- [|TL.toStrict . renderText|]+    rendered <- shakespeareFile rs{ justVarInterpolation = True } fp+    return (render `AppE` rendered)
shakespeare-text.cabal view
@@ -1,5 +1,5 @@ name:            shakespeare-text-version:         0.10.5+version:         0.11 license:         BSD3 license-file:    LICENSE author:          Greg Weber <greg@gregweber.info>@@ -32,7 +32,7 @@  library     build-depends:   base             >= 4       && < 5-                   , shakespeare      >= 0.10    && < 0.11+                   , shakespeare      >= 0.11    && < 0.12                    , template-haskell                    , text             >= 0.7     && < 0.12 @@ -57,4 +57,4 @@  source-repository head   type:     git-  location: git://github.com/yesodweb/hamlet.git+  location: git://github.com/yesodweb/shakespeare.git
test/ShakespeareTextTest.hs view
@@ -46,10 +46,10 @@         ]
 
 
-  , it "textFileDebug" $ do
+  , it "textFileReload" $ do
     let var = "var"
     let urlp = (Home, [(pack "p", pack "q")])
-    flip telper $(textFileDebug "test/texts/external1.text") $ unlines
+    flip telper $(textFileReload "test/texts/external1.text") $ unlines
         [ "שלום"
         , var
         , "url"
@@ -58,9 +58,9 @@         ]
 
 {- TODO
-  , it "textFileDebugChange" $ do
+  , it "textFileReload" $ do
       let var = "somevar"
-          test result = telper result $(textFileDebug "test/texts/external2.text")
+          test result = telper result $(textFileReload "test/texts/external2.text")
       writeFile "test/texts/external2.text" "var #{var} = 1;"
       test "var somevar = 1;"
       writeFile "test/texts/external2.text" "var #{var} = 2;"