X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Network%2FHTTP%2FLucu%2FUtils.hs;fp=Network%2FHTTP%2FLucu%2FUtils.hs;h=a488aafbb64161feee9e67404c05f29a065236ec;hb=0ff03469c29b791f2c609a659bbf59be97e306f2;hp=ec4b6727f60567613549604a1c0e209d6d2a7727;hpb=3fe5ca3bca04e0124a5f2440e893dc5375e0bb51;p=Lucu.git diff --git a/Network/HTTP/Lucu/Utils.hs b/Network/HTTP/Lucu/Utils.hs index ec4b672..a488aaf 100644 --- a/Network/HTTP/Lucu/Utils.hs +++ b/Network/HTTP/Lucu/Utils.hs @@ -10,6 +10,7 @@ module Network.HTTP.Lucu.Utils , joinWith , quoteStr , parseWWWFormURLEncoded + , splitPathInfo , show3 ) where @@ -22,6 +23,8 @@ import Data.ByteString (ByteString) import qualified Data.ByteString.Char8 as BS import Data.List hiding (last) import Data.Monoid.Unicode +import Data.Text (Text) +import Data.Text.Encoding as T import Network.URI import Prelude hiding (last) import Prelude.Unicode @@ -89,6 +92,15 @@ parseWWWFormURLEncoded src plusToSpace '+' = ' ' plusToSpace c = c +-- |> splitPathInfo "http://example.com/foo/bar" +-- > ==> ["foo", "bar"] +splitPathInfo ∷ URI → [Text] +splitPathInfo uri + = let reqPathStr = uriPath uri + reqPath = [unEscapeString x | x ← splitBy (≡ '/') reqPathStr, (¬) (null x)] + in + map (T.decodeUtf8 ∘ BS.pack) reqPath + -- |> show3 5 -- > ==> "005" show3 ∷ Integral n ⇒ n → AsciiBuilder