packages feed

validity-case-insensitive (empty) → 0.0.0.0

raw patch · 4 files changed

+85/−0 lines, 4 filesdep +basedep +case-insensitivedep +genvalidity-hspec

Dependencies added: base, case-insensitive, genvalidity-hspec, hspec, validity, validity-case-insensitive

Files

+ src/Data/Validity/CaseInsensitive.hs view
@@ -0,0 +1,18 @@+{-# LANGUAGE FlexibleInstances #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}++module Data.Validity.CaseInsensitive where++import Data.CaseInsensitive (CI)+import qualified Data.CaseInsensitive as CI+import Data.Validity++instance (Validity a, Eq a, CI.FoldCase a) => Validity (CI a) where+  validate ci =+    mconcat+      [ delve "original" $ CI.original ci,+        delve "foldedCase" $ CI.foldedCase ci,+        -- The following could go wrong when using unsafeMk:+        declare "The foldedCase is indeed folded correctly" $+          CI.foldedCase ci == CI.foldCase (CI.original ci)+      ]
+ test/Data/Validity/CaseInsensitiveSpec.hs view
@@ -0,0 +1,17 @@+module Data.Validity.CaseInsensitiveSpec+  ( spec,+  )+where++import qualified Data.CaseInsensitive as CI+import qualified Data.CaseInsensitive.Unsafe as CI+import Data.Validity.CaseInsensitive ()+import Test.Hspec+import Test.Validity++spec :: Spec+spec = do+  it "says that this case-insensitive string is valid" $+    shouldBeValid $ CI.mk "hello world"+  it "says that this unsafely constructed unfolded string is invalid" $+    shouldBeInvalid $ CI.unsafeMk "HeLlO wOrLd"
+ test/Spec.hs view
@@ -0,0 +1,1 @@+{-# OPTIONS_GHC -F -pgmF hspec-discover #-}
+ validity-case-insensitive.cabal view
@@ -0,0 +1,49 @@+cabal-version: 1.12++-- This file has been generated from package.yaml by hpack version 0.34.6.+--+-- see: https://github.com/sol/hpack++name:           validity-case-insensitive+version:        0.0.0.0+synopsis:       Validity instances for case-insensitive+category:       Validity+homepage:       https://github.com/NorfairKing/validity#readme+bug-reports:    https://github.com/NorfairKing/validity/issues+license:        MIT+build-type:     Simple++source-repository head+  type: git+  location: https://github.com/NorfairKing/validity++library+  exposed-modules:+      Data.Validity.CaseInsensitive+  other-modules:+      Paths_validity_case_insensitive+  hs-source-dirs:+      src+  build-depends:+      base >=4.7 && <5+    , case-insensitive+    , validity >=0.9.0.2+  default-language: Haskell2010++test-suite validity-case-insensitive-test+  type: exitcode-stdio-1.0+  main-is: Spec.hs+  other-modules:+      Data.Validity.CaseInsensitiveSpec+      Paths_validity_case_insensitive+  hs-source-dirs:+      test+  ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall+  build-depends:+      base >=4.7 && <5+    , case-insensitive+    , genvalidity-hspec+    , hspec+    , validity >=0.9.0.2+    , validity-case-insensitive+  default-language: Haskell2010