lita-team 1.0.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +243 -0
- data/.ruby-version +1 -1
- data/.travis.yml +1 -1
- data/README.md +2 -1
- data/lib/lita/handlers/add_member_to_team.rb +74 -0
- data/lib/lita/handlers/block_team.rb +42 -0
- data/lib/lita/handlers/clear_team.rb +38 -0
- data/lib/lita/handlers/confirm_member.rb +56 -0
- data/lib/lita/handlers/create_team.rb +38 -0
- data/lib/lita/handlers/delete_team.rb +26 -0
- data/lib/lita/handlers/list_team.rb +36 -0
- data/lib/lita/handlers/list_teams.rb +35 -0
- data/lib/lita/handlers/remove_member_from_team.rb +63 -0
- data/lib/lita/handlers/team.rb +2 -53
- data/lib/lita/handlers/update_team.rb +63 -0
- data/lib/lita-team.rb +12 -16
- data/lita-team.gemspec +2 -2
- data/locales/en.yml +21 -15
- data/spec/lita/handlers/add_member_to_team_spec.rb +92 -0
- data/spec/lita/handlers/block_team_spec.rb +29 -0
- data/spec/lita/handlers/clear_team_spec.rb +21 -0
- data/spec/lita/handlers/confirm_member_spec.rb +82 -0
- data/spec/lita/handlers/create_team_spec.rb +18 -0
- data/spec/lita/handlers/delete_team_spec.rb +20 -0
- data/spec/lita/handlers/list_team_spec.rb +65 -0
- data/spec/lita/handlers/list_teams_spec.rb +26 -0
- data/spec/lita/handlers/remove_member_from_team_spec.rb +104 -0
- data/spec/lita/handlers/team_spec.rb +0 -199
- data/spec/lita/handlers/update_team_spec.rb +41 -0
- data/spec/spec_helper.rb +1 -1
- data/templates/list_team.erb +8 -5
- data/templates/list_teams.erb +2 -8
- data/templates/member_added_to_team.erb +2 -2
- data/templates/member_confirmed.erb +4 -0
- data/templates/member_not_on_team.erb +0 -0
- data/templates/member_removed_from_team.erb +3 -3
- data/templates/team_already_exists.erb +1 -0
- data/templates/team_blocked.erb +1 -0
- data/templates/team_cannot_perform_operation.erb +1 -0
- data/templates/team_created.erb +1 -0
- data/templates/team_deleted.erb +1 -0
- data/templates/team_not_found.erb +1 -0
- data/templates/team_unblocked.erb +1 -0
- data/templates/team_updated.erb +1 -0
- metadata +46 -17
- data/lib/lita/actions/add_member_to_team.rb +0 -38
- data/lib/lita/actions/base.rb +0 -28
- data/lib/lita/actions/clear_team.rb +0 -30
- data/lib/lita/actions/create_team.rb +0 -21
- data/lib/lita/actions/delete_team.rb +0 -21
- data/lib/lita/actions/list_team.rb +0 -25
- data/lib/lita/actions/list_teams.rb +0 -11
- data/lib/lita/actions/remove_member_from_team.rb +0 -37
- data/lib/lita/member.rb +0 -17
- data/lib/lita/store/member.rb +0 -32
- data/lib/lita/store/team.rb +0 -34
- data/lib/lita/team.rb +0 -27
@@ -1,21 +0,0 @@
|
|
1
|
-
module Lita
|
2
|
-
module Actions
|
3
|
-
class CreateTeam < Base
|
4
|
-
|
5
|
-
def call
|
6
|
-
if Lita::Store::Team.create(team_name)
|
7
|
-
response.reply t(:team_created, name: team_name)
|
8
|
-
else
|
9
|
-
response.reply t(:team_already_exists, name: team_name)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
private
|
14
|
-
|
15
|
-
def team_name
|
16
|
-
response.match_data[1]
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Lita
|
2
|
-
module Actions
|
3
|
-
class DeleteTeam < Base
|
4
|
-
|
5
|
-
def call
|
6
|
-
if Lita::Store::Team.destroy(team_name)
|
7
|
-
response.reply t(:team_deleted, name: team_name)
|
8
|
-
else
|
9
|
-
response.reply t(:team_not_found, name: team_name)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
private
|
14
|
-
|
15
|
-
def team_name
|
16
|
-
response.match_data[2]
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
module Lita
|
2
|
-
module Actions
|
3
|
-
class ListTeam < Base
|
4
|
-
|
5
|
-
def call
|
6
|
-
if team
|
7
|
-
response.reply render_template(:list_team, team: team)
|
8
|
-
else
|
9
|
-
response.reply t(:team_not_found, name: team_name)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
private
|
14
|
-
|
15
|
-
def team_name
|
16
|
-
response.match_data[1]
|
17
|
-
end
|
18
|
-
|
19
|
-
def team
|
20
|
-
@team ||= Lita::Team.find(team_name)
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
module Lita
|
2
|
-
module Actions
|
3
|
-
class RemoveMemberFromTeam < Base
|
4
|
-
|
5
|
-
def call
|
6
|
-
if team
|
7
|
-
if destroy_member
|
8
|
-
response.reply render_template(:member_removed_from_team, member: member_name, team: team)
|
9
|
-
else
|
10
|
-
response.reply t(:member_already_out_of_team, member: member_name, team: team_name)
|
11
|
-
end
|
12
|
-
else
|
13
|
-
response.reply t(:team_not_found, name: team_name)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
private
|
18
|
-
|
19
|
-
def team_name
|
20
|
-
response.match_data[1]
|
21
|
-
end
|
22
|
-
|
23
|
-
def member_name
|
24
|
-
response.match_data[3] || response.user.mention_name
|
25
|
-
end
|
26
|
-
|
27
|
-
def team
|
28
|
-
@team ||= Lita::Team.find(team_name)
|
29
|
-
end
|
30
|
-
|
31
|
-
def destroy_member
|
32
|
-
Lita::Store::Member.destroy(member_name: member_name, team_name: team_name)
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
data/lib/lita/member.rb
DELETED
data/lib/lita/store/member.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
module Lita
|
2
|
-
module Store
|
3
|
-
module Member
|
4
|
-
extend self
|
5
|
-
|
6
|
-
def redis
|
7
|
-
@redis ||= Redis::Namespace.new("handlers:team:member", redis: Lita.redis)
|
8
|
-
end
|
9
|
-
|
10
|
-
def create(member_name:, team_name:)
|
11
|
-
redis.hsetnx("#{ team_name }:#{ member_name }", :name, member_name)
|
12
|
-
end
|
13
|
-
|
14
|
-
def destroy(member_name:, team_name:)
|
15
|
-
redis.del("#{ team_name }:#{ member_name }") != 0
|
16
|
-
end
|
17
|
-
|
18
|
-
def destroy_all(team_name:)
|
19
|
-
redis.keys("#{ team_name }:*").each do |key|
|
20
|
-
redis.del(key)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def all(team_name:)
|
25
|
-
redis.keys("#{ team_name }:*").sort.map do |key|
|
26
|
-
redis.hgetall(key)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
data/lib/lita/store/team.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
module Lita
|
2
|
-
module Store
|
3
|
-
module Team
|
4
|
-
extend self
|
5
|
-
|
6
|
-
def redis
|
7
|
-
@redis ||= Redis::Namespace.new("handlers:team:team", redis: Lita.redis)
|
8
|
-
end
|
9
|
-
|
10
|
-
def find(team_name)
|
11
|
-
redis.hgetall(team_name)
|
12
|
-
end
|
13
|
-
|
14
|
-
def exists?(team_name)
|
15
|
-
redis.exists(team_name)
|
16
|
-
end
|
17
|
-
|
18
|
-
def create(team_name)
|
19
|
-
redis.hsetnx(team_name, :name, team_name)
|
20
|
-
end
|
21
|
-
|
22
|
-
def destroy(team_name)
|
23
|
-
redis.del(team_name) != 0
|
24
|
-
end
|
25
|
-
|
26
|
-
def all
|
27
|
-
redis.keys.sort.map do |key|
|
28
|
-
redis.hgetall(key)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
data/lib/lita/team.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
module Lita
|
2
|
-
class Team
|
3
|
-
attr :name
|
4
|
-
|
5
|
-
def initialize(name)
|
6
|
-
@name = name
|
7
|
-
end
|
8
|
-
|
9
|
-
class << self
|
10
|
-
def find(name)
|
11
|
-
return nil unless Lita::Store::Team.exists?(name)
|
12
|
-
new(Lita::Store::Team.find(name)["name"])
|
13
|
-
end
|
14
|
-
|
15
|
-
def all
|
16
|
-
Lita::Store::Team.all.map do |data|
|
17
|
-
new(data["name"])
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def members
|
23
|
-
@members ||= Lita::Member.all(team_name: name)
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
end
|