lita-group-mention 1.1.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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