cron 0.4.0 → 0.4.1
raw patch · 5 files changed
+29/−24 lines, 5 filesdep ~basePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base
API changes (from Hackage documentation)
Files
- changelog +2/−0
- cron.cabal +1/−1
- src/System/Cron/Internal/Check.hs +15/−14
- src/System/Cron/Types.hs +7/−6
- test/System/Test/Cron/Schedule.hs +4/−3
changelog view
@@ -1,3 +1,5 @@+# 0.4.1+* Compatibility release to get cron building with GHC < 7.10 again. # 0.4.0 * Various type changes to make it impossible to construct invalid cron schedules. * Add nextMatch function for non-polling based schedulers.
cron.cabal view
@@ -1,5 +1,5 @@ Name: cron-Version: 0.4.0+Version: 0.4.1 Description: Cron data structure and Attoparsec parser. The idea is to embed it in larger systems which want to roll their own scheduled tasks in a format that people
src/System/Cron/Internal/Check.hs view
@@ -2,6 +2,7 @@ module System.Cron.Internal.Check where -------------------------------------------------------------------------------+import Control.Applicative as A import qualified Data.Foldable as FT import Data.List import Data.List.NonEmpty (NonEmpty (..))@@ -66,7 +67,7 @@ ------------------------------------------------------------------------------- dowMatch :: UTCTime -> EField -> Bool-dowMatch (UTCTime d _) dows = (getDOW d `elem` dows)+dowMatch (UTCTime d _) dows = (getDOW d `FT.elem` dows) -------------------------------------------------------------------------------@@ -99,7 +100,7 @@ -- no empties). dow 7 will be normalized to 0 (Sunday) expand :: CronSchedule -> Maybe Expanded expand CronSchedule {..} = do- expanded <- Expanded <$> minF'+ expanded <- Expanded A.<$> minF' <*> hourF' <*> domF' <*> monthF'@@ -195,18 +196,18 @@ -- ^ Month -> EField -> Bool-hasValidForMonth 1 days = minimum days <= 31-hasValidForMonth 2 days = minimum days <= 29-hasValidForMonth 3 days = minimum days <= 31-hasValidForMonth 4 days = minimum days <= 30-hasValidForMonth 5 days = minimum days <= 31-hasValidForMonth 6 days = minimum days <= 30-hasValidForMonth 7 days = minimum days <= 31-hasValidForMonth 8 days = minimum days <= 31-hasValidForMonth 9 days = minimum days <= 30-hasValidForMonth 10 days = minimum days <= 31-hasValidForMonth 11 days = minimum days <= 30-hasValidForMonth 12 days = minimum days <= 31+hasValidForMonth 1 days = FT.minimum days <= 31+hasValidForMonth 2 days = FT.minimum days <= 29+hasValidForMonth 3 days = FT.minimum days <= 31+hasValidForMonth 4 days = FT.minimum days <= 30+hasValidForMonth 5 days = FT.minimum days <= 31+hasValidForMonth 6 days = FT.minimum days <= 30+hasValidForMonth 7 days = FT.minimum days <= 31+hasValidForMonth 8 days = FT.minimum days <= 31+hasValidForMonth 9 days = FT.minimum days <= 30+hasValidForMonth 10 days = FT.minimum days <= 31+hasValidForMonth 11 days = FT.minimum days <= 30+hasValidForMonth 12 days = FT.minimum days <= 31 hasValidForMonth _ _ = False
src/System/Cron/Types.hs view
@@ -48,13 +48,14 @@ --------------------------------------------------------------------------------import qualified Data.Foldable as FT+import Control.Applicative as A+import qualified Data.Foldable as FT import Data.Ix-import Data.List.NonEmpty (NonEmpty (..))-import qualified Data.List.NonEmpty as NE+import Data.List.NonEmpty (NonEmpty (..))+import qualified Data.List.NonEmpty as NE import Data.Monoid-import Data.Text (Text)-import qualified Data.Text as T+import Data.Text (Text)+import qualified Data.Text as T ------------------------------------------------------------------------------- @@ -150,7 +151,7 @@ instance ShowT Crontab where- showT (Crontab entries) = T.intercalate "\n" (showT <$> entries)+ showT (Crontab entries) = T.intercalate "\n" (showT A.<$> entries) instance Show Crontab where
test/System/Test/Cron/Schedule.hs view
@@ -30,9 +30,10 @@ , testCase "should read all three jobs." $ length s @?= 3 ]- where Right ((), s) = runSchedule $ do addJob empty "* * * * *"- addJob empty "0 * * * *"- addJob empty "0 0 * * *"+ where Right ((), s) = runSchedule $ do addJob noop "* * * * *"+ addJob noop "0 * * * *"+ addJob noop "0 0 * * *"+ noop = return () describeExecSchedule :: TestTree describeExecSchedule = testGroup "execSchedule"