packages feed

teardown 0.4.1.0 → 0.5.0.0

raw patch · 5 files changed

+72/−28 lines, 5 filesdep +prettyprinterdep −ansi-wl-pprintPVP ok

version bump matches the API change (PVP)

Dependencies added: prettyprinter

Dependencies removed: ansi-wl-pprint

API changes (from Hackage documentation)

- Control.Teardown: prettyTeardownResult :: TeardownResult -> Doc
+ Control.Teardown: prettyTeardownResult :: TeardownResult -> Doc ann

Files

CHANGELOG.md view
@@ -7,6 +7,16 @@ [1]: http://semver.org/spec/v2.0.0.html [2]: https://github.com/roman/Haskell-teardown/libraries/teardown/CHANGELOG.md +## V0.5.0.0++**BREAKING CHANGES**++* Move from `ansi-wl-pprint` to `prettyprinter`+* Re-implement `Printer` using `prettyprinter` API, now `prettyTeardownResult`+  returns a `Doc` type from the `prettyprinter` library+* Add a `Pretty` instance for the `DisposeResult` type+* Add a `Display` instance for the `DisposeResult` type+ ## v0.4.1.0  * Ensure that all `IO ()` sub-routines on `runTeardown` get executed inside a
README.md view
@@ -32,17 +32,16 @@  ## Documentation -* [Tutorial](https://romanandreg.gitbooks.io/teardown/v0.4/tutorial.html)-* [How-To Guides](https://romanandreg.gitbooks.io/teardown/v0.4/how-to/create-teardown.html) * [API Reference](https://hackage.haskell.org/package/teardown)+* [How-To Guides](https://romanandreg.gitbook.io/teardown/how-to/v0.5)  ## Development -[![Build Status](https://travis-ci.org/roman/Haskell-teardown.svg?branch=master)](https://travis-ci.org/roman/Haskell-teardown)-[![Github](https://img.shields.io/github/commits-since/roman/haskell-teardown/v0.4.0.0.svg)](https://img.shields.io/github/commits-since/roman/haskell-teardown/v0.4.0.0.svg)+![Build Status](https://circleci.com/gh/roman/Haskell-teardown.svg?style=svg)+[![Github](https://img.shields.io/github/commits-since/roman/haskell-teardown/v0.5.0.0.svg)](https://img.shields.io/github/commits-since/roman/haskell-teardown/v0.5.0.0.svg) [![Hackage Dependencies](https://img.shields.io/hackage-deps/v/teardown.svg)](http://packdeps.haskellers.com/feed?needle=teardown) -Follow the [developer guidelines](https://romanandreg.gitbooks.io/teardown/content/CONTRIBUTING.html)+Follow the [developer guidelines](https://romanandreg.gitbook.io/teardown/development-notes)  ## License 
src/Control/Teardown/Internal/Printer.hs view
@@ -2,24 +2,22 @@ {-# LANGUAGE OverloadedStrings #-} module Control.Teardown.Internal.Printer where -import Data.Monoid ((<>))-import RIO         hiding ((<>))+import RIO hiding ((<>))  import           Data.Typeable (typeOf) import qualified RIO.Text      as Text -import Text.PrettyPrint.ANSI.Leijen hiding ((<>))-+import Data.Text.Prettyprint.Doc  import Control.Teardown.Internal.Types -treeTrunk :: Int -> Int -> Doc-treeTrunk start level = hcat (map (\_ -> text "    ") [1 .. start])-  <> hcat (map (\_ -> text "   |") [start .. level - 1])+treeTrunk :: Int -> Int -> Doc ann+treeTrunk start level = hcat (map (\_ -> "    ") [1 .. start])+  <> hcat (map (\_ -> "   |") [start .. level - 1])  -- | Renders an ASCII Tree with the "TeardownResult" of a "Teardown" sub-routine -- execution-prettyTeardownResult :: TeardownResult -> Doc+prettyTeardownResult :: TeardownResult -> Doc ann prettyTeardownResult result = render 0 0 result <> hardline  where   renderError start level (SomeException err) =@@ -33,12 +31,12 @@       errorReport =         treeTrunk (start - 1) (level + 1)           <>  ">"-          <>  indent 2 (text (show (typeOf err)) <> ":")-          <+> text (Text.unpack fstErrLine)+          <>  indent 2 (pretty (show (typeOf err)) <> ":")+          <+> pretty (Text.unpack fstErrLine)           :   map                 (\l -> treeTrunk (start - 1) (level + 1) <> ">" <> indent                   2-                  (text $ Text.unpack l)+                  (pretty $ Text.unpack l)                 )                 errLines     in@@ -50,26 +48,30 @@       treeTrunk start (level + 1) <> render (start + 1) (level + 1) lastResult     (r : results) ->       treeTrunk start (level + 1)-        <>   render     start (level + 1) r-        <$$> renderTree start level       results+        <> render start (level + 1) r+        <> hardline+        <> renderTree start level results+   render start level disposeResult = case disposeResult of-    EmptyResult desc -> "`-" <+> "✓" <+> text (Text.unpack desc) <+> "(empty)"+    EmptyResult desc ->+      "`-" <+> "✓" <+> pretty (Text.unpack desc) <+> "(empty)"      LeafResult desc elapsed Nothing ->-      "`-" <+> "✓" <+> text (Text.unpack desc) <+> text+      "`-" <+> "✓" <+> pretty (Text.unpack desc) <+> pretty         ("(" <> show elapsed <> ")")      LeafResult desc elapsed (Just err) ->       "`-"-        <+>  "✘"-        <+>  text (Text.unpack desc)-        <+>  text ("(" <> show elapsed <> ")")-        <$$> renderError start level err+        <+> "✘"+        <+> pretty (Text.unpack desc)+        <+> pretty ("(" <> show elapsed <> ")")+        <>  hardline+        <>  renderError start level err      BranchResult desc elapsed didFail results -> vcat       [ "`-"       <+> (if didFail then "✘" else "✓")-      <+> text (Text.unpack desc)-      <+> text ("(" <> show elapsed <> ")")+      <+> pretty (Text.unpack desc)+      <+> parens (pretty $ show elapsed)       , renderTree start level results       ]
src/Control/Teardown/Internal/Types.hs view
@@ -3,6 +3,7 @@ {-# LANGUAGE DeriveGeneric     #-} {-# LANGUAGE NamedFieldPuns    #-} {-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-} module Control.Teardown.Internal.Types where  import RIO@@ -12,6 +13,10 @@ import GHC.Generics (Generic) #endif +import           Data.Text.Prettyprint.Doc (Pretty, pretty, (<+>))+import qualified Data.Text.Prettyprint.Doc as Pretty++ --------------------------------------------------------------------------------  type Description = Text@@ -47,6 +52,34 @@       resultDescription :: !Description     }   deriving (Generic, Show)++instance Pretty TeardownResult where+  pretty result =+    case result of+      EmptyResult {resultDescription} ->+        "✓" <+> pretty resultDescription <+> Pretty.parens "empty"+      LeafResult {resultDescription, resultElapsedTime, resultError} ->+        case resultError of+          Nothing ->+            "✓" <+> pretty resultDescription <+> Pretty.parens (pretty $ show resultElapsedTime)+          Just err ->+            Pretty.hang 2+              (Pretty.vsep ["✘"+                            <+> pretty resultDescription+                            <+> Pretty.parens (pretty $ show resultElapsedTime)+                           , "|" <+> pretty (show err) ])+      BranchResult {resultDidFail, resultDescription, resultElapsedTime, resultListing} ->+        let+          symbolDoc = if resultDidFail then "✘" else "✓"+        in+          symbolDoc+          <+> pretty resultDescription+          <+> Pretty.parens (pretty $ show resultElapsedTime)+          <> Pretty.hardline+          <> Pretty.indent 2 (Pretty.align (Pretty.vsep (map pretty resultListing)))++instance Display TeardownResult where+  display = displayShow . pretty  getElapsedTime :: TeardownResult -> NominalDiffTime getElapsedTime result =
teardown.cabal view
@@ -1,5 +1,5 @@ name: teardown-version: 0.4.1.0+version: 0.5.0.0 cabal-version: >=1.10 build-type: Simple license: MIT@@ -39,8 +39,8 @@     exposed-modules:         Control.Teardown     build-depends:-        ansi-wl-pprint >=0.6.7.3,         base >=4.8 && <5,+        prettyprinter >=1.1,         rio >=0.0.0.0,         typed-process >=0.1.0.0,         unliftio >=0.2.4.0