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 +4 -4
- data/README.md +12 -0
- data/lib/lita/handlers/group_mention.rb +17 -1
- data/lita-group-mention.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed482e046fa6c690e07fa65a833e8d9efbbde2e9
|
4
|
+
data.tar.gz: 74dda221df437d3584e7e04b613c52f9c64c1f91
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
data/lita-group-mention.gemspec
CHANGED
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.
|
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-
|
11
|
+
date: 2015-09-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lita
|