Merge branch 'master' into bylabel-contain
This commit is contained in:
commit
a0963e77b2
@ -76,9 +76,10 @@ matrix:
|
|||||||
compiler: ": #stack default osx"
|
compiler: ": #stack default osx"
|
||||||
os: osx
|
os: osx
|
||||||
|
|
||||||
- env: BUILD=stack ARGS="--resolver lts-7"
|
# malformed mach-o: load commands size (34184) > 32768)
|
||||||
compiler: ": #stack 8.0.1 osx"
|
#- env: BUILD=stack ARGS="--resolver lts-7"
|
||||||
os: osx
|
# compiler: ": #stack 8.0.1 osx"
|
||||||
|
# os: osx
|
||||||
|
|
||||||
- env: BUILD=stack ARGS="--resolver lts-9"
|
- env: BUILD=stack ARGS="--resolver lts-9"
|
||||||
compiler: ": #stack 8.0.2 osx"
|
compiler: ": #stack 8.0.2 osx"
|
||||||
|
|||||||
@ -37,3 +37,9 @@ extra-deps:
|
|||||||
- foundation-0.0.19
|
- foundation-0.0.19
|
||||||
- memory-0.14.14
|
- memory-0.14.14
|
||||||
- simple-sendfile-0.2.27
|
- simple-sendfile-0.2.27
|
||||||
|
- aeson-1.2.4.0
|
||||||
|
- http-client-0.5.10
|
||||||
|
- http-client-tls-0.3.5.2
|
||||||
|
- websockets-0.12.3.1
|
||||||
|
- th-abstraction-0.2.6.0
|
||||||
|
- persistent-template-2.5.3.1
|
||||||
|
|||||||
@ -1,3 +1,9 @@
|
|||||||
|
## 1.6.1
|
||||||
|
|
||||||
|
* Add a `Semigroup LiteApp` instance, and explicitly define `(<>)` in the
|
||||||
|
already existing `Semigroup` instances for `WidgetFor`, `Head`, `Body`,
|
||||||
|
`GWData`, and `UniqueList`.
|
||||||
|
|
||||||
## 1.6.0
|
## 1.6.0
|
||||||
|
|
||||||
* Upgrade to conduit 1.3.0
|
* Upgrade to conduit 1.3.0
|
||||||
|
|||||||
@ -4,6 +4,9 @@ module Yesod.Core.Internal.LiteApp where
|
|||||||
#if __GLASGOW_HASKELL__ < 710
|
#if __GLASGOW_HASKELL__ < 710
|
||||||
import Data.Monoid
|
import Data.Monoid
|
||||||
#endif
|
#endif
|
||||||
|
#if !(MIN_VERSION_base(4,11,0))
|
||||||
|
import Data.Semigroup (Semigroup(..))
|
||||||
|
#endif
|
||||||
import Yesod.Routes.Class
|
import Yesod.Routes.Class
|
||||||
import Yesod.Core.Class.Yesod
|
import Yesod.Core.Class.Yesod
|
||||||
import Yesod.Core.Class.Dispatch
|
import Yesod.Core.Class.Dispatch
|
||||||
@ -42,9 +45,14 @@ instance RenderRoute LiteApp where
|
|||||||
instance ParseRoute LiteApp where
|
instance ParseRoute LiteApp where
|
||||||
parseRoute (x, _) = Just $ LiteAppRoute x
|
parseRoute (x, _) = Just $ LiteAppRoute x
|
||||||
|
|
||||||
|
instance Semigroup LiteApp where
|
||||||
|
LiteApp x <> LiteApp y = LiteApp $ \m ps -> x m ps <|> y m ps
|
||||||
|
|
||||||
instance Monoid LiteApp where
|
instance Monoid LiteApp where
|
||||||
mempty = LiteApp $ \_ _ -> Nothing
|
mempty = LiteApp $ \_ _ -> Nothing
|
||||||
mappend (LiteApp x) (LiteApp y) = LiteApp $ \m ps -> x m ps <|> y m ps
|
#if !(MIN_VERSION_base(4,11,0))
|
||||||
|
mappend = (<>)
|
||||||
|
#endif
|
||||||
|
|
||||||
type LiteHandler = HandlerFor LiteApp
|
type LiteHandler = HandlerFor LiteApp
|
||||||
type LiteWidget = WidgetFor LiteApp
|
type LiteWidget = WidgetFor LiteApp
|
||||||
|
|||||||
@ -31,6 +31,7 @@ import Data.IORef (IORef, modifyIORef')
|
|||||||
import Data.Map (Map, unionWith)
|
import Data.Map (Map, unionWith)
|
||||||
import qualified Data.Map as Map
|
import qualified Data.Map as Map
|
||||||
import Data.Monoid (Endo (..), Last (..))
|
import Data.Monoid (Endo (..), Last (..))
|
||||||
|
import Data.Semigroup (Semigroup(..))
|
||||||
import Data.Serialize (Serialize (..),
|
import Data.Serialize (Serialize (..),
|
||||||
putByteString)
|
putByteString)
|
||||||
import Data.String (IsString (fromString))
|
import Data.String (IsString (fromString))
|
||||||
@ -55,12 +56,10 @@ import Web.Cookie (SetCookie)
|
|||||||
import Yesod.Core.Internal.Util (getTime, putTime)
|
import Yesod.Core.Internal.Util (getTime, putTime)
|
||||||
import Yesod.Routes.Class (RenderRoute (..), ParseRoute (..))
|
import Yesod.Routes.Class (RenderRoute (..), ParseRoute (..))
|
||||||
import Control.Monad.Reader (MonadReader (..))
|
import Control.Monad.Reader (MonadReader (..))
|
||||||
import Data.Monoid ((<>))
|
|
||||||
import Control.DeepSeq (NFData (rnf))
|
import Control.DeepSeq (NFData (rnf))
|
||||||
import Control.DeepSeq.Generics (genericRnf)
|
import Control.DeepSeq.Generics (genericRnf)
|
||||||
import Yesod.Core.TypeCache (TypeMap, KeyedTypeMap)
|
import Yesod.Core.TypeCache (TypeMap, KeyedTypeMap)
|
||||||
import Control.Monad.Logger (MonadLoggerIO (..))
|
import Control.Monad.Logger (MonadLoggerIO (..))
|
||||||
import Data.Semigroup (Semigroup)
|
|
||||||
import UnliftIO (MonadUnliftIO (..), UnliftIO (..))
|
import UnliftIO (MonadUnliftIO (..), UnliftIO (..))
|
||||||
|
|
||||||
-- Sessions
|
-- Sessions
|
||||||
@ -255,8 +254,11 @@ data WidgetData site = WidgetData
|
|||||||
|
|
||||||
instance a ~ () => Monoid (WidgetFor site a) where
|
instance a ~ () => Monoid (WidgetFor site a) where
|
||||||
mempty = return ()
|
mempty = return ()
|
||||||
mappend x y = x >> y
|
#if !(MIN_VERSION_base(4,11,0))
|
||||||
instance a ~ () => Semigroup (WidgetFor site a)
|
mappend = (<>)
|
||||||
|
#endif
|
||||||
|
instance a ~ () => Semigroup (WidgetFor site a) where
|
||||||
|
x <> y = x >> y
|
||||||
|
|
||||||
-- | A 'String' can be trivially promoted to a widget.
|
-- | A 'String' can be trivially promoted to a widget.
|
||||||
--
|
--
|
||||||
@ -357,10 +359,12 @@ newtype Title = Title { unTitle :: Html }
|
|||||||
|
|
||||||
newtype Head url = Head (HtmlUrl url)
|
newtype Head url = Head (HtmlUrl url)
|
||||||
deriving Monoid
|
deriving Monoid
|
||||||
instance Semigroup (Head a)
|
instance Semigroup (Head url) where
|
||||||
|
(<>) = mappend
|
||||||
newtype Body url = Body (HtmlUrl url)
|
newtype Body url = Body (HtmlUrl url)
|
||||||
deriving Monoid
|
deriving Monoid
|
||||||
instance Semigroup (Body a)
|
instance Semigroup (Body url) where
|
||||||
|
(<>) = mappend
|
||||||
|
|
||||||
type CssBuilderUrl a = (a -> [(Text, Text)] -> Text) -> TBuilder.Builder
|
type CssBuilderUrl a = (a -> [(Text, Text)] -> Text) -> TBuilder.Builder
|
||||||
|
|
||||||
@ -375,16 +379,19 @@ data GWData a = GWData
|
|||||||
}
|
}
|
||||||
instance Monoid (GWData a) where
|
instance Monoid (GWData a) where
|
||||||
mempty = GWData mempty mempty mempty mempty mempty mempty mempty
|
mempty = GWData mempty mempty mempty mempty mempty mempty mempty
|
||||||
mappend (GWData a1 a2 a3 a4 a5 a6 a7)
|
#if !(MIN_VERSION_base(4,11,0))
|
||||||
(GWData b1 b2 b3 b4 b5 b6 b7) = GWData
|
mappend = (<>)
|
||||||
(a1 `mappend` b1)
|
#endif
|
||||||
(a2 `mappend` b2)
|
instance Semigroup (GWData a) where
|
||||||
(a3 `mappend` b3)
|
GWData a1 a2 a3 a4 a5 a6 a7 <>
|
||||||
(a4 `mappend` b4)
|
GWData b1 b2 b3 b4 b5 b6 b7 = GWData
|
||||||
|
(mappend a1 b1)
|
||||||
|
(mappend a2 b2)
|
||||||
|
(mappend a3 b3)
|
||||||
|
(mappend a4 b4)
|
||||||
(unionWith mappend a5 b5)
|
(unionWith mappend a5 b5)
|
||||||
(a6 `mappend` b6)
|
(mappend a6 b6)
|
||||||
(a7 `mappend` b7)
|
(mappend a7 b7)
|
||||||
instance Semigroup (GWData a)
|
|
||||||
|
|
||||||
data HandlerContents =
|
data HandlerContents =
|
||||||
HCContent !H.Status !TypedContent
|
HCContent !H.Status !TypedContent
|
||||||
@ -473,8 +480,11 @@ instance MonadLoggerIO (HandlerFor site) where
|
|||||||
|
|
||||||
instance Monoid (UniqueList x) where
|
instance Monoid (UniqueList x) where
|
||||||
mempty = UniqueList id
|
mempty = UniqueList id
|
||||||
UniqueList x `mappend` UniqueList y = UniqueList $ x . y
|
#if !(MIN_VERSION_base(4,11,0))
|
||||||
instance Semigroup (UniqueList x)
|
mappend = (<>)
|
||||||
|
#endif
|
||||||
|
instance Semigroup (UniqueList x) where
|
||||||
|
UniqueList x <> UniqueList y = UniqueList $ x . y
|
||||||
|
|
||||||
instance IsString Content where
|
instance IsString Content where
|
||||||
fromString = flip ContentBuilder Nothing . BB.stringUtf8
|
fromString = flip ContentBuilder Nothing . BB.stringUtf8
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
name: yesod-core
|
name: yesod-core
|
||||||
version: 1.6.0
|
version: 1.6.1
|
||||||
license: MIT
|
license: MIT
|
||||||
license-file: LICENSE
|
license-file: LICENSE
|
||||||
author: Michael Snoyman <michael@snoyman.com>
|
author: Michael Snoyman <michael@snoyman.com>
|
||||||
|
|||||||
@ -1,3 +1,7 @@
|
|||||||
|
## 1.6.1
|
||||||
|
|
||||||
|
* Explicitly define `(<>)` in the `Semigroup` instance for `Enctype`
|
||||||
|
|
||||||
## 1.6.0
|
## 1.6.0
|
||||||
|
|
||||||
* Upgrade to yesod-core 1.6.0
|
* Upgrade to yesod-core 1.6.0
|
||||||
|
|||||||
@ -104,9 +104,12 @@ instance ToValue Enctype where
|
|||||||
toValue Multipart = "multipart/form-data"
|
toValue Multipart = "multipart/form-data"
|
||||||
instance Monoid Enctype where
|
instance Monoid Enctype where
|
||||||
mempty = UrlEncoded
|
mempty = UrlEncoded
|
||||||
mappend UrlEncoded UrlEncoded = UrlEncoded
|
#if !(MIN_VERSION_base(4,11,0))
|
||||||
mappend _ _ = Multipart
|
mappend = (<>)
|
||||||
instance Semigroup Enctype
|
#endif
|
||||||
|
instance Semigroup Enctype where
|
||||||
|
UrlEncoded <> UrlEncoded = UrlEncoded
|
||||||
|
_ <> _ = Multipart
|
||||||
|
|
||||||
data Ints = IntCons Int Ints | IntSingle Int
|
data Ints = IntCons Int Ints | IntSingle Int
|
||||||
instance Show Ints where
|
instance Show Ints where
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
name: yesod-form
|
name: yesod-form
|
||||||
version: 1.6.0
|
version: 1.6.1
|
||||||
license: MIT
|
license: MIT
|
||||||
license-file: LICENSE
|
license-file: LICENSE
|
||||||
author: Michael Snoyman <michael@snoyman.com>
|
author: Michael Snoyman <michael@snoyman.com>
|
||||||
|
|||||||
@ -3,6 +3,10 @@
|
|||||||
* Add byLabel-related functions like byLabelContain
|
* Add byLabel-related functions like byLabelContain
|
||||||
[#1482](https://github.com/yesodweb/yesod/pull/1482)
|
[#1482](https://github.com/yesodweb/yesod/pull/1482)
|
||||||
|
|
||||||
|
## 1.6.1
|
||||||
|
|
||||||
|
* Fix the build with `base-4.11` (GHC 8.4).
|
||||||
|
|
||||||
## 1.6.0
|
## 1.6.0
|
||||||
|
|
||||||
* Upgrade to yesod-core 1.6.0
|
* Upgrade to yesod-core 1.6.0
|
||||||
|
|||||||
@ -164,6 +164,7 @@ import Data.Time.Clock (getCurrentTime)
|
|||||||
import Control.Applicative ((<$>))
|
import Control.Applicative ((<$>))
|
||||||
import Text.Show.Pretty (ppShow)
|
import Text.Show.Pretty (ppShow)
|
||||||
import Data.Monoid (mempty)
|
import Data.Monoid (mempty)
|
||||||
|
import Data.Semigroup (Semigroup(..))
|
||||||
#if MIN_VERSION_base(4,9,0)
|
#if MIN_VERSION_base(4,9,0)
|
||||||
import GHC.Stack (HasCallStack)
|
import GHC.Stack (HasCallStack)
|
||||||
#elif MIN_VERSION_base(4,8,1)
|
#elif MIN_VERSION_base(4,8,1)
|
||||||
@ -576,9 +577,6 @@ genericNameFromLabel match label = do
|
|||||||
name:_ -> return name
|
name:_ -> return name
|
||||||
_ -> failure $ "More than one label contained " <> label
|
_ -> failure $ "More than one label contained " <> label
|
||||||
|
|
||||||
(<>) :: T.Text -> T.Text -> T.Text
|
|
||||||
(<>) = T.append
|
|
||||||
|
|
||||||
byLabelWithMatch :: (T.Text -> T.Text -> Bool) -- ^ The matching method which is used to find labels (i.e. exact, contains)
|
byLabelWithMatch :: (T.Text -> T.Text -> Bool) -- ^ The matching method which is used to find labels (i.e. exact, contains)
|
||||||
-> T.Text -- ^ The text contained in the @\<label>@.
|
-> T.Text -- ^ The text contained in the @\<label>@.
|
||||||
-> T.Text -- ^ The value to set the parameter to.
|
-> T.Text -- ^ The value to set the parameter to.
|
||||||
|
|||||||
@ -30,6 +30,7 @@ library
|
|||||||
, network >= 2.2
|
, network >= 2.2
|
||||||
, persistent >= 1.0
|
, persistent >= 1.0
|
||||||
, pretty-show >= 1.6
|
, pretty-show >= 1.6
|
||||||
|
, semigroups
|
||||||
, text
|
, text
|
||||||
, time
|
, time
|
||||||
, transformers >= 0.2.2
|
, transformers >= 0.2.2
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user