diff options
| -rw-r--r-- | src/Lib.hs | 2 | ||||
| -rw-r--r-- | src/Plugin.hs | 18 | 
2 files changed, 8 insertions, 12 deletions
| @@ -9,5 +9,5 @@ import Plugin  someFunc :: IO ()  someFunc = do      let message = "75ac7b18a009ffe7a77a17a61d95c01395f36b44" -        Just plugin = realMatchPlugin message +        Just plugin = matchPlugin message      putStrLn $ performPlugin plugin message diff --git a/src/Plugin.hs b/src/Plugin.hs index e25a1dc..2a06fb4 100644 --- a/src/Plugin.hs +++ b/src/Plugin.hs @@ -1,6 +1,6 @@  module Plugin -    ( realMatchPlugin -    , Plugin +    ( Plugin +    , matchPlugin      , performPlugin      , plugins      ) where @@ -15,19 +15,15 @@ data Plugin = Plugin  instance Show Plugin where      show (Plugin r p) = "matchRegex = " ++ r -realMatchPlugin :: String -> Maybe Plugin -realMatchPlugin message = matchPlugin message plugins - -matchPlugin :: String -> [Plugin] -> Maybe Plugin -matchPlugin message plugins = firstPlugin $ matchPlugins message plugins +matchPlugin :: String -> Maybe Plugin +matchPlugin message = firstPlugin $ matchPlugins message plugins +  where +    firstPlugin []     = Nothing +    firstPlugin (p:ps) = Just p  matchPlugins :: String -> [Plugin] -> [Plugin]  matchPlugins message plugins = [p | p <- plugins, message =~ matchRegex p] -firstPlugin :: [Plugin] -> Maybe Plugin -firstPlugin []     = Nothing -firstPlugin (p:ps) = Just p -  -- TODO: Make a type for the `perform` function  performPlugin :: Plugin -> String -> String  performPlugin p message = perform p $ message =~ matchRegex p | 
