Fix linting hints

This commit is contained in:
2017-11-12 11:07:42 +03:00
parent 3244ce81f3
commit a14bdf1f53
7 changed files with 52 additions and 61 deletions

View File

@ -12,4 +12,4 @@ inside :: (Int, Int) -> Constraint -> Bool
inside (x, y) (Constraint lower upper) = x >= lower && y <= upper
inRange :: Int -> Constraint -> Bool
inRange x cons = inside (x, x) cons
inRange x = inside (x, x)

View File

@ -16,7 +16,7 @@ data Field = Field Range Step
deriving (Eq, Show)
parseField :: String -> Constraint -> Maybe Field
parseField text constraint = parseField' (wordsWhen (== '/') text) constraint
parseField text = parseField' (wordsWhen (== '/') text)
parseField' :: [String] -> Constraint -> Maybe Field
parseField' [rangeText] constraint
@ -34,20 +34,15 @@ parseField' _ _ = Nothing
parseFieldRange :: String -> Constraint -> Maybe Range
parseFieldRange text constraint
| isAll = Just All
| text == "*" = Just All
| isJust number = Just (Range (fromJust number) (fromJust number))
| isJust range = Just (Range (fst $ fromJust range) (snd $ fromJust range))
| isJust range = Just (uncurry Range (fromJust range))
| isJust sequence = fmap Sequence sequence
where
isAll = parseAll text
number = parseNumber text constraint
range = parseRange text constraint
sequence = parseSequence text constraint
parseAll :: String -> Bool
parseAll "*" = True
parseAll _ = False
isNumber :: String -> Bool
isNumber = all isDigit
@ -67,7 +62,7 @@ parseRange text constraint
pieces = wordsWhen (== '-') text
isTwo = length pieces == 2
isAllNumbers = all isNumber pieces
start = read (pieces !! 0) :: Int
start = read (head pieces) :: Int
end = read (pieces !! 1) :: Int
isValid = isTwo && isAllNumbers && start <= start && (start, end) `inside` constraint
@ -79,7 +74,7 @@ parseSequence text constraint
pieces = wordsWhen (== ',') text
isAllNumbers = all isNumber pieces
numbers = map read pieces
allInRange = all (\x -> x `inRange` constraint) numbers
allInRange = all (`inRange` constraint) numbers
isValid = length pieces >= 2 && isAllNumbers && allInRange
parseFieldStep :: String -> Maybe Step

View File

@ -39,9 +39,9 @@ parse s
| otherwise = Just (createPattern $ catMaybes parts)
where
parts = createParts s
isInvalid = checkParts parts == False
isInvalid = not (checkParts parts)
createPattern xs = Pattern {
cminute = xs !! 0,
cminute = head xs,
chour = xs !! 1,
cday = xs !! 2,
cmonth = xs !! 3,
@ -49,9 +49,9 @@ parse s
cyear = xs !! 5
}
createParts s = map f $ zip parsers (words s)
where
f (g, s) = g s
createParts s = zipWith (curry f) parsers (words s)
where
f (g, s) = g s
checkParts :: [Maybe Field] -> Bool
checkParts xs
@ -72,13 +72,13 @@ parseYear = parseFieldAdapter (Constraint 0 9999)
parsers = [parseMinute, parseHour, parseDay, parseMonth, parseWeek, parseYear]
check :: Pattern -> DateTime -> Bool
check pattern date = all isRight pairs
where
pairs = [ (cminute pattern, minute date),
(chour pattern, hour date),
(cday pattern, day date),
(cmonth pattern, month date),
(cweek pattern, weekdayNumber $ dateWeekDay date),
(cyear pattern, year date)
]
isRight (pattern, value) = matchField pattern value
check ptn date = all isRight pairs
where
pairs = [ (cminute ptn, minute date),
(chour ptn, hour date),
(cday ptn, day date),
(cmonth ptn, month date),
(cweek ptn, weekdayNumber $ dateWeekDay date),
(cyear ptn, year date)
]
isRight (p, value) = matchField p value