lita-slack-handler 0.2.0 → 0.2.1

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: 5069dda33ad4e37ed62c5bb41f3b229a0e08d721
4
- data.tar.gz: c2c56ed04d8fd09c0f6c1f7b2e92bcc1a2d91a0f
3
+ metadata.gz: 1955f5daca8b60f5b4d0ab9a5cf83850bed932b9
4
+ data.tar.gz: 4609c8a523f8cb8928993f9fd9c0c27d0cac3ec5
5
5
  SHA512:
6
- metadata.gz: ceb51b4b012fe77cdb9e3d0f0f290305c9b505a4d3884c580ee37d83478a7de7911504a096fb4e49cc80a638fe377198b0eb66a3a9f9f964de0a55fce9374b9d
7
- data.tar.gz: 39e649c5e54076d8bb8983c87eb59f5ef16705f1c5434c8bcd6d37891dd314ce65a585de4c8f0d7360cf304b869fc38ef7b52c4cea390c59365b1b0cd913b4b4
6
+ metadata.gz: 0db57c56ff22ad26274bf0a99150dafdc1f267057af7890b360d09f9acf1ca3d251602a569fb0aaea45a9990517e0a605c2e2dc51cdc3ebd979d0051f0a12b3f
7
+ data.tar.gz: b3fa2d566200305eb1356a3b4888fbf3ac66dca4f887bf7562c766e1d65fa554aad0c3f8a41cad273a712b127bc5a272fff178bb71fd619b96fcef0f1f5bdb75
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ lita_config.rb
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # lita-slack-handler
2
2
 
