From 4d55332afca2b4ae105a0aabde5e87e1b6a2b8dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bjo=CC=88rn=20Buckwalter?= Date: Fri, 16 Sep 2011 11:44:03 +0800 Subject: [PATCH] Break out randomString for testing in isolation. --- yesod-core/Yesod/Internal/Request.hs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/yesod-core/Yesod/Internal/Request.hs b/yesod-core/Yesod/Internal/Request.hs index c2265c24..8db60f88 100644 --- a/yesod-core/Yesod/Internal/Request.hs +++ b/yesod-core/Yesod/Internal/Request.hs @@ -67,7 +67,13 @@ parseWaiRequest' env session' key' gen = Request gets'' cookies' env langs''' no (Nothing, _) -> Nothing (_, Just x) -> Just x _ -> Just $ pack $ randomString 10 gen - randomString len = take len . map toChar . randomRs (0, 61) + +-- | Generate a random String of alphanumerical characters +-- (a-z, A-Z, and 0-9) of the given length using the given +-- random number generator. +randomString :: RandomGen g => Int -> g -> String +randomString len = take len . map toChar . randomRs (0, 61) + where toChar i | i < 26 = toEnum $ i + fromEnum 'A' | i < 52 = toEnum $ i + fromEnum 'a' - 26