name:                Wheb
version:             0.0.1.1
synopsis:            The Batteries-Included Haskell WAI Framework
license:             BSD3
license-file:        LICENSE
author:              Kyle Hanson
homepage:            https://github.com/hansonkd/Wheb-Framework
maintainer:          hanooter@gmail.com
category:            Web
build-type:          Simple
cabal-version:       >=1.8
description:         
  Wheb aims at providing a simple simple and straightforward web server.
  .
  > import           Web.Wheb
  > import           Data.Text.Lazy (pack)
  >
  > main :: IO ()
  > main = do
  >  opts <- generateOptions $ addGET (pack ".") rootPat $ (text (pack "Hi!"))
  >  runWhebServer (opts :: MinOpts)
  . 
  Wheb makes it easy to share a global context and handle requests statefully
  .
  >
  >  import           Control.Concurrent.STM
  >  import           Control.Monad.IO.Class
  >  import           Data.Monoid
  >  import           Data.Text.Lazy (Text, pack)
  >  import           Web.Wheb
  >
  >  data MyApp = MyApp Text (TVar Int)
  >  data MyHandlerData = MyHandlerData Int
  >
  >  instance Default MyHandlerData where
  >    def = MyHandlerData 0
  >
  >  counterMw :: MonadIO m => WhebMiddleware MyApp MyHandlerData m
  >  counterMw = do
  >    (MyApp _ ctr) <- getApp
  >    number <- liftIO $ readTVarIO ctr
  >    liftIO $ atomically $ writeTVar ctr (succ number)
  >    putReqState (MyHandlerData number)
  >    return Nothing
  >
  >  homePage :: WhebHandler MyApp MyHandlerData
  >  homePage = do
  >    (MyApp appName _)       <- getApp
  >    (MyHandlerData num) <- getReqState
  >    html $ ("<h1>Welcome to" <> appName <> 
  >            "</h1><h2>You are visitor #" <> (pack $ show num) <> "</h2>")
  >
  >  main :: IO ()
  >  main = do
  >    opts <- generateOptions $ do
  >              startingCounter <- liftIO $ newTVarIO 0
  >              addWhebMiddleware counterMw
  >              addGET (pack ".") rootPat $ homePage
  >              return $ MyApp "AwesomeApp" startingCounter
  >    runWhebServer opts
  .
  Wheb allows you to write robust high concurrency web applications simply and effectively.
  .
    * The core datatype will allow you to build anything from a read-only server to a fully interactive web application with hundreds of routes without needing to define MonadTransformers.
  .
    * Minimal boilerplate to start your application.
  .
    * Plugin system
  .
    
source-repository head
  type:     git
  location: git://github.com/hansonkd/Wheb-Framework.git

library
  exposed-modules:     Web.Wheb, Web.Wheb.Cookie, Web.Wheb.InitM, Web.Wheb.Internal, Web.Wheb.Routes, Web.Wheb.Types, Web.Wheb.Utils, Web.Wheb.WhebT, Web.Wheb.Plugins.Auth, Web.Wheb.Plugins.Session, Web.Wheb.Plugins.Debug.MemoryBackend
  
  build-depends:       base ==4.6.*, text ==0.11.*, transformers ==0.3.*, data-default ==0.5.*, wai-extra ==2.0.*, time ==1.4.*, bytestring ==0.10.*, blaze-builder ==0.3.*, cookie ==0.4.*, mtl ==2.1.*, containers ==0.5.*, wai ==2.0.*, http-types ==0.8.*, warp ==2.0.*, conduit ==1.0.*, case-insensitive ==1.0.*, pwstore-fast ==2.4.*, uuid ==1.3.*, stm ==2.4.*
  GHC-options: -Wall -fno-warn-orphans