packages feed

envparse 0.2.0 → 0.2.1

raw patch · 4 files changed

+22/−12 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

CHANGELOG.markdown view
@@ -1,3 +1,8 @@+0.2.1+=====++  * Cosmetic changes in the help output.+ 0.2.0 ===== @@ -5,7 +10,7 @@    * Added `parseOr`, a slightly generalized version of `parse`. -  * Renamed `parseTest` to `parsePure`+  * Renamed `parseTest` to `parsePure`.  0.1.0 =====
envparse.cabal view
@@ -1,5 +1,5 @@ name:                envparse-version:             0.2.0+version:             0.2.1 synopsis:            Parse environment variables description:   Here's a simple example of a program that uses @envparse@'s parser:@@ -42,7 +42,7 @@       Parsing errors:    -    NAME is missing+    NAME is unset   @ homepage:            https://supki.github.io/envparse license:             BSD2@@ -65,7 +65,7 @@ source-repository this   type:     git   location: https://github.com/supki/envparse-  tag:      0.2.0+  tag:      0.2.1  library   default-language:
src/Env.hs view
@@ -39,7 +39,7 @@ -- -- Parsing errors: -----   NAME is missing+--   NAME is unset -- @ module Env   ( parse
src/Env/Help.hs view
@@ -3,10 +3,11 @@   ( helpDoc   ) where -import           Data.List (intercalate)+import qualified Data.List as List import qualified Data.Map as Map import           Data.Maybe (catMaybes) import           Data.Monoid ((<>))+import           Data.Ord (comparing)  import           Env.Free import           Env.Parse@@ -14,12 +15,12 @@  helpDoc :: Info a -> Parser b -> [Error] -> String helpDoc Info { infoHeader, infoDesc, infoFooter } p fs =-  intercalate "\n\n" . catMaybes $+  List.intercalate "\n\n" . catMaybes $     [ infoHeader-    , fmap (intercalate "\n" . splitWords 50) infoDesc+    , fmap (List.intercalate "\n" . splitWords 50) infoDesc     , Just "Available environment variables:"-    , Just (intercalate "\n" (helpParserDoc p))-    , fmap (intercalate "\n" . splitWords 50) infoFooter+    , Just (List.intercalate "\n" (helpParserDoc p))+    , fmap (List.intercalate "\n" . splitWords 50) infoFooter     ] ++ map Just (helpFailuresDoc fs)  helpParserDoc :: Parser a -> [String]@@ -40,11 +41,15 @@  helpFailuresDoc :: [Error] -> [String] helpFailuresDoc [] = []-helpFailuresDoc fs = ["Parsing errors:", intercalate "\n" (map helpFailureDoc fs)]+helpFailuresDoc fs = ["Parsing errors:", List.intercalate "\n" (map helpFailureDoc (List.sortBy (comparing varName) fs))]  helpFailureDoc :: Error -> String helpFailureDoc (ParseError n e)  = "  " ++ n ++ " cannot be parsed: " ++ e-helpFailureDoc (ENoExistError n) = "  " ++ n ++ " is missing"+helpFailureDoc (ENoExistError n) = "  " ++ n ++ " is unset"++varName :: Error -> String+varName (ParseError n _)  = n+varName (ENoExistError n) = n  splitWords :: Int -> String -> [String] splitWords n = go [] 0 . words