packages feed

apiary 0.11.0 → 0.11.1

raw patch · 7 files changed

+30/−19 lines, 7 filesdep +aesonPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: aeson

API changes (from Hackage documentation)

+ Control.Monad.Apiary.Filter: endPath :: (Functor n, Monad n) => ApiaryT c n m a -> ApiaryT c n m a
- Control.Monad.Apiary.Filter: (=!:) :: (Functor n, MonadIO n, ReqParam a) => ByteString -> Proxy a -> ApiaryT (Snoc as a) n m b -> ApiaryT as n m b
+ Control.Monad.Apiary.Filter: (=!:) :: (Functor n, MonadIO n, ReqParam a) => ByteString -> proxy a -> ApiaryT (Snoc as a) n m b -> ApiaryT as n m b
- Control.Monad.Apiary.Filter: (=*:) :: (Functor n, MonadIO n, ReqParam a) => ByteString -> Proxy a -> ApiaryT (Snoc as [a]) n m b -> ApiaryT as n m b
+ Control.Monad.Apiary.Filter: (=*:) :: (Functor n, MonadIO n, ReqParam a) => ByteString -> proxy a -> ApiaryT (Snoc as [a]) n m b -> ApiaryT as n m b
- Control.Monad.Apiary.Filter: (=+:) :: (Functor n, MonadIO n, ReqParam a) => ByteString -> Proxy a -> ApiaryT (Snoc as [a]) n m b -> ApiaryT as n m b
+ Control.Monad.Apiary.Filter: (=+:) :: (Functor n, MonadIO n, ReqParam a) => ByteString -> proxy a -> ApiaryT (Snoc as [a]) n m b -> ApiaryT as n m b
- Control.Monad.Apiary.Filter: (=:) :: (Functor n, MonadIO n, ReqParam a) => ByteString -> Proxy a -> ApiaryT (Snoc as a) n m b -> ApiaryT as n m b
+ Control.Monad.Apiary.Filter: (=:) :: (Functor n, MonadIO n, ReqParam a) => ByteString -> proxy a -> ApiaryT (Snoc as a) n m b -> ApiaryT as n m b
- Control.Monad.Apiary.Filter: (=?:) :: (Functor n, MonadIO n, ReqParam a) => ByteString -> Proxy a -> ApiaryT (Snoc as (Maybe a)) n m b -> ApiaryT as n m b
+ Control.Monad.Apiary.Filter: (=?:) :: (Functor n, MonadIO n, ReqParam a) => ByteString -> proxy a -> ApiaryT (Snoc as (Maybe a)) n m b -> ApiaryT as n m b
- Control.Monad.Apiary.Filter: (?:) :: (Functor n, MonadIO n, ReqParam a) => ByteString -> Proxy a -> ApiaryT as n m b -> ApiaryT as n m b
+ Control.Monad.Apiary.Filter: (?:) :: (Functor n, MonadIO n, ReqParam a) => ByteString -> proxy a -> ApiaryT as n m b -> ApiaryT as n m b
- Control.Monad.Apiary.Filter: query :: (ReqParam a, Strategy w, Functor n, MonadIO n) => ByteString -> Proxy (w a) -> ApiaryT (SNext w as a) n m b -> ApiaryT as n m b
+ Control.Monad.Apiary.Filter: query :: (ReqParam a, Strategy w, Functor n, MonadIO n) => ByteString -> proxy (w a) -> ApiaryT (SNext w as a) n m b -> ApiaryT as n m b
- Control.Monad.Apiary.Filter.Internal.Strategy: pCheck :: Proxy a -> Proxy (Check a)
+ Control.Monad.Apiary.Filter.Internal.Strategy: pCheck :: proxy a -> Proxy (Check a)
- Control.Monad.Apiary.Filter.Internal.Strategy: pFirst :: Proxy a -> Proxy (First a)
+ Control.Monad.Apiary.Filter.Internal.Strategy: pFirst :: proxy a -> Proxy (First a)
- Control.Monad.Apiary.Filter.Internal.Strategy: pMany :: Proxy a -> Proxy (Many a)
+ Control.Monad.Apiary.Filter.Internal.Strategy: pMany :: proxy a -> Proxy (Many a)
- Control.Monad.Apiary.Filter.Internal.Strategy: pOne :: Proxy a -> Proxy (One a)
+ Control.Monad.Apiary.Filter.Internal.Strategy: pOne :: proxy a -> Proxy (One a)
- Control.Monad.Apiary.Filter.Internal.Strategy: pOption :: Proxy a -> Proxy (Option a)
+ Control.Monad.Apiary.Filter.Internal.Strategy: pOption :: proxy a -> Proxy (Option a)
- Control.Monad.Apiary.Filter.Internal.Strategy: pSome :: Proxy a -> Proxy (Some a)
+ Control.Monad.Apiary.Filter.Internal.Strategy: pSome :: proxy a -> Proxy (Some a)
- Data.Apiary.Param: pMaybe :: Proxy a -> Proxy (Maybe a)
+ Data.Apiary.Param: pMaybe :: proxy a -> Proxy (Maybe a)

