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 +18/−0
- test/Data/Validity/CaseInsensitiveSpec.hs +17/−0
- test/Spec.hs +1/−0
- validity-case-insensitive.cabal +49/−0
+ 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