qr-imager 1.0.1.3 → 1.0.1.5
raw patch · 2 files changed
+11/−7 lines, 2 filesdep +splitdep −MissingHdep ~basePVP ok
version bump matches the API change (PVP)
Dependencies added: split
Dependencies removed: MissingH
Dependency ranges changed: base
API changes (from Hackage documentation)
Files
- qr-imager.cabal +2/−2
- src/Data/QRCodes/Utils.hs +9/−5
qr-imager.cabal view
@@ -1,5 +1,5 @@ name: qr-imager-version: 1.0.1.3+version: 1.0.1.5 synopsis: Library to generate QR codes from bytestrings and objects description: Please see README.md homepage: https://github.com/vmchale/QRImager#readme@@ -32,9 +32,9 @@ , directory , haskell-qrencode , process- , MissingH , optparse-applicative , either < 5+ , split pkgconfig-depends: libqrencode default-language: Haskell2010
src/Data/QRCodes/Utils.hs view
@@ -2,19 +2,23 @@ module Data.QRCodes.Utils where import qualified Data.ByteString.Char8 as BS-import Data.Char (toLower, toUpper)-import Data.List.Utils (replace)-import Data.Word (Word8)+import Data.Char (toLower, toUpper)+import Data.List (intercalate)+import Data.List.Split (splitOn)+import Data.Word (Word8) +replace :: String -> String -> String -> String+replace ndl target haystack = intercalate target $ splitOn ndl haystack+ -- | function applied to byteStrings before saving to QR code so that uppercase/lowercase signatures can be preserverd preserveUpper :: BS.ByteString -> BS.ByteString preserveUpper = lift pU- where pU = concatMap (\c -> if c `elem` ['A'..'Z'] then ((toLower c) : "!") else return c)+ where pU = concatMap (\c -> if c `elem` ['A'..'Z'] then toLower c : "!" else return c) -- | resolve coded string to string with uppercase resolveUpper :: BS.ByteString -> BS.ByteString resolveUpper = lift rU- where rU = foldr (.) id (map (\s -> replace (s : "!") ((pure . toUpper) s)) ['a'..'z'])+ where rU = foldr ((.) . (\s -> replace (s : "!") ((pure . toUpper) s))) id ['a'..'z'] -- | given a function on strings, make it act on byteStrings lift :: (String -> String) -> (BS.ByteString -> BS.ByteString)