Files

apiary.cabal view
@@ -1,5 +1,5 @@ name:                apiary-version:             0.11.0+version:             0.11.1 synopsis:            Simple web framework inspired by scotty. description:   Simple web framework inspired by scotty.@@ -95,6 +95,7 @@                      , http-types        >=0.8 && <0.9                      , mime-types        >=0.1 && <0.2                      , exceptions        >=0.6 && <0.7+                     , aeson             >=0.7 && <0.8    if impl(ghc < 7.8)     build-depends:     tagged             >=0.7 && <0.8
src/Control/Monad/Apiary/Filter.hs view
@@ -18,6 +18,7 @@     , root     , capture     , Capture.path+    , Capture.endPath     , Capture.fetch      -- ** query matcher@@ -112,10 +113,10 @@ -- query "key" (Proxy :: Proxy ('Option' (Maybe Int)) -- get first \'key\' query parameter as Int. allow without param or value. -- query "key" (Proxy :: Proxy ('Many' String) -- get all \'key\' query parameter as String. -- @-query :: forall a as w n m b. +query :: forall a as w n m b proxy.        (ReqParam a, Strategy.Strategy w, Functor n, MonadIO n)       => S.ByteString-      -> Proxy (w a)+      -> proxy (w a)       -> ApiaryT (Strategy.SNext w as a) n m b       -> ApiaryT as n m b query key p = focus $ \l -> do@@ -131,7 +132,7 @@ -- @ -- "key" =: pInt == query "key" (pFirst pInt) == query "key" (Proxy :: Proxy (First Int)) -- @-(=:) :: (Functor n, MonadIO n, ReqParam a) => S.ByteString -> Proxy a +(=:) :: (Functor n, MonadIO n, ReqParam a) => S.ByteString -> proxy a       -> ApiaryT (Snoc as a) n m b -> ApiaryT as n m b k =: t = query k (pFirst t) @@ -142,7 +143,7 @@ -- @ -- "key" =: pInt == query "key" (pOne pInt) == query "key" (Proxy :: Proxy (One Int)) -- @-(=!:) :: (Functor n, MonadIO n, ReqParam a) => S.ByteString -> Proxy a +(=!:) :: (Functor n, MonadIO n, ReqParam a) => S.ByteString -> proxy a        -> ApiaryT (Snoc as a) n m b -> ApiaryT as n m b k =!: t = query k (pOne t) @@ -153,7 +154,7 @@ -- @ -- "key" =: pInt == query "key" (pOption pInt) == query "key" (Proxy :: Proxy (Option Int)) -- @-(=?:) :: (Functor n, MonadIO n, ReqParam a) => S.ByteString -> Proxy a +(=?:) :: (Functor n, MonadIO n, ReqParam a) => S.ByteString -> proxy a        -> ApiaryT (Snoc as (Maybe a)) n m b -> ApiaryT as n m b k =?: t = query k (pOption t) @@ -164,7 +165,7 @@ -- @ -- "key" =: pInt == query "key" (pCheck pInt) == query "key" (Proxy :: Proxy (Check Int)) -- @-(?:) :: (Functor n, MonadIO n, ReqParam a) => S.ByteString -> Proxy a +(?:) :: (Functor n, MonadIO n, ReqParam a) => S.ByteString -> proxy a       -> ApiaryT as n m b -> ApiaryT as n m b k ?: t = query k (pCheck t) @@ -173,7 +174,7 @@ -- @ -- "key" =: pInt == query "key" (pMany pInt) == query "key" (Proxy :: Proxy (Many Int)) -- @-(=*:) :: (Functor n, MonadIO n, ReqParam a) => S.ByteString -> Proxy a +(=*:) :: (Functor n, MonadIO n, ReqParam a) => S.ByteString -> proxy a        -> ApiaryT (Snoc as [a]) n m b -> ApiaryT as n m b k =*: t = query k (pMany t) @@ -182,7 +183,7 @@ -- @ -- "key" =: pInt == query "key" (pSome pInt) == query "key" (Proxy :: Proxy (Some Int)) -- @-(=+:) :: (Functor n, MonadIO n, ReqParam a) => S.ByteString -> Proxy a +(=+:) :: (Functor n, MonadIO n, ReqParam a) => S.ByteString -> proxy a        -> ApiaryT (Snoc as [a]) n m b -> ApiaryT as n m b k =+: t = query k (pSome t) 
src/Control/Monad/Apiary/Filter/Internal/Capture.hs view
@@ -26,11 +26,19 @@ -- | check first path and drill down. since v0.11.0. path :: (Functor n, Monad n)       => T.Text -> ApiaryT c n m a -> ApiaryT c n m a-path p = focus $ \l -> path' >> return l+path p = focus $ \l -> l <$ path'   where     path' = liftM actionPathInfo getState >>= \case         c:_ | c == p -> modifyState (\s -> s {actionPathInfo = tail $ actionPathInfo s})         _            -> empty++-- | check consumed pathes. since v0.11.1.+endPath :: (Functor n, Monad n) => ApiaryT c n m a -> ApiaryT c n m a+endPath = focus $ \l -> l <$ end+  where+    end = liftM actionPathInfo getState >>= \case+        [] -> return ()+        _  -> empty  -- | get first path and drill down. since v0.11.0. fetch :: (Path a, Functor n, Monad n)
src/Control/Monad/Apiary/Filter/Internal/Capture/TH.hs view
@@ -18,7 +18,7 @@ splitPath = map T.unpack . T.splitOn "/" . T.pack  mkCap :: [String] -> ExpQ-mkCap [] = [|id|]+mkCap [] = [|Capture.endPath|] mkCap ((':':tyStr):as) = do     -- ty <- lookupTypeName tyStr >>= maybe (fail "") return     let ty = mkName tyStr
src/Control/Monad/Apiary/Filter/Internal/Strategy.hs view
@@ -116,25 +116,25 @@                _  -> Just l  -- | construct Option proxy. since 0.5.1.0.-pOption :: Proxy a -> Proxy (Option a)+pOption :: proxy a -> Proxy (Option a) pOption _ = Proxy  -- | construct First proxy. since 0.5.1.0.-pFirst :: Proxy a -> Proxy (First a)+pFirst :: proxy a -> Proxy (First a) pFirst _ = Proxy  -- | construct One proxy. since 0.5.1.0.-pOne :: Proxy a -> Proxy (One a)+pOne :: proxy a -> Proxy (One a) pOne _ = Proxy  -- | construct Many proxy. since 0.5.1.0.-pMany :: Proxy a -> Proxy (Many a)+pMany :: proxy a -> Proxy (Many a) pMany _ = Proxy  -- | construct Some proxy. since 0.5.1.0.-pSome :: Proxy a -> Proxy (Some a)+pSome :: proxy a -> Proxy (Some a) pSome _ = Proxy  -- | construct Check proxy. since 0.5.1.0.-pCheck :: Proxy a -> Proxy (Check a)+pCheck :: proxy a -> Proxy (Check a) pCheck _ = Proxy
src/Data/Apiary/Param.hs view
@@ -154,7 +154,7 @@ pVoid :: Proxy () pVoid = Proxy -pMaybe :: Proxy a -> Proxy (Maybe a)+pMaybe :: proxy a -> Proxy (Maybe a) pMaybe _ = Proxy  pFile :: Proxy (File L.ByteString)
test/main.hs view
@@ -124,7 +124,8 @@     , testReq "POST /12"  $ assertPlain200 "Double 12.0" captureApp     , testReq "GET /bar"  $ assertPlain200 "fall bar" captureApp     , testReq "GET /baz"  $ assertPlain200 "fall baz" captureApp-    , testReq "GET /bar/nyan/12" $ assertPlain200 "nyan 12" captureApp+    , testReq "GET /bar/nyan/12"       $ assertPlain200 "nyan 12" captureApp+    , testReq "GET /bar/nyan/12/other" $ assert404 captureApp     ]  --------------------------------------------------------------------------------