casr-logbook 0.3.0 → 0.5.0
raw patch · 9 files changed
+54/−123 lines, 9 filesdep −QuickCheckdep −directorydep −doctestdep ~basedep ~digitdep ~timesetup-changed
Dependencies removed: QuickCheck, directory, doctest, filepath, template-haskell
Dependency ranges changed: base, digit, time
Files
- Setup.hs +2/−0
- Setup.lhs +0/−44
- casr-logbook.cabal +3/−32
- changelog +4/−0
- src/Data/Aviation/Casr/Logbook/Html/Html.hs +2/−2
- src/Data/Aviation/Casr/Logbook/Types/Aviator.hs +4/−4
- src/Data/Aviation/Casr/Logbook/Types/DayNight.hs +3/−3
- src/Data/Aviation/Casr/Logbook/Types/TimeAmount.hs +36/−6
- test/doctests.hs +0/−32
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
− Setup.lhs
@@ -1,44 +0,0 @@-#!/usr/bin/env runhaskell-\begin{code}-{-# OPTIONS_GHC -Wall #-}-module Main (main) where--import Data.List ( nub )-import Data.Version ( showVersion )-import Distribution.Package ( PackageName(PackageName), PackageId, InstalledPackageId, packageVersion, packageName )-import Distribution.PackageDescription ( PackageDescription(), TestSuite(..) )-import Distribution.Simple ( defaultMainWithHooks, UserHooks(..), simpleUserHooks )-import Distribution.Simple.Utils ( rewriteFile, createDirectoryIfMissingVerbose )-import Distribution.Simple.BuildPaths ( autogenModulesDir )-import Distribution.Simple.Setup ( BuildFlags(buildVerbosity), fromFlag )-import Distribution.Simple.LocalBuildInfo ( withLibLBI, withTestLBI, LocalBuildInfo(), ComponentLocalBuildInfo(componentPackageDeps) )-import Distribution.Verbosity ( Verbosity )-import System.FilePath ( (</>) )--main :: IO ()-main = defaultMainWithHooks simpleUserHooks- { buildHook = \pkg lbi hooks flags -> do- generateBuildModule (fromFlag (buildVerbosity flags)) pkg lbi- buildHook simpleUserHooks pkg lbi hooks flags- }--generateBuildModule :: Verbosity -> PackageDescription -> LocalBuildInfo -> IO ()-generateBuildModule verbosity pkg lbi = do- let dir = autogenModulesDir lbi- createDirectoryIfMissingVerbose verbosity True dir- withLibLBI pkg lbi $ \_ libcfg -> do- withTestLBI pkg lbi $ \suite suitecfg -> do- rewriteFile (dir </> "Build_" ++ testName suite ++ ".hs") $ unlines- [ "module Build_" ++ testName suite ++ " where"- , "deps :: [String]"- , "deps = " ++ (show $ formatdeps (testDeps libcfg suitecfg))- ]- where- formatdeps = map (formatone . snd)- formatone p = case packageName p of- PackageName n -> n ++ "-" ++ showVersion (packageVersion p)--testDeps :: ComponentLocalBuildInfo -> ComponentLocalBuildInfo -> [(InstalledPackageId, PackageId)]-testDeps xs ys = nub $ componentPackageDeps xs ++ componentPackageDeps ys--\end{code}
casr-logbook.cabal view
@@ -1,5 +1,5 @@ name: casr-logbook-version: 0.3.0+version: 0.5.0 license: OtherLicense license-file: LICENSE author: Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ>@@ -17,16 +17,13 @@ homepage: https://github.com/tonymorris/casr-logbook bug-reports: https://github.com/tonymorris/casr-logbook/issues cabal-version: >= 1.10-build-type: Custom+build-type: Simple extra-source-files: changelog source-repository head type: git location: git@github.com:tonymorris/casr-logbook.git -flag small_base- description: Choose the new, split-up base package.- library default-language: Haskell2010@@ -35,12 +32,10 @@ base >= 4.8 && < 5 , containers >= 0.4 && < 0.6 , lucid >= 2.9 && < 3- , digit >= 0.2.8 && < 3+ , digit >= 0.7 && < 0.8 , time >= 1.5 && < 2 , lucid >= 2.9 && < 3 , lens >= 4.1 && < 5- , digit >= 0.2.8 && < 3- , time >= 1.5 && < 1.6 , text >= 1.2 && < 1.3 ghc-options: -Wall@@ -104,27 +99,3 @@ Data.Aviation.Casr.Logbook.Reports.Meta.ExpenseReport Data.Aviation.Casr.Logbook.Reports.Meta.Html -test-suite doctests- type:- exitcode-stdio-1.0-- main-is:- doctests.hs-- default-language:- Haskell2010-- build-depends:- base < 5 && >= 3- , doctest >= 0.9.7- , filepath >= 1.3- , directory >= 1.1- , QuickCheck >= 2.0- , template-haskell >= 2.8-- ghc-options:- -Wall- -threaded-- hs-source-dirs:- test
changelog view
@@ -1,3 +1,7 @@+0.5.0++* update `digit` package.+ 0.3.0 * Move all packages into one.
src/Data/Aviation/Casr/Logbook/Html/Html.hs view
@@ -94,7 +94,7 @@ ) import Data.Bool(not) import Data.Char(toUpper)-import Data.Digit(Digit)+import Data.Digit(DecDigit) import Data.Eq((==)) import Data.Foldable(fold, sequence_, mapM_, null) import Data.Function(($))@@ -221,7 +221,7 @@ fromString f htmlAviatorARN ::- [Digit]+ [DecDigit] -> Html () htmlAviatorARN a = when (not . null $ a) $
src/Data/Aviation/Casr/Logbook/Types/Aviator.hs view
@@ -13,7 +13,7 @@ import Data.Aviation.Casr.Logbook.Types.Rating(Rating) import Data.Eq(Eq) import Data.Ord(Ord)-import Data.Digit(Digit)+import Data.Digit(DecDigit) import Data.Maybe(Maybe(Nothing, Just)) import Data.String(String) import Data.Time(Day)@@ -23,7 +23,7 @@ Aviator { _surname :: String , _firstname :: String- , _arn :: [Digit]+ , _arn :: [DecDigit] , _dob :: Maybe Day , _ratings :: [Rating] } deriving (Eq, Ord, Show)@@ -45,7 +45,7 @@ nodobaviator :: String -> String- -> [Digit]+ -> [DecDigit] -> [Rating] -> Aviator nodobaviator s f r =@@ -58,7 +58,7 @@ dobaviator :: String -> String- -> [Digit]+ -> [DecDigit] -> Day -> [Rating] -> Aviator
src/Data/Aviation/Casr/Logbook/Types/DayNight.hs view
@@ -11,7 +11,7 @@ import Control.Lens(makeClassy) import Data.Aviation.Casr.Logbook.Types.TimeAmount(TimeAmount(TimeAmount), zerotimeamount)-import Data.Digit(Digit)+import Data.Digit(DecDigit) import Data.Eq(Eq) import Data.Int(Int) import Data.Monoid(mappend)@@ -28,14 +28,14 @@ day :: Int- -> Digit+ -> DecDigit -> DayNight day h p = DayNight (TimeAmount h p) zerotimeamount night :: Int- -> Digit+ -> DecDigit -> DayNight night h p = DayNight zerotimeamount (TimeAmount h p)
src/Data/Aviation/Casr/Logbook/Types/TimeAmount.hs view
@@ -10,9 +10,13 @@ , timeAmountBy10 ) where -import Control.Lens(makeClassy, ( # ))+import Data.Bool(Bool, bool)+import Data.Maybe(fromMaybe)+import Data.Ord((>))+import Prelude(Integral, divMod, mod)+import Control.Lens(makeClassy, (^?), over, _1, ( # )) import Data.Eq(Eq)-import Data.Digit(Digit, x0, digit, (/+/))+import Data.Digit(DecDigit, x0, x1, integralDecimal) import Data.Int(Int) import Data.Monoid(Monoid(mempty, mappend)) import Data.Ord(Ord)@@ -21,13 +25,13 @@ data TimeAmount = TimeAmount { _hours :: Int- , _tenthofhour :: Digit+ , _tenthofhour :: DecDigit } deriving (Eq, Ord, Show) makeClassy ''TimeAmount parttimeamount ::- Digit+ DecDigit -> TimeAmount parttimeamount = TimeAmount 0@@ -43,16 +47,42 @@ -> TimeAmount TimeAmount f1 p1 `addtimeamount` TimeAmount f2 p2 = let (h, q) = p1 /+/ p2- in TimeAmount (f1 + f2 + digit # h) q + in TimeAmount (f1 + f2 + integralDecimal # (h :: DecDigit)) q timeAmountBy10 :: TimeAmount -> Int timeAmountBy10 (TimeAmount a b) =- a * 10 + digit # b+ a * 10 + integralDecimal # b instance Monoid TimeAmount where mempty = zerotimeamount mappend = addtimeamount++---- belongs in digit package++mod10 ::+ Integral a =>+ a+ -> DecDigit+mod10 n =+ let r = n `mod` 10+ in fromMaybe (mod10 r) (r ^? integralDecimal)++addDecDigit ::+ DecDigit+ -> DecDigit+ -> (Bool, DecDigit)+addDecDigit a b =+ let (x, r) =+ (integralDecimal # a + integralDecimal # b) `divMod` 10+ in (x > 0, mod10 (r :: Int))++(/+/) ::+ DecDigit+ -> DecDigit+ -> (DecDigit, DecDigit)+(/+/) a b =+ over _1 (bool x0 x1) (addDecDigit a b)
− test/doctests.hs
@@ -1,32 +0,0 @@-module Main where--import Build_doctests (deps)-import Control.Applicative-import Control.Monad-import Data.List-import System.Directory-import System.FilePath-import Test.DocTest--main ::- IO ()-main =- getSources >>= \sources -> doctest $- "-isrc"- : "-idist/build/autogen"- : "-optP-include"- : "-optPdist/build/autogen/cabal_macros.h"- : "-hide-all-packages"- : map ("-package="++) deps ++ sources--getSources :: IO [FilePath]-getSources = filter (isSuffixOf ".hs") <$> go "src"- where- go dir = do- (dirs, files) <- getFilesAndDirectories dir- (files ++) . concat <$> mapM go dirs--getFilesAndDirectories :: FilePath -> IO ([FilePath], [FilePath])-getFilesAndDirectories dir = do- c <- map (dir </>) . filter (`notElem` ["..", "."]) <$> getDirectoryContents dir- (,) <$> filterM doesDirectoryExist c <*> filterM doesFileExist c