lita-group-mention 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: da198da0e1f717aa3d96f6d9878bc7f90d6650c3
4
- data.tar.gz: e42ca21995c5a6828c0127436f240c139eb12a2d
3
+ metadata.gz: ed482e046fa6c690e07fa65a833e8d9efbbde2e9
4
+ data.tar.gz: 74dda221df437d3584e7e04b613c52f9c64c1f91
5
5
  SHA512:
6
- metadata.gz: a6338618c47878a8375e05f304adb6a274246c60c49602b1c314575dd829f0c1c6222035ddc7b4d19de7b8dcaf8754d16710f83965d18019eee9a6fee121a037
7
- data.tar.gz: 1548a43d0924add61c4864e9b8907d2253248e40661423b6a7c3d48c0bec8e76f359a4352506f8aff5626da8104983f641c81c050924476dfc79e0d45febeb50
6
+ metadata.gz: 391b329af6cd8d7b637b0eb786aa65760d63c406b89ace11e8958f970cc0a6311669f0ca66404b296ee044d057d1963ed5df633642c8686c127b7baa271a92ed
7
+ data.tar.gz: 1370e064a6b35768dbb8111628d8a785929f33beaeaea867c5d9381d6db1df427230600d766ac3c5334ba99ab47dd87d038471e97e3428ff3a61a42544fc022e
data/README.md CHANGED
@@ -11,6 +11,18 @@ Add lita-group-mention to your Lita instance's Gemfile:
11
11
  gem "lita-group-mention"
12
12
  ```
13
13
 
14
+ ## Configuration (optional)
15
+
16
+ Preload mention groups and members using configuration:
17
+
18
+ ```ruby
19
+ config.handlers.group_mention.groups =
20
+ {
21
+ 'ops' => ['ops1','ops2']
22
+ 'devs' => ['dev1','dev2']
23
+ }
24
+ ```
25
+
14
26
  ## Usage
15
27
 
16
28
  This plugin will monitor messages for mentions of groups, and expand the group
@@ -2,7 +2,11 @@ module Lita
2
2
  # Lita Handler module
3
3
  module Handlers
4
4
  # GroupMention handler class
5
- class GroupMention < Handler
5
+ class GroupMention < Handler # rubocop:disable Metrics/ClassLength
6
+ # Preload mention groups into redis
7
+ # configure format: {'group1' => ['member1', 'member2']}
8
+ config :groups, type: Hash, default: nil
9
+
6
10
  route(/@([a-zA-Z0-9.\-_]+)+/, :group_mention)
7
11
  route(
8
12
  /^group\s+mention\s+add\s+@?(?<user>[a-zA-Z0-9.\-_]+)\s+to\s+@?(?<group>[a-zA-Z0-9.\-_]+)/,
@@ -53,6 +57,8 @@ module Lita
53
57
  }
54
58
  )
55
59
 
60
+ on :loaded, :preload_groups
61
+
56
62
  def group_mention(response) # rubocop:disable AbcSize
57
63
  return if response.message.body =~ /group\s+mention/
58
64
  groups = response.matches.flatten
@@ -115,6 +121,16 @@ module Lita
115
121
  response.reply("#{user}: #{get_user_memberships(user).join(', ')}")
116
122
  end
117
123
 
124
+ def preload_groups(_)
125
+ config.groups.each do |group, members|
126
+ members.each do |member|
127
+ log.info("Load group mention: user[#{member}] group[#{group}]")
128
+ redis.sadd("user:#{member}", group)
129
+ redis.sadd("group:#{group}", member)
130
+ end
131
+ end if config.groups.is_a?(Hash)
132
+ end
133
+
118
134
  private
119
135
 
120
136
  def redis_groups
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = 'lita-group-mention'
3
- spec.version = '1.1.1'
3
+ spec.version = '1.2.0'
4
4
  spec.authors = ['Ben House']
5
5
  spec.email = ['ben@benhouse.io']
6
6
  spec.description = 'cc a list of users when a group is @mentioned'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-group-mention
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben House
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-30 00:00:00.000000000 Z
11
+ date: 2015-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita