yesod-ip 0.4.1 → 0.5.0
raw patch · 6 files changed
+25/−30 lines, 6 filesdep ~ipPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: ip
API changes (from Hackage documentation)
- Database.Persist.Net.PostgreSQL: instance Database.Persist.Class.PersistField.PersistField Net.IPv4.IPv4
- Database.Persist.Net.PostgreSQL: instance Database.Persist.Class.PersistField.PersistField Net.Mac.Mac
- Database.Persist.Net.PostgreSQL: instance Database.Persist.Sql.Class.PersistFieldSql Net.IPv4.IPv4
- Database.Persist.Net.PostgreSQL: instance Database.Persist.Sql.Class.PersistFieldSql Net.Mac.Mac
- Database.Persist.Net.Simple: instance Database.Persist.Class.PersistField.PersistField Net.IPv4.IPv4
- Database.Persist.Net.Simple: instance Database.Persist.Class.PersistField.PersistField Net.Mac.Mac
- Database.Persist.Net.Simple: instance Database.Persist.Sql.Class.PersistFieldSql Net.IPv4.IPv4
- Database.Persist.Net.Simple: instance Database.Persist.Sql.Class.PersistFieldSql Net.Mac.Mac
- Web.HttpApiData.Net: instance Web.HttpApiData.Internal.FromHttpApiData Net.IPv4.IPv4
- Web.HttpApiData.Net: instance Web.HttpApiData.Internal.FromHttpApiData Net.Mac.Mac
- Web.HttpApiData.Net: instance Web.HttpApiData.Internal.ToHttpApiData Net.IPv4.IPv4
- Web.HttpApiData.Net: instance Web.HttpApiData.Internal.ToHttpApiData Net.Mac.Mac
- Web.PathPieces.Net: instance Web.PathPieces.PathPiece Net.IPv4.IPv4
- Web.PathPieces.Net: instance Web.PathPieces.PathPiece Net.Mac.Mac
+ Database.Persist.Net.PostgreSQL: instance Database.Persist.Class.PersistField.PersistField Net.Types.IPv4
+ Database.Persist.Net.PostgreSQL: instance Database.Persist.Class.PersistField.PersistField Net.Types.Mac
+ Database.Persist.Net.PostgreSQL: instance Database.Persist.Sql.Class.PersistFieldSql Net.Types.IPv4
+ Database.Persist.Net.PostgreSQL: instance Database.Persist.Sql.Class.PersistFieldSql Net.Types.Mac
+ Database.Persist.Net.Simple: instance Database.Persist.Class.PersistField.PersistField Net.Types.IPv4
+ Database.Persist.Net.Simple: instance Database.Persist.Class.PersistField.PersistField Net.Types.Mac
+ Database.Persist.Net.Simple: instance Database.Persist.Sql.Class.PersistFieldSql Net.Types.IPv4
+ Database.Persist.Net.Simple: instance Database.Persist.Sql.Class.PersistFieldSql Net.Types.Mac
+ Web.HttpApiData.Net: instance Web.HttpApiData.Internal.FromHttpApiData Net.Types.IPv4
+ Web.HttpApiData.Net: instance Web.HttpApiData.Internal.FromHttpApiData Net.Types.Mac
+ Web.HttpApiData.Net: instance Web.HttpApiData.Internal.ToHttpApiData Net.Types.IPv4
+ Web.HttpApiData.Net: instance Web.HttpApiData.Internal.ToHttpApiData Net.Types.Mac
+ Web.PathPieces.Net: instance Web.PathPieces.PathPiece Net.Types.IPv4
+ Web.PathPieces.Net: instance Web.PathPieces.PathPiece Net.Types.Mac
Files
- src/Database/Persist/Net/PostgreSQL.hs +4/−5
- src/Database/Persist/Net/Simple.hs +5/−6
- src/Web/HttpApiData/Net.hs +1/−2
- src/Web/PathPieces/Net.hs +1/−2
- src/Yesod/Form/Net.hs +11/−12
- yesod-ip.cabal +3/−3
src/Database/Persist/Net/PostgreSQL.hs view
@@ -2,11 +2,11 @@ -- from the @ip@ package. These instances only work for -- PostgresSQL. The following PostgreSQL column types are -- used for each data types:--- +-- -- * 'IPv4': @inet@ -- * 'Mac': @macaddr@--- -module Database.Persist.Net.PostgreSQL +--+module Database.Persist.Net.PostgreSQL () where import Database.Persist@@ -15,8 +15,7 @@ import Data.Text (Text) import Data.Monoid-import Net.IPv4 (IPv4)-import Net.Mac (Mac)+import Net.Types (IPv4,Mac) import qualified Data.Text as Text import qualified Net.IPv4.Text as IPv4Text import qualified Net.IPv4.ByteString.Char8 as IPv4ByteString
src/Database/Persist/Net/Simple.hs view
@@ -2,12 +2,12 @@ -- | This module provides orphan instances for the typeclasses -- 'PersistField' and 'PersistFieldSql'. The instances provided--- are for the data types 'IPv4' and 'Mac' from the @ip@ package. --- These instances will choose the +-- are for the data types 'IPv4' and 'Mac' from the @ip@ package.+-- These instances will choose the -- standard text type for the database column. If you are--- using PostgreSQL, you may want to consider importing +-- using PostgreSQL, you may want to consider importing -- the @Database.Persist.Net.PostgreSQL@ module instead.-module Database.Persist.Net.Simple +module Database.Persist.Net.Simple () where import Database.Persist@@ -16,8 +16,7 @@ import Data.Text (Text) import Data.Monoid-import Net.IPv4 (IPv4)-import Net.Mac (Mac)+import Net.Types (IPv4, Mac) import qualified Data.Text as Text import qualified Net.IPv4.Text as IPv4Text import qualified Net.Mac.Text as MacText
src/Web/HttpApiData/Net.hs view
@@ -6,8 +6,7 @@ import Web.HttpApiData (ToHttpApiData(..),FromHttpApiData(..)) import Data.Text (Text) import Data.Monoid-import Net.IPv4 (IPv4)-import Net.Mac (Mac)+import Net.Types (IPv4,Mac) import qualified Data.Text as Text import qualified Net.IPv4.Text as IPv4Text import qualified Net.IPv4.ByteString.Char8 as IPv4ByteString
src/Web/PathPieces/Net.hs view
@@ -6,8 +6,7 @@ import Web.PathPieces (PathPiece(..)) import Data.Text (Text) import Data.Monoid-import Net.IPv4 (IPv4)-import Net.Mac (Mac)+import Net.Types (IPv4,Mac) import qualified Net.IPv4.Text as IPv4Text import qualified Net.Mac.Text as MacText
src/Yesod/Form/Net.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedStrings #-}-module Yesod.Form.Net +module Yesod.Form.Net ( ipv4Field , macField , NetFormMessage(..)@@ -10,8 +10,7 @@ import Yesod.Core import Yesod.Form.Fields import Yesod.Form.Types-import Net.IPv4 (IPv4)-import Net.Mac (Mac)+import Net.Types (IPv4, Mac) import Data.Text (Text) import qualified Net.IPv4 as IPv4 import qualified Net.IPv4.Text as IPv4Text@@ -24,25 +23,25 @@ englishNetFormMessage :: NetFormMessage -> Text englishNetFormMessage x = case x of- MsgInvalidIPv4 -> "Please enter an IPv4 address in dot decimal notation." + MsgInvalidIPv4 -> "Please enter an IPv4 address in dot decimal notation." MsgInvalidMac -> "Please enter a valid MAC address." ipv4Field :: ( Monad m- , RenderMessage (HandlerSite m) NetFormMessage - , RenderMessage (HandlerSite m) FormMessage + , RenderMessage (HandlerSite m) NetFormMessage+ , RenderMessage (HandlerSite m) FormMessage ) => Field m IPv4 ipv4Field = mapField IPv4Text.encode from textField- where + where from t = case IPv4Text.decode t of Nothing -> Left (SomeMessage MsgInvalidIPv4) Just ipv4 -> Right ipv4 macField :: ( Monad m- , RenderMessage (HandlerSite m) NetFormMessage - , RenderMessage (HandlerSite m) FormMessage + , RenderMessage (HandlerSite m) NetFormMessage+ , RenderMessage (HandlerSite m) FormMessage ) => Field m Mac macField = mapField MacText.encode from textField- where + where from t = case MacText.decode t of Nothing -> Left (SomeMessage MsgInvalidMac) Just mac -> Right mac@@ -50,9 +49,9 @@ mapField :: Monad m => (a -> b) -> (b -> Either (SomeMessage (HandlerSite m)) a) -> Field m b -> Field m a mapField fwd bck (Field parse view enctype) = Field (\ts fis -> do- eres <- parse ts fis + eres <- parse ts fis return $ eres >>= (\mb -> case mb of- Just b -> Just <$> bck b + Just b -> Just <$> bck b Nothing -> Right Nothing) ) (\a b c d e -> view a b c (fmap fwd d) e)
yesod-ip.cabal view
@@ -1,5 +1,5 @@ name: yesod-ip-version: 0.4.1+version: 0.5.0 synopsis: Code for using the ip package with yesod description: Please see README.md homepage: https://github.com/andrewthad/yesod-ip#readme@@ -21,7 +21,7 @@ Database.Persist.Net.PostgreSQL Web.PathPieces.Net Web.HttpApiData.Net- build-depends: + build-depends: base >= 4.7 && < 5 , text , yesod-core@@ -29,7 +29,7 @@ , persistent , path-pieces , http-api-data- , ip >= 0.6.0 && < 0.7.0+ , ip >= 0.8.1 && < 0.9 default-language: Haskell2010 source-repository head