lita-hipchat 2.1.3 → 3.0.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/.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:
|