hubot-bingo
Version:
A hubot script that plays Buzzword bingo
19 lines (13 loc) • 571 B
text/coffeescript
_ = require('lodash')
String::matchesAnyOf = (patterns) ->
_.find(patterns, (pattern) => > -1)?
class Ruleset
constructor: (data) ->
= data.requiredMatches
= _.mapValues data.buzzwords, (patterns) ->
patterns.map (pattern) -> new RegExp(pattern, 'gim')
getMatchedBuzzwords: (message) ->
(buzzword for buzzword, patterns of when message.matchesAnyOf(patterns))
isBingo: (buzzwords) ->
_.intersection(buzzwords, _.keys())?.length >=
module.exports = Ruleset