diff options
-rw-r--r-- | sorbot.cabal | 1 | ||||
-rw-r--r-- | src/Plugin.hs | 13 | ||||
-rw-r--r-- | src/Plugin/Base.hs | 17 |
3 files changed, 20 insertions, 11 deletions
diff --git a/sorbot.cabal b/sorbot.cabal index 49c21fa..a581bea 100644 --- a/sorbot.cabal +++ b/sorbot.cabal @@ -17,6 +17,7 @@ library hs-source-dirs: src exposed-modules: Lib , Plugin + , Plugin.Base build-depends: base >= 4.7 && < 5 , regex-tdfa default-language: Haskell2010 diff --git a/src/Plugin.hs b/src/Plugin.hs index 6522e0b..41b0296 100644 --- a/src/Plugin.hs +++ b/src/Plugin.hs @@ -1,21 +1,12 @@ module Plugin - ( Plugin - , matchPlugin + ( matchPlugin , performPlugin , plugins ) where import Text.Regex.TDFA -type PluginAction = String -> String - -data Plugin = Plugin - { matchRegex :: String - , perform :: PluginAction - } - -instance Show Plugin where - show (Plugin r p) = "matchRegex = " ++ r +import Plugin.Base matchPlugin :: String -> Maybe Plugin matchPlugin message = firstPlugin $ matchPlugins message plugins diff --git a/src/Plugin/Base.hs b/src/Plugin/Base.hs new file mode 100644 index 0000000..c73ef6a --- /dev/null +++ b/src/Plugin/Base.hs @@ -0,0 +1,17 @@ +module Plugin.Base + ( PluginAction + + , Plugin(..) + , matchRegex + , perform + ) where + +type PluginAction = String -> String + +data Plugin = Plugin + { matchRegex :: String + , perform :: PluginAction + } + +instance Show Plugin where + show (Plugin r p) = "matchRegex = " ++ r |