yesod-fay 0.8.0 → 0.9.0
raw patch · 3 files changed
+28/−15 lines, 3 filesdep ~yesod-coredep ~yesod-formdep ~yesod-staticPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: yesod-core, yesod-form, yesod-static
API changes (from Hackage documentation)
- Fay.Yesod: instance Data a => Data (Returns a)
- Fay.Yesod: instance Eq (Returns a)
- Fay.Yesod: instance Read (Returns a)
- Fay.Yesod: instance Show (Returns a)
- Fay.Yesod: instance Typeable Returns
- Yesod.Fay: instance YesodFay master => YesodSubDispatch FaySite (HandlerT master IO)
- Yesod.Fay: yfsExternal :: YesodFaySettings -> Maybe (FilePath, Exp)
- Yesod.Fay: yfsModuleName :: YesodFaySettings -> String
- Yesod.Fay: yfsPackages :: YesodFaySettings -> [String]
- Yesod.Fay: yfsPostProcess :: YesodFaySettings -> String -> IO String
- Yesod.Fay: yfsRequireJQuery :: YesodFaySettings -> Bool
- Yesod.Fay: yfsSeparateRuntime :: YesodFaySettings -> Maybe (FilePath, Exp)
- Yesod.Fay: yfsTypecheckDevel :: YesodFaySettings -> Bool
+ Fay.Yesod: instance Data.Data.Data a => Data.Data.Data (Fay.Yesod.Returns a)
+ Fay.Yesod: instance GHC.Classes.Eq (Fay.Yesod.Returns a)
+ Fay.Yesod: instance GHC.Read.Read (Fay.Yesod.Returns a)
+ Fay.Yesod: instance GHC.Show.Show (Fay.Yesod.Returns a)
+ Yesod.Fay: [yfsExternal] :: YesodFaySettings -> Maybe (FilePath, Exp)
+ Yesod.Fay: [yfsModuleName] :: YesodFaySettings -> String
+ Yesod.Fay: [yfsPackages] :: YesodFaySettings -> [String]
+ Yesod.Fay: [yfsPostProcess] :: YesodFaySettings -> String -> IO String
+ Yesod.Fay: [yfsRequireJQuery] :: YesodFaySettings -> Bool
+ Yesod.Fay: [yfsSeparateRuntime] :: YesodFaySettings -> Maybe (FilePath, Exp)
+ Yesod.Fay: [yfsTypecheckDevel] :: YesodFaySettings -> Bool
+ Yesod.Fay: instance Yesod.Fay.YesodFay master => Yesod.Core.Class.Dispatch.YesodSubDispatch Yesod.Fay.Data.FaySite master
- Yesod.Fay: YesodFaySettings :: String -> Maybe (FilePath, Exp) -> (String -> IO String) -> Maybe (FilePath, Exp) -> Bool -> [String] -> Bool -> YesodFaySettings
+ Yesod.Fay: YesodFaySettings :: String -> Maybe (FilePath, Exp) -> String -> IO String -> Maybe (FilePath, Exp) -> Bool -> [String] -> Bool -> YesodFaySettings
- Yesod.Fay: class YesodJquery master => YesodFay master where fayEncode = const showToFay
+ Yesod.Fay: class YesodJquery master => YesodFay master
- Yesod.Fay: fayEncode :: (YesodFay master, Data a) => master -> a -> Maybe Value
+ Yesod.Fay: fayEncode :: (YesodFay master, (Data a)) => master -> a -> Maybe Value
- Yesod.Fay: type CommandHandler master = forall s. (forall a. Data a => Returns a -> a -> HandlerT master IO s) -> Value -> HandlerT master IO s
+ Yesod.Fay: type CommandHandler master = forall s. (forall a. (Data a) => Returns a -> a -> HandlerFor master s) -> Value -> HandlerFor master s
- Yesod.Fay: urlJqueryJs :: YesodJquery a => a -> Either (Route a) Text
+ Yesod.Fay: urlJqueryJs :: YesodJquery a => a -> Either Route a Text
- Yesod.Fay: urlJqueryUiCss :: YesodJquery a => a -> Either (Route a) Text
+ Yesod.Fay: urlJqueryUiCss :: YesodJquery a => a -> Either Route a Text
- Yesod.Fay: urlJqueryUiDateTimePicker :: YesodJquery a => a -> Either (Route a) Text
+ Yesod.Fay: urlJqueryUiDateTimePicker :: YesodJquery a => a -> Either Route a Text
- Yesod.Fay: urlJqueryUiJs :: YesodJquery a => a -> Either (Route a) Text
+ Yesod.Fay: urlJqueryUiJs :: YesodJquery a => a -> Either Route a Text
Files
- ChangeLog.md +6/−0
- Yesod/Fay.hs +18/−11
- yesod-fay.cabal +4/−4
ChangeLog.md view
@@ -1,3 +1,9 @@+# Changelog for yesod-fay++## 0.9.0++* Support for Yesod 1.6 [#20](https://github.com/fpco/yesod-fay/issues/20)+ ## 0.8.0 * Drop system-filepath
Yesod/Fay.hs view
@@ -2,6 +2,7 @@ {-# LANGUAGE ViewPatterns #-} {-# LANGUAGE CPP #-} {-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-}@@ -86,6 +87,7 @@ import Control.Applicative import Data.Aeson (decode) import qualified Data.ByteString.Lazy as L+import qualified Data.ByteString.Lazy.Char8 as LC import qualified Data.ByteString.Lazy.UTF8 as BSU import Data.Data (Data) #if !MIN_VERSION_fay(0,20,0)@@ -104,7 +106,7 @@ import Data.Text.Lazy.Builder (fromText, toLazyText, Builder) import System.Directory (createDirectoryIfMissing, doesFileExist) import System.FilePath (takeDirectory)-import Fay (getRuntime, showCompileError)+import Fay (readConfigRuntime, defaultConfig, showCompileError) import Fay.Convert (showToFay) #if MIN_VERSION_fay(0,20,0) import Fay (Config(..),@@ -192,9 +194,9 @@ -- and produces the expected result. type CommandHandler master = forall s.- (forall a. (Data a) => Returns a -> a -> HandlerT master IO s)+ (forall a. (Data a) => Returns a -> a -> HandlerFor master s) -> Value- -> HandlerT master IO s+ -> HandlerFor master s -- | A setttings data type for indicating whether the generated Javascript -- should contain a copy of the Fay runtime or not.@@ -225,24 +227,29 @@ , yfsTypecheckDevel = False } +-- | Read runtime from default Fay config.+getRuntime :: IO L.ByteString+getRuntime = readConfigRuntime defaultConfig >>= return . LC.pack+ updateRuntime :: FilePath -> IO ()-updateRuntime fp = getRuntime >>= \js -> createDirectoryIfMissing True (takeDirectory fp) >> copyFile js fp+updateRuntime fp = getRuntime >>= \js ->+ createDirectoryIfMissing True (takeDirectory fp) >> L.writeFile fp js -instance YesodFay master => YesodSubDispatch FaySite (HandlerT master IO) where+instance YesodFay master => YesodSubDispatch FaySite master where yesodSubDispatch = $(mkYesodSubDispatch resourcesFaySite) -- | To be used from your routing declarations. getFaySite :: a -> FaySite getFaySite _ = FaySite -postFayCommandR :: forall master. YesodFay master => HandlerT FaySite (HandlerT master IO) Value+postFayCommandR :: forall master. YesodFay master => SubHandlerFor FaySite master Value postFayCommandR =- lift $ runCommandHandler yesodFayCommand+ liftHandler $ runCommandHandler yesodFayCommand where -- | Run a command handler. This provides server-side responses to Fay queries. runCommandHandler :: YesodFay master => CommandHandler master- -> HandlerT master IO Value+ -> HandlerFor master Value runCommandHandler f = do mtxt <- lookupPostParam "json" case mtxt of@@ -272,10 +279,10 @@ createDirectoryIfMissing True $ takeDirectory fp writeFile fp content -maybeRequireJQuery :: YesodFay master => Bool -> WidgetT master IO ()+maybeRequireJQuery :: YesodFay master => Bool -> WidgetFor master () maybeRequireJQuery needJQuery = when needJQuery requireJQuery -requireJQuery :: YesodFay master => WidgetT master IO ()+requireJQuery :: YesodFay master => WidgetFor master () requireJQuery = do master <- getYesod addScriptEither $ urlJqueryJs master@@ -294,7 +301,7 @@ case yfsSeparateRuntime settings of Nothing -> [| return () |] Just (_, exp') -> do- hash <- qRunIO $ getRuntime >>= fmap base64md5 . L.readFile+ hash <- qRunIO $ getRuntime >>= return . base64md5 [| addScript ($(return exp') (StaticRoute ["fay-runtime.js"] [(T.pack hash, "")])) |] -- | A function that takes a String giving the Fay module name, and returns an
yesod-fay.cabal view
@@ -1,5 +1,5 @@ name: yesod-fay-version: 0.8.0+version: 0.9.0 synopsis: Utilities for using the Fay Haskell-to-JS compiler with Yesod. description: For initial discussion, see <http://www.yesodweb.com/blog/2012/10/yesod-fay-js>. This is a work-in-progress. homepage: https://github.com/fpco/yesod-fay@@ -28,9 +28,9 @@ , template-haskell , process , shakespeare- , yesod-core >= 1.4- , yesod-form >= 1.4- , yesod-static >= 1.4+ , yesod-core >= 1.6+ , yesod-form >= 1.6+ , yesod-static >= 1.6 , pureMD5 >= 2.1.2.1 , utf8-string >= 0.3.7 , monad-loops >= 0.3.3.0