packages feed

configuration (empty) → 0.1

raw patch · 4 files changed

+123/−0 lines, 4 filesdep +basedep +containerssetup-changed

Dependencies added: base, containers

Files

+ Data/Configuration.hs view
@@ -0,0 +1,32 @@+{-# LANGUAGE StandaloneDeriving, DeriveDataTypeable #-}+module Data.Configuration ( Conf, as, valueForKey, (<@>), keys+                          , (!), toConf, toDyn, toMap) where+import Data.Map hiding ((!), keys)+import qualified Data.Map as M+import Data.Dynamic+import Prelude hiding (lookup)+import Control.Applicative+import Data.Maybe+import Data.Data++newtype Conf = Conf { toMap :: Map String Dynamic } deriving (Typeable)+toConf :: [(String, Dynamic)] -> Conf+toConf = Conf . fromList++as :: a+as = undefined++keys :: Conf -> [String]+keys = M.keys . toMap++valueForKey :: Typeable a => String -> Conf -> a -> Maybe a+valueForKey key conf _ = fromDynamic =<< lookup key (toMap conf)++(!) :: Typeable a => Conf -> String -> a+conf ! key = case valueForKey key conf undefined of+               Just val -> val+               Nothing  -> error $ "no such key: " ++ key++(<@>) :: Typeable a => String -> a -> (String, Dynamic)+key <@> val = (key, toDyn val)+
+ LICENSE view
@@ -0,0 +1,30 @@+Copyright (c)2011, Hiromi ISHII++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++    * Redistributions of source code must retain the above copyright+      notice, this list of conditions and the following disclaimer.++    * Redistributions in binary form must reproduce the above+      copyright notice, this list of conditions and the following+      disclaimer in the documentation and/or other materials provided+      with the distribution.++    * Neither the name of Hiromi ISHII nor the names of other+      contributors may be used to endorse or promote products derived+      from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ configuration.cabal view
@@ -0,0 +1,59 @@+-- configuration.cabal auto-generated by cabal init. For additional+-- options, see+-- http://www.haskell.org/cabal/release/cabal-latest/doc/users-guide/authors.html#pkg-descr.+-- The name of the package.+Name:                configuration++-- The package version. See the Haskell package versioning policy+-- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for+-- standards guiding when and how versions should be incremented.+Version:             0.1++-- A short (one-line) description of the package.+Synopsis:            Simple data type for application configuration.++-- A longer description of the package.+Description:         Simple data type to store Typeable values.++-- The license under which the package is released.+License:             BSD3++-- The file containing the license text.+License-file:        LICENSE++-- The package author(s).+Author:              Hiromi ISHII++-- An email address to which users can send suggestions, bug reports,+-- and patches.+Maintainer:          konn.jinro_at_gmail.com++-- A copyright notice.+Copyright:           (c) Hiromi ISHII 2011++Category:            Data++Build-type:          Simple++-- Extra files to be distributed with the package, such as examples or+-- a README.+-- Extra-source-files:  ++-- Constraint on the version of Cabal needed to build this package.+Cabal-version:       >=1.2+++Library+  -- Modules exported by the library.+  Exposed-modules:     Data.Configuration+  +  -- Packages needed in order to build this package.+  Build-depends: base       >= 4.0 && < 5+               , containers >= 0.3 && < 0.5+  +  -- Modules not exported by this package.+  -- Other-modules:       +  +  -- Extra tools (e.g. alex, hsc2hs, ...) needed to build the source.+  -- Build-tools:         +