lita-hipchat 2.1.3 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +4 -1
- data/README.md +5 -1
- data/lib/lita-hipchat.rb +6 -0
- data/lib/lita/adapters/hipchat.rb +24 -7
- data/lib/lita/adapters/hipchat/connector.rb +1 -0
- data/lita-hipchat.gemspec +2 -2
- data/locales/en.yml +9 -0
- data/spec/lita/adapters/hipchat/connector_spec.rb +1 -0
- data/spec/lita/adapters/hipchat_spec.rb +54 -16
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ad7f231798e72ad24098c645a8fb7eeeba583f3
|
4
|
+
data.tar.gz: c39205b24b33b1e0274fab0575d97a873ecebffa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d461fa2c0b10cfeccea84474ba310f11130ef29b0578de1861af6290ffed2be679a6476c3bf09b214638cc107d28e24f99766ff8d4487d3c165dcbd1e4a47753
|
7
|
+
data.tar.gz: b1cf4ae4f3d3e5a92c043dc149c72193973fb04e792db88889ee5c6b867fcf013a7ead3dd11e1948069c74bd8160d4661e236b18605eaad022a2f5a4edcf5fd6
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -27,7 +27,7 @@ Values for all of the following attributes can be found on the "XMPP/Jabber info
|
|
27
27
|
|
28
28
|
* `server` (String) - The HipChat Server address. Override this with the full domain of your server if using a private HipChat Server installation. Default: `"chat.hipchat.com"`
|
29
29
|
* `debug` (Boolean) - If `true`, turns on the underlying Jabber library's (xmpp4r) logger, which is fairly verbose. Default: `false`.
|
30
|
-
* `rooms` (Symbol, Array<String>) - An array of room JIDs that Lita should join upon connection. Can also be the symbol `:all`, which will cause Lita to discover and join all rooms. Default: `nil` (no rooms).
|
30
|
+
* **DEPRECATED** - `rooms` (Symbol, Array<String>) - An array of room JIDs that Lita should join upon connection. Can also be the symbol `:all`, which will cause Lita to discover and join all rooms. Default: `nil` (no rooms).
|
31
31
|
* `muc_domain` (String) - The XMPP Multi-User Chat domain to use. Default: `"conf.hipchat.com"`.
|
32
32
|
* `ignore_unknown_users` (Boolean) - Messages generated through HipChat's API which don't come from a real user account will be ignored by the robot. With the default setting of false, Lita will emit a warning but the message will be dispatched to any registered handlers as usual. Default: `false`.
|
33
33
|
|
@@ -55,6 +55,10 @@ end
|
|
55
55
|
`:joined` - When the robot joins a room. Payload: `:room`: The String room ID that was joined.
|
56
56
|
`:parted` - When the robot parts from a room. Payload: `:room`: The String room ID that was parted from.
|
57
57
|
|
58
|
+
## Managing rooms
|
59
|
+
|
60
|
+
To make Lita join or part from rooms, use the [built-in `join` and `part` commands](http://docs.lita.io/getting-started/usage/#managing-rooms). For backwards compatibility, the `rooms` configuration attribute will be supported until lita-hipchat 4.0, but you should remove it and begin using the new command instead. If the configuration attribute is set, lita-hipchat will honor its value and join those rooms instead of the ones persisted to Redis from using the new commands.
|
61
|
+
|
58
62
|
## License
|
59
63
|
|
60
64
|
[MIT](http://opensource.org/licenses/MIT)
|
data/lib/lita-hipchat.rb
CHANGED
@@ -41,7 +41,7 @@ module Lita
|
|
41
41
|
def run
|
42
42
|
connector.connect
|
43
43
|
robot.trigger(:connected)
|
44
|
-
|
44
|
+
join_persisted_rooms
|
45
45
|
sleep
|
46
46
|
rescue Interrupt
|
47
47
|
shut_down
|
@@ -67,18 +67,35 @@ module Lita
|
|
67
67
|
|
68
68
|
private
|
69
69
|
|
70
|
-
def
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
70
|
+
def join_all_rooms?
|
71
|
+
config.rooms == :all
|
72
|
+
end
|
73
|
+
|
74
|
+
def join_persisted_rooms
|
75
|
+
rooms.each { |room| join(room) }
|
76
76
|
end
|
77
77
|
|
78
78
|
def muc_domain
|
79
79
|
config.muc_domain.dup
|
80
80
|
end
|
81
81
|
|
82
|
+
def rooms_configured?
|
83
|
+
config.rooms.respond_to?(:empty?) && !config.rooms.empty?
|
84
|
+
end
|
85
|
+
|
86
|
+
def rooms
|
87
|
+
if join_all_rooms? || rooms_configured?
|
88
|
+
log.warn(t("config.rooms.deprecated"))
|
89
|
+
|
90
|
+
if config.rooms == :all
|
91
|
+
connector.list_rooms(muc_domain)
|
92
|
+
else
|
93
|
+
Array(config.rooms)
|
94
|
+
end
|
95
|
+
else
|
96
|
+
robot.persisted_rooms
|
97
|
+
end
|
98
|
+
end
|
82
99
|
end
|
83
100
|
|
84
101
|
Lita.register_adapter(:hipchat, HipChat)
|
data/lita-hipchat.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "lita-hipchat"
|
3
|
-
spec.version = "
|
3
|
+
spec.version = "3.0.0"
|
4
4
|
spec.authors = ["Jimmy Cuadra"]
|
5
5
|
spec.email = ["jimmy@jimmycuadra.com"]
|
6
6
|
spec.description = %q{A HipChat adapter for Lita.}
|
@@ -14,7 +14,7 @@ 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", ">= 4.
|
17
|
+
spec.add_runtime_dependency "lita", ">= 4.4.3"
|
18
18
|
spec.add_runtime_dependency "xmpp4r", ">= 0.5.6"
|
19
19
|
|
20
20
|
spec.add_development_dependency "bundler", "~> 1.3"
|
data/locales/en.yml
ADDED
@@ -7,6 +7,8 @@ describe Lita::Adapters::HipChat, lita: true do
|
|
7
7
|
registry.configure do |config|
|
8
8
|
config.adapters.hipchat.jid = "jid"
|
9
9
|
config.adapters.hipchat.password = "secret"
|
10
|
+
config.adapters.hipchat.muc_domain = domain
|
11
|
+
config.adapters.hipchat.rooms = rooms
|
10
12
|
end
|
11
13
|
|
12
14
|
allow(described_class::Connector).to receive(:new).and_return(connector)
|
@@ -17,6 +19,7 @@ describe Lita::Adapters::HipChat, lita: true do
|
|
17
19
|
let(:robot) { Lita::Robot.new(registry) }
|
18
20
|
let(:connector) { instance_double("Lita::Adapters::HipChat::Connector") }
|
19
21
|
let(:domain) { "conf.hipchat.com" }
|
22
|
+
let(:rooms) { %w(room_1, room_2) }
|
20
23
|
|
21
24
|
it "registers with Lita" do
|
22
25
|
expect(Lita.adapters[:hipchat]).to eql(described_class)
|
@@ -51,8 +54,6 @@ describe Lita::Adapters::HipChat, lita: true do
|
|
51
54
|
end
|
52
55
|
|
53
56
|
describe "#run" do
|
54
|
-
let(:rooms) { ["room_1_id", "room_2_id"] }
|
55
|
-
|
56
57
|
before do
|
57
58
|
allow(subject.connector).to receive(:connect)
|
58
59
|
allow(robot).to receive(:trigger)
|
@@ -68,30 +69,67 @@ describe Lita::Adapters::HipChat, lita: true do
|
|
68
69
|
|
69
70
|
context "with a custom domain" do
|
70
71
|
let(:domain) { "foo.bar.com" }
|
72
|
+
|
71
73
|
it "joins rooms with a custom muc_domain" do
|
72
|
-
registry.config.adapters.hipchat.muc_domain = domain
|
73
|
-
allow(subject).to receive(:rooms).and_return(rooms)
|
74
74
|
expect(subject.connector).to receive(:join).with(domain, anything)
|
75
|
+
|
75
76
|
subject.run
|
76
77
|
end
|
77
78
|
end
|
78
79
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
80
|
+
context "when config.rooms is :all" do
|
81
|
+
before do
|
82
|
+
allow(subject.connector).to receive(:list_rooms).and_return(%w(room_1 room_2))
|
83
|
+
allow(subject.connector).to receive(:join)
|
84
|
+
end
|
85
|
+
|
86
|
+
let(:rooms) { :all }
|
87
|
+
|
88
|
+
it "logs a deprecation warning" do
|
89
|
+
expect(Lita.logger).to receive(:warn) do |msg|
|
90
|
+
expect(msg).to include("config.rooms is deprecated")
|
91
|
+
end
|
92
|
+
|
93
|
+
subject.run
|
94
|
+
end
|
95
|
+
|
96
|
+
it "joins all rooms" do
|
97
|
+
%w(room_1 room_2).each do |room|
|
98
|
+
expect(subject.connector).to receive(:join).with(domain, room)
|
99
|
+
end
|
100
|
+
|
101
|
+
subject.run
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
context "when config.rooms contains individual room IDs" do
|
106
|
+
let(:rooms) { ["room_1_only"] }
|
107
|
+
|
108
|
+
it "logs a deprecation warning" do
|
109
|
+
expect(Lita.logger).to receive(:warn) do |msg|
|
110
|
+
expect(msg).to include("config.rooms is deprecated")
|
111
|
+
end
|
112
|
+
|
113
|
+
subject.run
|
114
|
+
end
|
115
|
+
|
116
|
+
it "joins the specified rooms" do
|
117
|
+
expect(subject.connector).to receive(:join).with(domain, "room_1_only")
|
118
|
+
|
119
|
+
subject.run
|
84
120
|
end
|
85
|
-
subject.run
|
86
121
|
end
|
87
122
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
rooms
|
92
|
-
|
123
|
+
context "when config.rooms is empty" do
|
124
|
+
before { allow(robot).to receive(:persisted_rooms).and_return(%w(persisted_room_1)) }
|
125
|
+
|
126
|
+
let(:rooms) { [] }
|
127
|
+
|
128
|
+
it "joins rooms persisted in robot.persisted_rooms" do
|
129
|
+
expect(subject.connector).to receive(:join).with(domain, "persisted_room_1")
|
130
|
+
|
131
|
+
subject.run
|
93
132
|
end
|
94
|
-
subject.run
|
95
133
|
end
|
96
134
|
|
97
135
|
it "sleeps the main thread" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-hipchat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jimmy Cuadra
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-06-18 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:
|
19
|
+
version: 4.4.3
|
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:
|
26
|
+
version: 4.4.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: xmpp4r
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -126,6 +126,7 @@ files:
|
|
126
126
|
- lib/lita/adapters/hipchat/callback.rb
|
127
127
|
- lib/lita/adapters/hipchat/connector.rb
|
128
128
|
- lita-hipchat.gemspec
|
129
|
+
- locales/en.yml
|
129
130
|
- spec/lita/adapters/hipchat/callback_spec.rb
|
130
131
|
- spec/lita/adapters/hipchat/connector_spec.rb
|
131
132
|
- spec/lita/adapters/hipchat_spec.rb
|
@@ -160,3 +161,4 @@ test_files:
|
|
160
161
|
- spec/lita/adapters/hipchat/connector_spec.rb
|
161
162
|
- spec/lita/adapters/hipchat_spec.rb
|
162
163
|
- spec/spec_helper.rb
|
164
|
+
has_rdoc:
|