packages feed

configurator 0.1.0.0 → 0.2.0.0

raw patch · 7 files changed

+68/−32 lines, 7 filesdep +attoparsecdep −attoparsec-textdep ~hashablePVP ok

version bump matches the API change (PVP)

Dependencies added: attoparsec

Dependencies removed: attoparsec-text

Dependency ranges changed: hashable

API changes (from Hackage documentation)

- Data.Configurator.Types: Number :: Integer -> Value
+ Data.Configurator.Types: Number :: Rational -> Value

Files

Data/Configurator.hs view
@@ -5,7 +5,7 @@ -- Module:      Data.Configurator -- Copyright:   (c) 2011 MailRank, Inc. -- License:     BSD3--- Maintainer:  Bryan O'Sullivan <bos@mailrank.com>+-- Maintainer:  Bryan O'Sullivan <bos@serpentine.com> -- Stability:   experimental -- Portability: portable --@@ -72,6 +72,8 @@ import Data.Monoid (mconcat) import Data.Text.Lazy.Builder (fromString, fromText, toLazyText) import Data.Text.Lazy.Builder.Int (decimal)+import Data.Text.Lazy.Builder.RealFloat (realFloat)+import Data.Ratio (denominator, numerator) import Prelude hiding (catch, lookup) import System.Environment (getEnv) import System.IO (hPutStrLn, stderr)@@ -291,7 +293,11 @@   interpret (Interpolate name) =       case H.lookup name env of         Just (String x) -> return (fromText x)-        Just (Number n) -> return (decimal n)+        Just (Number r)+            | denominator r == 1 -> return (decimal $ numerator r)+            | otherwise -> return $ realFloat (fromRational r :: Double)+                           -- TODO: Use a dedicated Builder for Rationals instead of+                           -- using realFloat on a Double.         Just _          -> error "type error"         _ -> do           e <- try . getEnv . T.unpack $ name
Data/Configurator/Instances.hs view
@@ -5,9 +5,13 @@  import Control.Applicative import Data.Configurator.Types.Internal+import Data.Complex (Complex)+import Data.Fixed (Fixed, HasResolution) import Data.Int (Int8, Int16, Int32, Int64) import Data.Text.Encoding (encodeUtf8)+import Data.Ratio (Ratio, denominator, numerator) import Data.Word (Word, Word8, Word16, Word32, Word64)+import Foreign.C.Types (CDouble, CFloat) import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as LB import qualified Data.Text as T@@ -20,42 +24,68 @@     convert (Bool v) = Just v     convert _        = Nothing -convertNumber :: (Num a) => Value -> Maybe a-convertNumber (Number v) = Just (fromIntegral v)-convertNumber _          = Nothing+convertNumberToNum :: (Num a) => Value -> Maybe a+convertNumberToNum (Number r)+    | denominator r == 1 = Just $ fromInteger $ numerator r+convertNumberToNum _ = Nothing  instance Configured Int where-    convert = convertNumber+    convert = convertNumberToNum  instance Configured Integer where-    convert = convertNumber+    convert = convertNumberToNum  instance Configured Int8 where-    convert = convertNumber+    convert = convertNumberToNum  instance Configured Int16 where-    convert = convertNumber+    convert = convertNumberToNum  instance Configured Int32 where-    convert = convertNumber+    convert = convertNumberToNum  instance Configured Int64 where-    convert = convertNumber+    convert = convertNumberToNum  instance Configured Word where-    convert = convertNumber+    convert = convertNumberToNum  instance Configured Word8 where-    convert = convertNumber+    convert = convertNumberToNum  instance Configured Word16 where-    convert = convertNumber+    convert = convertNumberToNum  instance Configured Word32 where-    convert = convertNumber+    convert = convertNumberToNum  instance Configured Word64 where-    convert = convertNumber+    convert = convertNumberToNum++convertNumberToFractional :: (Fractional a) => Value -> Maybe a+convertNumberToFractional (Number r) = Just $ fromRational r+convertNumberToFractional _ = Nothing++instance Configured Double where+    convert = convertNumberToFractional++instance Configured Float where+    convert = convertNumberToFractional++instance Configured CDouble where+    convert = convertNumberToFractional++instance Configured CFloat where+    convert = convertNumberToFractional++instance Integral a => Configured (Ratio a) where+    convert = convertNumberToFractional++instance RealFloat a => Configured (Complex a) where+    convert = convertNumberToFractional++instance HasResolution a => Configured (Fixed a) where+    convert = convertNumberToFractional  instance Configured T.Text where     convert (String v) = Just v
Data/Configurator/Parser.hs view
@@ -4,7 +4,7 @@ -- Module:      Data.Configurator.Parser -- Copyright:   (c) 2011 MailRank, Inc. -- License:     BSD3--- Maintainer:  Bryan O'Sullivan <bos@mailrank.com>+-- Maintainer:  Bryan O'Sullivan <bos@serpentine.com> -- Stability:   experimental -- Portability: portable --@@ -84,7 +84,7 @@         , string "true" *> pure (Bool True)         , string "false" *> pure (Bool False)         , String <$> string_-        , Number <$> decimal+        , Number <$> rational         , List <$> brackets '[' ']'                    ((value <* skipLWS) `sepBy` (char ',' <* skipLWS))         ]
Data/Configurator/Types.hs view
@@ -2,7 +2,7 @@ -- Module:      Data.Configurator.Types -- Copyright:   (c) 2011 MailRank, Inc. -- License:     BSD3--- Maintainer:  Bryan O'Sullivan <bos@mailrank.com>+-- Maintainer:  Bryan O'Sullivan <bos@serpentine.com> -- Stability:   experimental -- Portability: portable --
Data/Configurator/Types/Internal.hs view
@@ -4,7 +4,7 @@ -- Module:      Data.Configurator.Types.Internal -- Copyright:   (c) 2011 MailRank, Inc. -- License:     BSD3--- Maintainer:  Bryan O'Sullivan <bos@mailrank.com>+-- Maintainer:  Bryan O'Sullivan <bos@serpentine.com> -- Stability:   experimental -- Portability: portable --@@ -201,7 +201,7 @@            --            -- * @\\u@/xxxx/@\\u@/xxxx/ - Unicode character (as two            --   UTF-16 surrogates)-           | Number Integer+           | Number Rational            -- ^ Integer.            | List [Value]            -- ^ Heterogeneous list.  Represented in a configuration
README.markdown view
@@ -29,11 +29,11 @@ and other improvements.  Please report bugs via the-[github issue tracker](http://github.com/mailrank/configurator/issues).+[github issue tracker](http://github.com/bos/configurator/issues). -Master [git repository](http://github.com/mailrank/configurator):+Master [git repository](http://github.com/bos/configurator): -* `git clone git://github.com/mailrank/configurator.git`+* `git clone git://github.com/bos/configurator.git`  There's also a [Mercurial mirror](http://bitbucket.org/bos/configurator): @@ -45,4 +45,4 @@ -------  This library is written and maintained by Bryan O'Sullivan,-<bos@mailrank.com>.+<bos@serpentine.com>.
configurator.cabal view
@@ -1,17 +1,17 @@ name:            configurator-version:         0.1.0.0+version:         0.2.0.0 license:         BSD3 license-file:    LICENSE category:        Configuration, Data copyright:       Copyright 2011 MailRank, Inc.-author:          Bryan O'Sullivan <bos@mailrank.com>-maintainer:      Bryan O'Sullivan <bos@mailrank.com>+author:          Bryan O'Sullivan <bos@serpentine.com>+maintainer:      Bryan O'Sullivan <bos@serpentine.com> stability:       experimental tested-with:     GHC == 7.0.3 synopsis:        Configuration management cabal-version:   >= 1.8-homepage:        http://github.com/mailrank/configurator-bug-reports:     http://github.com/mailrank/configurator/issues+homepage:        http://github.com/bos/configurator+bug-reports:     http://github.com/bos/configurator/issues build-type:      Simple description:   A configuration management library for programs and daemons.@@ -55,7 +55,7 @@     Data.Configurator.Types.Internal    build-depends:-    attoparsec-text >= 0.8.5.1,+    attoparsec >= 0.10.0.2,     base == 4.*,     bytestring,     directory,@@ -72,7 +72,7 @@  source-repository head   type:     git-  location: http://github.com/mailrank/configurator+  location: http://github.com/bos/configurator  source-repository head   type:     mercurial