3
- **lita-hipchat-handler** is a handler for [Lita](https://github.com/jimmycuadra/lita) that allows you to use the robot with [Slack](https://slack.com/). This handler complements [lita-slack](https://github.com/kenjij/lita-slack) adapter gem.
4
- **lita-hipchat-handler** sets up an HTTP route to accept messages from Slack:Outgoing WebHooks integrations, then feeds it into Lita.
3
+ **lita-slack-handler** is a handler for [Lita](https://github.com/jimmycuadra/lita) that allows you to use the robot with [Slack](https://slack.com/). This handler complements [lita-slack](https://github.com/kenjij/lita-slack) adapter gem.
4
+ **lita-slack-handler** sets up an HTTP route to accept messages from Slack:Outgoing WebHooks integrations, then feeds it into Lita.
5
5
  This handler, otherwise, does nothing by itself; i.e., it does not produce any replies.
6
6
 
7
7
  ## Installation
@@ -11,8 +11,9 @@ module Lita
11
11
  # Slack:Outgoing WebHook integration token
12
12
  default.webhook_token = nil
13
13
  default.team_domain = nil
14
+ default.ignore_user_name = nil
14
15
  end
15
-
16
+
16
17
  def receive(req, res)
17
18
  # For security, do not run with missing config
18
19
  if not config_valid?
@@ -25,6 +26,12 @@ module Lita
25
26
  res.status = 403
26
27
  return
27
28
  end
29
+ # Ignore some requests
30
+ if ignore?(req)
31
+ log.debug "SlackHandler::receive ignoring request"
32
+ res.status = 200
33
+ return
34
+ end
28
35
  res.status = 200
29
36
  log.debug "SlackHandler::receive webhook_token:#{req['token']} team_domain:#{req['team_domain']}"
30
37
  log.debug "SlackHandler::receive user id:#{req['user_id']} name:#{req['user_name']}"
@@ -67,18 +74,27 @@ module Lita
67
74
  return valid
68
75
  end
69
76
 
77
+ def ignore?(req)
78
+ ignore = false
79
+ if !config.ignore_user_name.nil? && req['user_name'].eql?(config.ignore_user_name)
80
+ log.warn "SlackHandler: #{req['user_name']} matches ignore_user_name #{config.ignore_user_name}"
81
+ ignore = true
82
+ end
83
+ return ignore
84
+ end
85
+
70
86
  #
71
87
  # Accessor shortcuts
72
88
  #
73
89
  def log
74
90
  Lita.logger
75
91
  end
76
-
92
+
77
93
  def config
78
94
  Lita.config.handlers.slack_handler
79
95
  end
80
96
  end
81
-
97
+
82
98
  Lita.register_handler(SlackHandler)
83
99
  end
84
100
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-slack-handler"
3
- spec.version = "0.2.0"
3
+ spec.version = "0.2.1"
4
4
  spec.authors = ["Ken J."]
5
5
  spec.email = ["kenjij@gmail.com"]
6
6
  spec.description = %q{Lita handler for Slack}
@@ -14,9 +14,9 @@ Gem::Specification.new do |spec|
14
14
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
15
15
  spec.require_paths = ["lib"]
16
16
 
17
- spec.add_runtime_dependency "lita", "~> 2.7"
17
+ spec.add_runtime_dependency "lita", "~> 3.0"
18
18
 
19
19
  spec.add_development_dependency "bundler", "~> 1.3"
20
20
  spec.add_development_dependency "rake"
21
- spec.add_development_dependency "rspec", ">= 2.14"
21
+ spec.add_development_dependency "rspec", ">= 3.0.0.beta1"
22
22
  end
@@ -3,29 +3,28 @@ require "spec_helper"
3
3
  describe Lita::Handlers::SlackHandler, lita_handler: true do
4
4
  http_route_path = '/lita/slack-handler'
5
5
  req = {}
6
-
6
+
7
7
  it "registers with Lita" do
8
8
  expect(Lita.handlers).to include(described_class)
9
9
  end
10
10
 
11
11
  it "registers HTTP route POST #{http_route_path} to :receive" do
12
- expect(described_class.http_routes[0].http_method).to eql('POST')
13
- expect(described_class.http_routes[0].path).to eql(http_route_path)
14
- expect(described_class.http_routes[0].method_name).to eql(:receive)
12
+ routes_http(:post, http_route_path).to(:receive)
15
13
  end
16
14
 
17
15
  context "with valid config" do
18
16
  before :each do
19
17
  Lita.config.handlers.slack_handler.webhook_token = "aN1NvAlIdDuMmYt0k3n"
20
18
  Lita.config.handlers.slack_handler.team_domain = "example"
19
+ Lita.config.handlers.slack_handler.ignore_user_name = "lita"
21
20
  end
22
-
21
+
23
22
  describe "#config_valid?" do
24
23
  it 'returns true' do
25
24
  expect(subject.config_valid?).to eql(true)
26
25
  end
27
26
  end
28
-
27
+
29
28
  describe "#request_valid?" do
30
29
  it 'returns true with valid request' do
31
30
  req['token'] = Lita.config.handlers.slack_handler.webhook_token
@@ -47,6 +46,15 @@ describe Lita::Handlers::SlackHandler, lita_handler: true do
47
46
  expect(subject.request_valid?(req)).to eql(false)
48
47
  end
49
48
  end
49
+
50
+ describe "#ignore?" do
51
+ it 'returns true when ignore_user_name matches user_name' do
52
+ req['token'] = Lita.config.handlers.slack_handler.webhook_token
53
+ req['team_domain'] = Lita.config.handlers.slack_handler.team_domain
54
+ req['user_name'] = 'lita'
55
+ expect(subject.ignore?(req)).to eql(true)
56
+ end
57
+ end
50
58
  end
51
59
 
52
60
  context "without valid config" do
@@ -54,7 +62,7 @@ describe Lita::Handlers::SlackHandler, lita_handler: true do
54
62
  Lita.config.handlers.slack_handler.webhook_token = nil
55
63
  Lita.config.handlers.slack_handler.team_domain = nil
56
64
  end
57
-
65
+
58
66
  describe "#config_valid?" do
59
67
  it 'returns false' do
60
68
  expect(subject.config_valid?).to eql(false)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-slack-handler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ken J.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-29 00:00:00.000000000 Z
11
+ date: 2014-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: '2.7'
19
+ version: '3.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: '2.7'
26
+ version: '3.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - '>='
60
60
  - !ruby/object:Gem::Version
61
- version: '2.14'
61
+ version: 3.0.0.beta1
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '>='
67
67
  - !ruby/object:Gem::Version
68
- version: '2.14'
68
+ version: 3.0.0.beta1
69
69
  description: Lita handler for Slack
70
70
  email:
71
71
  - kenjij@gmail.com
@@ -73,6 +73,7 @@ executables: []
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
+ - .gitignore
76
77
  - Gemfile
77
78
  - LICENSE
78
79
  - README.md
@@ -103,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
104
  version: '0'
104
105
  requirements: []
105
106
  rubyforge_project:
106
- rubygems_version: 2.0.7
107
+ rubygems_version: 2.2.2
107
108
  signing_key:
108
109
  specification_version: 4
109
110
  summary: Lita handler for Slack; complement lita-slack adapter gem.