air-extra 2013.7.18 → 2013.9.15
raw patch · 3 files changed
+24/−23 lines, 3 filesdep +textdep −utf8-stringPVP ok
version bump matches the API change (PVP)
Dependencies added: text
Dependencies removed: utf8-string
API changes (from Hackage documentation)
Files
- air-extra.cabal +6/−6
- src/Air/Extra.hs +18/−16
- src/Air/UTF8.hs +0/−1
air-extra.cabal view
@@ -1,5 +1,5 @@ Name: air-extra-Version: 2013.7.18+Version: 2013.9.15 Build-type: Simple Synopsis: air-extra Description: An alternative Haskell Prelude library, extra helpers@@ -15,8 +15,8 @@ tested-with: GHC==7.6.1 library- - build-depends: ++ build-depends: base >= 4 && < 5 , containers , array@@ -26,14 +26,14 @@ , bytestring >= 0.9 , regexpr >= 0.3.4 , parsec >= 2- , utf8-string >= 0.3.3 , directory , old-locale , filepath , air >= 2013.7.18- + , text+ hs-source-dirs: src/- exposed-modules: + exposed-modules: Air.Extra , Air.Heavy , Air.UTF8
src/Air/Extra.hs view
@@ -2,7 +2,7 @@ import Control.Parallel import Data.Char-import Data.List (transpose, (\\))+import Data.List ((\\)) import Data.Maybe import Data.Time import Data.Time.Clock.POSIX@@ -10,22 +10,24 @@ import Numeric import Prelude hiding ((.), (^), (>), (<), (/), elem, foldl, (-)) import System.Directory-import System.Exit (ExitCode(..))-import qualified Control.Exception as E import System.IO import System.Locale (defaultTimeLocale)-import System.Time import Text.RegexPR-import qualified Codec.Binary.UTF8.String as Codec-import qualified Data.ByteString.Lazy.Char8 as B+ import qualified Data.List as L import qualified Prelude as Prelude import qualified System.IO.Unsafe as Unsafe-import Data.List (foldl1, foldl1')+import Data.List (foldl1') +import qualified Data.Text as T+import qualified Data.Text.Encoding as E+import qualified Data.ByteString.Char8 as B ++ -- BEGIN !!!!!! partial, use with extra care -- backport+reduce, reduce' :: (a -> a -> a) -> [a] -> a reduce = foldl1 reduce' = foldl1' @@ -55,6 +57,10 @@ +b2u, u2b :: String -> String+b2u = B.pack > E.decodeUtf8 > T.unpack+u2b = T.pack > E.encodeUtf8 > B.unpack+ -- Date date :: Integer -> Int -> Int -> Data.Time.Day splash_date :: Data.Time.Day -> (Integer, Int, Int)@@ -81,6 +87,7 @@ type RegexResult = ( String, (String, String) ) type MatchList = [ (Int, String) ]+ match :: String -> String -> Maybe (RegexResult, MatchList) match = matchRegexPR @@ -91,8 +98,8 @@ empty s = case s.match("\\S") of Just _ -> False Nothing -> True- + -- Integer collapse :: (Integral a, Num b) => [a] -> b collapse xs = collapse' (xs.reverse.map from_i) (0 :: Int) (0 :: Int) .fromIntegral@@ -102,7 +109,7 @@ base :: (Integral a, Show a) => a -> a -> String base p n = showIntAtBase p intToDigit n ""- + -- String camel_case, snake_case :: String -> String camel_case = split "_" > map capitalize > concat@@ -152,7 +159,7 @@ let zoned_time = utcToZonedTime tz timestamp let time_str = formatTime defaultTimeLocale simple_time_format zoned_time- + return time_str @@ -173,13 +180,8 @@ -- Text filter_comment :: String -> String-filter_comment = +filter_comment = lines > map strip > reject null > reject (first > (== Just '#')) > unlines---- UTF8-b2u, u2b :: String -> String-b2u = Codec.decodeString-u2b = Codec.encodeString -- IO
src/Air/UTF8.hs view
@@ -4,7 +4,6 @@ import Air.Extra as Air import Prelude hiding ((.), (^), readFile, writeFile, (>)) import System.Directory-import System.IO.UTF8 (readFile, writeFile) import qualified Air as Air split :: String -> String -> [String]