git.iko.soy/typeable/mandrill
on master help sign in
Merge pull request #15 from adinapoli/issue-14

Using CPP to make time-1.5 compile. Added GHC 7.10.1 to Travis

commit5a034e42a27d9fb602b8bce523fc1c8558fc0f74 authorAlfredo Di Napoli <alfredo.dinapoli@gmail.com> dateThu 30 Apr 2015, 17:28 (11 years ago) parenteb0e465cfc5c7d
4 files changed+19−5
.hub+1−1 .travis.yml+2−1 mandrill.cabal+1−1 src/Network/API/Mandrill/Types.hs+15−2
.hub+1−1
@@ -1 +1 @@
1−mandrill
1+mandrill-7.10.1
.travis.yml+2−1
@@ -9,6 +9,7 @@ env:
99 - GHCVER=7.6.3 CABALVER=1.16
1010 - GHCVER=7.8.2 CABALVER=1.18
1111 - GHCVER=7.8.3 CABALVER=1.18
12+ - GHCVER=7.10.1 CABALVER=1.22
1213 - GHCVER=head CABALVER=1.20
1314
1415matrix:
@@ -46,4 +47,4 @@ script:
4647after_script:
4748 - cabal install hpc-coveralls
4849 - export PATH=/opt/ghc/$GHCVER/bin:$HOME/.cabal/bin:$PATH
49− - hpc-coveralls --coverage-mode=StrictlyFullLines mandrill-tests
50+ - hpc-coveralls --coverage-mode=StrictlyFullLines mandrill-tests
mandrill.cabal+1−1
@@ -1,5 +1,5 @@
11name: mandrill
2−version: 0.2.1.0
2+version: 0.2.2.0
33synopsis: Library for interfacing with the Mandrill JSON API
44description: Pure Haskell client for the Mandrill JSON API
55license: MIT
src/Network/API/Mandrill/Types.hs+15−2
@@ -1,4 +1,5 @@
11{-# LANGUAGE TemplateHaskell #-}
2+{-# LANGUAGE CPP #-}
23{-# LANGUAGE RankNTypes #-}
34{-# LANGUAGE ScopedTypeVariables #-}
45{-# LANGUAGE OverloadedStrings #-}
@@ -12,7 +13,12 @@ import Data.Char
1213import Data.Maybe
1314import Data.Time
1415import Control.Applicative
15−import System.Locale (defaultTimeLocale)
16+import Data.Time (ParseTime)
17+#if MIN_VERSION_time(1,5,0)
18+import Data.Time.Format (TimeLocale, defaultTimeLocale)
19+#else
20+import System.Locale (TimeLocale, defaultTimeLocale)
21+#endif
1622import qualified Data.ByteString as B
1723import qualified Data.ByteString.Base64 as Base64
1824import qualified Data.Text as T
@@ -27,6 +33,13 @@ import qualified Text.Blaze.Html as Blaze
2733import qualified Text.Blaze.Html.Renderer.Text as Blaze
2834
2935
36+timeParse :: ParseTime t => TimeLocale -> String -> String -> Maybe t
37+#if MIN_VERSION_time(1,5,0)
38+timeParse = parseTimeM True
39+#else
40+timeParse = parseTime
41+#endif
42+
3043--------------------------------------------------------------------------------
3144data MandrillError = MandrillError {
3245 _merr_status :: !T.Text
@@ -329,6 +342,6 @@ instance ToJSON MandrillDate where
329342
330343instance FromJSON MandrillDate where
331344 parseJSON = withText "MandrillDate" $ \t ->
332− case parseTime defaultTimeLocale "%Y-%m-%d %I:%M:%S%Q" (T.unpack t) of
345+ case timeParse defaultTimeLocale "%Y-%m-%d %I:%M:%S%Q" (T.unpack t) of
333346 Just d -> pure $ MandrillDate d
334347 _ -> fail "could not parse Mandrill date"