Skip to content

Commit fca6cdd

Browse files
Update to v0.14.0-rc3 (#62)
1 parent 3411dbc commit fca6cdd

File tree

11 files changed

+63
-33
lines changed

11 files changed

+63
-33
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ jobs:
1515

1616
- name: Set up PureScript toolchain
1717
uses: purescript-contrib/setup-purescript@main
18+
with:
19+
purescript: "0.14.0-rc3"
1820

1921
- name: Cache PureScript dependencies
2022
uses: actions/cache@v2

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ New features:
1111
Bugfixes:
1212

1313
Other improvements:
14+
- Changed test library from `spec` to `assert`
1415

1516
## [v4.0.1](https://github.com/purescript-contrib/purescript-formatters/releases/tag/v4.0.1) - 2019-02-09
1617

packages.dhall

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
let upstream =
2-
https://github.com/purescript/package-sets/releases/download/psc-0.13.8-20200922/packages.dhall sha256:5edc9af74593eab8834d7e324e5868a3d258bbab75c5531d2eb770d4324a2900
2+
https://raw.githubusercontent.com/purescript/package-sets/prepare-0.14/src/packages.dhall
33

44
in upstream

spago.dhall

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
{ name = "formatters"
22
, dependencies =
33
[ "aff"
4+
, "assert"
45
, "console"
56
, "datetime"
67
, "effect"
78
, "fixed-points"
89
, "generics-rep"
910
, "lists"
11+
, "numbers"
1012
, "parsing"
1113
, "prelude"
1214
, "psci-support"
13-
, "spec"
1415
, "transformers"
1516
]
1617
, packages = ./packages.dhall

src/Data/Formatter/Parser/Interval.purs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import Prelude
1010

1111
import Control.Alt ((<|>))
1212
import Data.DateTime (DateTime)
13-
import Data.Either (Either(..), fromRight)
13+
import Data.Either (Either(..), either)
1414
import Data.Foldable (class Foldable, fold, foldMap, intercalate)
1515
import Data.Formatter.DateTime (unformatParser, Formatter, parseFormatString)
1616
import Data.Formatter.Parser.Number (parseNumber, parseMaybeInteger)
@@ -19,7 +19,7 @@ import Data.Interval.Duration.Iso (IsoDuration, mkIsoDuration, prettyError)
1919
import Data.Maybe (Maybe)
2020
import Data.Traversable (sequence)
2121
import Data.Tuple (Tuple(..), snd)
22-
import Partial.Unsafe (unsafePartial)
22+
import Partial.Unsafe (unsafeCrashWith)
2323
import Text.Parsing.Parser as P
2424
import Text.Parsing.Parser.Combinators as PC
2525
import Text.Parsing.Parser.String as PS
@@ -77,4 +77,4 @@ parseDateTime = unformatParser extendedDateTimeFormatInUTC
7777

7878
extendedDateTimeFormatInUTC Formatter
7979
extendedDateTimeFormatInUTC = parseFormatString "YYYY-MM-DDTHH:mm:ssZ"
80-
# unsafePartial fromRight -- the format must be valid ISO date format
80+
# either unsafeCrashWith identity -- the format must be valid ISO date format

src/Data/Formatter/Parser/Number.purs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ import Text.Parsing.Parser as P
1515
import Text.Parsing.Parser.Combinators as PC
1616
import Data.Formatter.Parser.Utils (oneOfAs)
1717
import Text.Parsing.Parser.String as PS
18-
import Data.Maybe (Maybe)
18+
import Data.Maybe (Maybe(..))
19+
import Data.Number (fromString)
1920
import Data.Foldable (foldMap)
20-
import Global (readFloat)
2121

2222
parseInteger s m. Monad m PS.StringLike s P.ParserT s m Int
2323
parseInteger = some parseDigit <#> foldDigits
@@ -26,7 +26,11 @@ parseMaybeInteger ∷ ∀ s m. Monad m ⇒ PS.StringLike s ⇒ P.ParserT s m (Ma
2626
parseMaybeInteger = PC.optionMaybe parseInteger
2727

2828
parseFractional s m. Monad m PS.StringLike s P.ParserT s m Number
29-
parseFractional = (some parseDigit) <#> (foldMap show >>> ("0." <> _) >>> readFloat)
29+
parseFractional = do
30+
digitStr <- (some parseDigit) <#> (foldMap show >>> ("0." <> _))
31+
case fromString digitStr of
32+
Just n -> pure n
33+
Nothing -> P.fail ("Not a number: " <> digitStr)
3034

3135
parseNumber s m. Monad m PS.StringLike s P.ParserT s m Number
3236
parseNumber = (+)

test/src/DateTime.purs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,16 @@ module Test.DateTime (datetimeTest) where
22

33
import Prelude
44

5-
import Control.Alternative (class Alternative, empty)
6-
import Control.MonadZero (guard)
5+
import Control.Monad.Reader.Class (class MonadReader)
6+
import Control.Alternative (class Alternative, empty, guard)
77
import Data.DateTime (DateTime)
88
import Data.Either (Either(..))
99
import Data.Formatter.DateTime as FDT
1010
import Data.List (fromFoldable)
11-
import Test.Spec (describe, Spec, it)
12-
import Test.Spec.Assertions (shouldEqual)
13-
import Test.Utils (forAll, makeDateTime)
11+
import Effect.Aff.Class (class MonadAff)
12+
import Test.Utils (forAll, makeDateTime, describe, it, shouldEqual)
1413

15-
datetimeTest Spec Unit
14+
datetimeTest forall m. MonadReader Int m MonadAff m m Unit
1615
datetimeTest = describe "Data.Formatter.DateTime" do
1716
forAll (\a → a.format <> " | " <> a.dateStr)
1817
"formatDateTime/unformatDateTime should format/unformat dateTime"

test/src/Interval.purs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,25 @@ module Test.Interval (intervalTest) where
22

33
import Prelude
44

5+
import Control.Monad.Reader.Class (class MonadReader)
56
import Effect.Aff (Aff)
7+
import Effect.Aff.Class (class MonadAff)
68
import Data.DateTime (DateTime)
7-
import Data.Either (Either(..), fromRight)
9+
import Data.Either (Either(..), either)
810
import Data.Foldable (class Foldable, fold)
911
import Data.Formatter.Interval (unformatInterval, unformatRecurringInterval, formatRecurringInterval)
1012
import Data.Formatter.Parser.Interval (parseIsoDuration)
1113
import Data.Formatter.Parser.Utils (runP)
1214
import Data.Interval as I
1315
import Data.Interval.Duration.Iso (IsoDuration, mkIsoDuration)
1416
import Data.Maybe (Maybe(..))
15-
import Partial.Unsafe (unsafePartial)
16-
import Test.Spec (describe, Spec)
17-
import Test.Spec.Assertions (shouldEqual)
18-
import Test.Utils (forAll, makeDateTime)
17+
import Partial.Unsafe (unsafeCrashWith)
18+
import Test.Utils (forAll, makeDateTime, describe, shouldEqual)
1919

20-
prop e f. Foldable f String f {str String | e} ({str String | e} Aff Unit) Spec Unit
20+
prop m e f. MonadReader Int m MonadAff m Foldable f String f {str String | e} ({str String | e} Aff Unit) m Unit
2121
prop = forAll (show <<< _.str)
2222

23-
intervalTest Spec Unit
23+
intervalTest forall m. MonadReader Int m MonadAff m m Unit
2424
intervalTest = describe "Data.Formatter.Interval" do
2525
prop "shouldn't unformat invalid Interval" invalidIntervals \({str, err}) → do
2626
(unformatInterval str) `shouldEqual` (Left $ err)
@@ -40,7 +40,8 @@ intervalTest = describe "Data.Formatter.Interval" do
4040

4141
unsafeMkToIsoDuration I.Duration IsoDuration
4242
unsafeMkToIsoDuration d = mkIsoDuration d
43-
# unsafePartial fromRight -- the duration must be valid ISO duration
43+
-- the duration must be valid ISO duration
44+
# either (\_ -> unsafeCrashWith "unsafeMkToIsoDuration failed") identity
4445

4546
durations Array { str String, formatedStr String, dur IsoDuration }
4647
durations =

test/src/Main.purs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,15 @@ module Test.Main where
22

33
import Prelude
44

5+
import Control.Monad.Reader.Trans (runReaderT)
56
import Effect (Effect)
67
import Effect.Aff (launchAff_)
78
import Test.DateTime (datetimeTest)
89
import Test.Interval (intervalTest)
910
import Test.Number (numberTest)
10-
import Test.Spec.Reporter.Console (consoleReporter)
11-
import Test.Spec.Runner (runSpec)
1211

1312
main Effect Unit
14-
main = launchAff_ $ runSpec [consoleReporter] do
13+
main = launchAff_ $ flip runReaderT 0 do
1514
intervalTest
1615
datetimeTest
1716
numberTest

test/src/Number.purs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ module Test.Number (numberTest) where
22

33
import Prelude
44

5+
import Control.Monad.Reader.Class (class MonadReader)
56
import Data.Formatter.Number (Formatter(..), printFormatter, parseFormatString, format, unformat)
67
import Data.Either (Either(..))
8+
import Effect.Aff.Class (class MonadAff)
79

8-
import Test.Spec (describe, Spec)
9-
import Test.Spec.Assertions (shouldEqual)
10-
import Test.Utils (forAll)
10+
import Test.Utils (forAll, describe, shouldEqual)
1111

12-
numberTest Spec Unit
12+
numberTest forall m. MonadReader Int m MonadAff m m Unit
1313
numberTest = describe "Data.Formatter.Number" do
1414
forAll _.str
1515
"should print formatter"

0 commit comments

Comments
 (0)