packages feed

persistable-record 0.4.1.0 → 0.4.1.1

raw patch · 2 files changed

+80/−4 lines, 2 filesdep +persistable-recorddep +quickcheck-simplePVP ok

version bump matches the API change (PVP)

Dependencies added: persistable-record, quickcheck-simple

API changes (from Hackage documentation)

Files

persistable-record.cabal view
@@ -1,5 +1,5 @@ name:                persistable-record-version:             0.4.1.0+version:             0.4.1.1 synopsis:            Binding between SQL database values and haskell records. description:         This package contiains types to represent table constraints and                      interfaces to bind between SQL database values and Haskell records.@@ -8,11 +8,11 @@ license-file:        LICENSE author:              Kei Hibino maintainer:          ex8k.hibino@gmail.com-copyright:           Copyright (c) 2013-2016 Kei Hibino+copyright:           Copyright (c) 2013-2017 Kei Hibino category:            Database build-type:          Simple cabal-version:       >=1.10-tested-with:           GHC == 8.0.1+tested-with:           GHC == 8.0.1, GHC == 8.0.2                      , GHC == 7.10.1, GHC == 7.10.2, GHC == 7.10.3                      , GHC == 7.8.1, GHC == 7.8.2, GHC == 7.8.3, GHC == 7.8.4                      , GHC == 7.6.1, GHC == 7.6.2, GHC == 7.6.3@@ -38,9 +38,18 @@                         , names-th   hs-source-dirs:       src   ghc-options:          -Wall-   default-language:     Haskell2010 +test-suite nested+  build-depends:          base <5+                        , quickcheck-simple+                        , persistable-record++  type:                 exitcode-stdio-1.0+  main-is:              nestedEq.hs+  hs-source-dirs:       test+  ghc-options:          -Wall+  default-language:     Haskell2010  source-repository head   type:       git
+ test/nestedEq.hs view
@@ -0,0 +1,67 @@+{-# OPTIONS -fno-warn-orphans #-}+{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances #-}++import Control.Applicative ((<$>), (<*>))+import Test.QuickCheck.Simple (defaultMain, eqTest)++import Database.Record+  (PersistableType (..),+   FromSql (..), valueRecordFromSql, toRecord,+   ToSql (..), valueRecordToSql)+import Database.Record.Persistable (unsafePersistableSqlTypeFromNull)+++instance PersistableType String where+  persistableType = unsafePersistableSqlTypeFromNull "<null>"+++instance FromSql String String where+  recordFromSql = valueRecordFromSql id++instance FromSql String Int where+  recordFromSql = valueRecordFromSql read++instance ToSql String String where+  recordToSql = valueRecordToSql id++instance ToSql String Int where+  recordToSql = valueRecordToSql show+++data User =+  User+  { uid    ::  Int+  , uname  ::  String+  , note   ::  String+  } deriving (Eq, Show)++data Group =+  Group+  { gid    ::  Int+  , gname  ::  String+  } deriving (Eq, Show)++data Membership =+  Membership+  { user   ::  User+  , group  ::  Group+  } deriving (Eq, Show)++instance FromSql String User where+  recordFromSql = User <$> recordFromSql <*> recordFromSql <*> recordFromSql++instance FromSql String Group where+  recordFromSql = Group <$> recordFromSql <*> recordFromSql++instance FromSql String Membership where+  recordFromSql = Membership <$> recordFromSql <*> recordFromSql++main :: IO ()+main =+  defaultMain+  [ eqTest+    "nestedEq"+    (Membership { user  = User { uid = 1, uname = "Kei Hibino", note = "HRR developer" }+                , group = Group { gid = 1, gname = "Haskellers" }+                } )+    (toRecord ["1", "Kei Hibino", "HRR developer", "1", "Haskellers"]) ]