lita-hipchat 1.2.4 → 1.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b44d85256ad28bcd38f6251bb541befe06e46e1a
4
- data.tar.gz: d4cbe864f145d04cf8e951f4e5d9926368b78601
3
+ metadata.gz: 4eafe0fed02771e3620e3c24e787e5ac93bd6161
4
+ data.tar.gz: d3ce7410e3b5ac946ca7b8647faf3fd11606f511
5
5
  SHA512:
6
- metadata.gz: 28fd7d98f38987810ffce31d1425fdc443aa3173cfe638bd49f536d8df4a331e85eb1ab1d48984d3cffa2478f7a4cfac6cb7fb77f9da1ef85dd28a1d7dcf0de0
7
- data.tar.gz: 17113cc66fb7da9a6724ccabc9acefdc465f9a0471129c7ee87cfe7d442493504f60ee3f241cf3277c3aba3f7c05210f17db5b1e710dca94c4cdd23ba1a2f4fa
6
+ metadata.gz: 766865e1b4d6179bec66e66a7c5ad22d1da935eb541e96822619ed3cd4bb1eb74fd5aaacb297beff1d448dea5d3dd491795f3ca0d0c11e8901c7f40fa228a08b
7
+ data.tar.gz: 0cf3c6890479743a5193272ad6070034d1b936cdabf434331f4ff98606a013eeebc1e6573451ca37ceaf7de0bf22454f58e6658c79203ac3ebf19a04812af0d0
@@ -11,20 +11,21 @@ module Lita
11
11
  def initialize(robot)
12
12
  super
13
13
 
14
- set_default_config_values
15
-
16
- @connector = Connector.new(
17
- robot,
18
- config.jid,
19
- config.password,
20
- debug: config.debug
21
- )
14
+ @connector = Connector.new(robot, config.jid, config.password, debug: debug)
15
+ end
16
+
17
+ def join(room_id)
18
+ connector.join(muc_domain, room_id)
19
+ end
20
+
21
+ def part(room_id)
22
+ connector.part(muc_domain, room_id)
22
23
  end
23
24
 
24
25
  def run
25
26
  connector.connect
26
27
  robot.trigger(:connected)
27
- connector.join_rooms(config.muc_domain, rooms)
28
+ connector.join_rooms(muc_domain, rooms)
28
29
  sleep
29
30
  rescue Interrupt
30
31
  shut_down
@@ -53,18 +54,21 @@ module Lita
53
54
  Lita.config.adapter
54
55
  end
55
56
 
57
+ def debug
58
+ config.debug || false
59
+ end
60
+
61
+ def muc_domain
62
+ config.muc_domain || "conf.hipchat.com"
63
+ end
64
+
56
65
  def rooms
57
66
  if config.rooms == :all
58
- connector.list_rooms(config.muc_domain)
67
+ connector.list_rooms(muc_domain)
59
68
  else
60
69
  Array(config.rooms)
61
70
  end
62
71
  end
63
-
64
- def set_default_config_values
65
- config.debug = false if config.debug.nil?
66
- config.muc_domain = "conf.hipchat.com" if config.muc_domain.nil?
67
- end
68
72
  end
69
73
 
70
74
  Lita.register_adapter(:hipchat, HipChat)
@@ -1,4 +1,3 @@
1
- require "lita/encoding_patches"
2
1
  require "lita/adapters/hipchat/callback"
3
2
 
4
3
  require "xmpp4r"
@@ -34,15 +33,21 @@ module Lita
34
33
  send_presence
35
34
  end
36
35
 
36
+ def join(muc_domain, room)
37
+ room_jid = normalized_jid(room, muc_domain, robot.name)
38
+ return if mucs[room_jid.bare.to_s]
39
+
40
+ muc = Jabber::MUC::SimpleMUCClient.new(client)
41
+ mucs[room_jid.bare.to_s] = muc
42
+
43
+ register_muc_message_callback(muc)
44
+
45
+ Lita.logger.info("Joining room: #{room_jid}.")
46
+ muc.join(room_jid)
47
+ end
48
+
37
49
  def join_rooms(muc_domain, rooms)
38
- rooms.each do |room_name|
39
- muc = Jabber::MUC::SimpleMUCClient.new(client)
40
- room_jid = normalized_jid(room_name, muc_domain, robot.name)
41
- mucs[room_jid.bare.to_s] = muc
42
- register_muc_message_callback(muc)
43
- Lita.logger.info("Joining room: #{room_jid}.")
44
- muc.join(room_jid)
45
- end
50
+ rooms.each { |room| join(muc_domain, room) }
46
51
  end
47
52
 
48
53
  def list_rooms(muc_domain)
@@ -72,6 +77,12 @@ module Lita
72
77
  @mucs ||= {}
73
78
  end
74
79
 
80
+ def part(muc_domain, room)
81
+ room_jid = normalized_jid(room, muc_domain, robot.name)
82
+ muc = mucs[room_jid.bare.to_s]
83
+ muc.exit if muc
84
+ end
85
+
75
86
  def set_topic(room_jid, topic)
76
87
  muc = mucs[room_jid]
77
88
  if muc
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 = "1.2.4"
3
+ spec.version = "1.3.0"
4
4
  spec.authors = ["Jimmy Cuadra"]
5
5
  spec.email = ["jimmy@jimmycuadra.com"]
6
6
  spec.description = %q{A HipChat adapter for Lita.}
@@ -15,11 +15,11 @@ Gem::Specification.new do |spec|
15
15
  spec.require_paths = ["lib"]
16
16
 
17
17
  spec.add_runtime_dependency "lita", ">= 2.5"
18
- spec.add_runtime_dependency "xmpp4r", ">= 0.5"
18
+ spec.add_runtime_dependency "xmpp4r", ">= 0.5.6"
19
19
 
20
20
  spec.add_development_dependency "bundler", "~> 1.3"
21
21
  spec.add_development_dependency "rake"
22
- spec.add_development_dependency "rspec", ">= 2.14"
22
+ spec.add_development_dependency "rspec", ">= 3.0.0.beta2"
23
23
  spec.add_development_dependency "simplecov"
24
24
  spec.add_development_dependency "coveralls"
25
25
  end
@@ -3,15 +3,15 @@ require "spec_helper"
3
3
  describe Lita::Adapters::HipChat::Callback, lita: true do
4
4
  subject { described_class.new(robot, roster) }
5
5
 
6
- let(:robot) { double("Lita::Robot") }
6
+ let(:robot) { instance_double("Lita::Robot") }
7
7
  let(:roster) do
8
- double("Jabber::Roster::Helper", items: { "user_id" => roster_item })
8
+ instance_double("Jabber::Roster::Helper", items: { "user_id" => roster_item })
9
9
  end
10
- let(:user) { double("Lita::User", id: "user_id") }
11
- let(:source) { double("Lita::Source") }
12
- let(:message) { double("Lita::Message") }
10
+ let(:user) { instance_double("Lita::User", id: "user_id") }
11
+ let(:source) { instance_double("Lita::Source") }
12
+ let(:message) { instance_double("Lita::Message") }
13
13
  let(:roster_item) do
14
- double("Jabber::Roster::RosterItem", attributes: {
14
+ instance_double("Jabber::Roster::RosterItem", attributes: {
15
15
  "jid" => "user_id",
16
16
  "name" => "Carl",
17
17
  "mention_name" => "@Carl"
@@ -36,9 +36,9 @@ describe Lita::Adapters::HipChat::Callback, lita: true do
36
36
  end
37
37
 
38
38
  describe "#private_message" do
39
- let(:client) { double("Jabber::Client") }
39
+ let(:client) { instance_double("Jabber::Client") }
40
40
  let(:jabber_message) do
41
- double("Jabber::Message", type: :chat, from: "user_id", body: "foo")
41
+ instance_double("Jabber::Message", type: :chat, from: "user_id", body: "foo")
42
42
  end
43
43
 
44
44
  before do
@@ -47,11 +47,7 @@ describe Lita::Adapters::HipChat::Callback, lita: true do
47
47
 
48
48
  it "sends the message to the robot with the proper source and body" do
49
49
  allow(Lita::Source).to receive(:new).with(user: user).and_return(source)
50
- allow(Lita::Message).to receive(:new).with(
51
- robot,
52
- "foo",
53
- source
54
- ).and_return(message)
50
+ allow(Lita::Message).to receive(:new).with(robot, "foo", source).and_return(message)
55
51
  expect(message).to receive(:command!)
56
52
  expect(robot).to receive(:receive).with(message)
57
53
  subject.private_message(client)
@@ -71,39 +67,28 @@ describe Lita::Adapters::HipChat::Callback, lita: true do
71
67
  end
72
68
 
73
69
  describe "#muc_message" do
74
- let(:jid) { double("Jabber::JID", bare: "room_id") }
75
- let(:muc) { double("Jabber::MUC::SimpleMUCClient", jid: jid) }
70
+ let(:jid) { instance_double("Jabber::JID", bare: "room_id") }
71
+ let(:muc) { instance_double("Jabber::MUC::SimpleMUCClient", jid: jid) }
76
72
 
77
73
  before do
78
74
  allow(muc).to receive(:on_message).and_yield(nil, "Carl", "foo")
79
75
  end
80
76
 
81
77
  it "sends the message to the robot with the proper source and body" do
82
- allow(Lita::Source).to receive(:new).with(
83
- user: user,
84
- room: "room_id"
85
- ).and_return(source)
86
- allow(Lita::Message).to receive(:new).with(
87
- robot,
88
- "foo",
89
- source
90
- ).and_return(message)
78
+ allow(Lita::Source).to receive(:new).with(user: user, room: "room_id").and_return(source)
79
+ allow(Lita::Message).to receive(:new).with(robot, "foo", source).and_return(message)
91
80
  expect(robot).to receive(:receive).with(message)
92
81
  subject.muc_message(muc)
93
82
  end
94
83
 
95
84
  it "creates a temporary source user if the JID isn't in the roster" do
96
- roster = double("Jabber::Roster::Helper", items: {})
85
+ roster = instance_double("Jabber::Roster::Helper", items: {})
97
86
  allow(muc).to receive(:on_message).and_yield(nil, "Unknown", "foo")
98
87
  allow(Lita::Source).to receive(:new).with(
99
88
  user: an_instance_of(Lita::User),
100
89
  room: "room_id"
101
90
  ).and_return(source)
102
- allow(Lita::Message).to receive(:new).with(
103
- robot,
104
- "foo",
105
- source
106
- ).and_return(message)
91
+ allow(Lita::Message).to receive(:new).with(robot, "foo", source).and_return(message)
107
92
  expect(robot).to receive(:receive).with(message)
108
93
  subject.muc_message(muc)
109
94
  end
@@ -112,11 +97,7 @@ describe Lita::Adapters::HipChat::Callback, lita: true do
112
97
  describe "#roster_update" do
113
98
  it "finds/creates a user object for the roster item" do
114
99
  allow(roster).to receive(:add_update_callback).and_yield(nil, roster_item)
115
- expect(Lita::User).to receive(:create).with(
116
- "user_id",
117
- name: "Carl",
118
- mention_name: "@Carl"
119
- )
100
+ expect(Lita::User).to receive(:create).with("user_id", name: "Carl", mention_name: "@Carl")
120
101
  subject.roster_update
121
102
  end
122
103
 
@@ -3,8 +3,15 @@ require "spec_helper"
3
3
  describe Lita::Adapters::HipChat::Connector, lita: true do
4
4
  subject { described_class.new(robot, "user", "secret") }
5
5
 
6
- let(:client) { double("Jabber::Client").as_null_object }
7
- let(:robot) { double("Lita::Robot", name: "Lita" ) }
6
+ let(:client) do
7
+ client = instance_double("Jabber::Client")
8
+ allow(client).to receive(:auth)
9
+ allow(client).to receive(:connect)
10
+ allow(client).to receive(:send)
11
+ client
12
+ end
13
+
14
+ let(:robot) { instance_double("Lita::Robot", name: "Lita" ) }
8
15
 
9
16
  before { allow(subject).to receive(:client).and_return(client) }
10
17
 
@@ -29,22 +36,23 @@ describe Lita::Adapters::HipChat::Connector, lita: true do
29
36
  end
30
37
 
31
38
  describe "#connect" do
32
- let(:presence) { double("Jabber::Presence") }
33
- let(:roster) { double("Jabber::Roster::Helper").as_null_object }
34
- let(:callback) { double("Lita::Adapters::HipChat::Callback") }
39
+ let(:presence) { instance_double("Jabber::Presence") }
40
+ let(:callback) { instance_double("Lita::Adapters::HipChat::Callback") }
41
+ let(:roster) { instance_double("Jabber::Roster::Helper") }
42
+ let(:roster_item) do
43
+ instance_double("Jabber::Roster::RosterItem", attributes: { "mention_name" => "LitaBot"})
44
+ end
35
45
 
36
46
  before do
37
47
  allow(Jabber::Presence).to receive(:new).and_return(presence)
38
- allow(Jabber::Roster::Helper).to receive(:new).with(
39
- client,
40
- false
41
- ).and_return(roster)
42
- allow(Lita::Adapters::HipChat::Callback).to receive(:new).and_return(
43
- callback
44
- )
48
+ allow(Jabber::Roster::Helper).to receive(:new).with(client, false).and_return(roster)
49
+ allow(Lita::Adapters::HipChat::Callback).to receive(:new).and_return(callback)
45
50
  allow(callback).to receive(:private_message)
46
51
  allow(callback).to receive(:roster_update)
47
52
  allow(robot).to receive(:mention_name=)
53
+ allow(roster).to receive(:get_roster)
54
+ allow(roster).to receive(:wait_for_roster)
55
+ allow(roster).to receive(:[]).with(subject.jid).and_return(roster_item)
48
56
  end
49
57
 
50
58
  it "connects to HipChat" do
@@ -78,67 +86,58 @@ describe Lita::Adapters::HipChat::Connector, lita: true do
78
86
  end
79
87
 
80
88
  it "assigns the robot's mention_name with info from the roster" do
81
- allow(roster).to receive(:[]).with(subject.jid).and_return(
82
- double("Jabber::Roster::RosterItem", attributes: {
83
- "mention_name" => "LitaBot"
84
- })
85
- )
86
89
  expect(robot).to receive(:mention_name=).with("LitaBot")
87
90
  subject.connect
88
91
  end
89
92
  end
90
93
 
91
- describe "#join rooms" do
92
- let(:muc_domain) { "conf.hipchat.com" }
93
- let(:rooms) { ["muc_1", "muc_2"] }
94
- let(:muc_1) { double("Jabber::MUC::SimpleMUCClient").as_null_object }
95
- let(:muc_2) { double("Jabber::MUC::SimpleMUCClient").as_null_object }
96
- let(:callback) { double("Lita::Adapters::HipChat::Callback") }
97
- let(:roster) { double("Jabber::Roster::Helper") }
94
+ describe "#join" do
95
+ let(:muc) { instance_double("Jabber::MUC::SimpleMUCClient") }
96
+ let(:callback) { instance_double("Lita::Adapters::HipChat::Callback") }
98
97
 
99
98
  before do
100
- allow(Jabber::MUC::SimpleMUCClient).to receive(:new).with(
101
- client
102
- ).and_return(muc_1, muc_2)
103
- allow(Lita::Adapters::HipChat::Callback).to receive(:new).and_return(
104
- callback
105
- )
99
+ allow(Jabber::MUC::SimpleMUCClient).to receive(:new).with(client).and_return(muc)
100
+ allow(Lita::Adapters::HipChat::Callback).to receive(:new).and_return(callback)
106
101
  allow(callback).to receive(:muc_message)
107
- allow(subject).to receive(:roster).and_return(roster)
102
+ allow(muc).to receive(:join)
108
103
  end
109
104
 
110
- it "creates a SimpleMUCClient for each room" do
111
- subject.join_rooms(muc_domain, rooms)
112
- expect(subject.mucs).to eq(
113
- "muc_1@conf.hipchat.com" => muc_1,
114
- "muc_2@conf.hipchat.com" => muc_2,
115
- )
105
+ it "stores a SimpleMUCClient for the room" do
106
+ subject.join("conf.hipchat.com", "foo")
107
+ expect(subject.mucs["foo@conf.hipchat.com"]).to eq(muc)
116
108
  end
117
109
 
118
- it "registers a message callback for each room" do
119
- expect(Lita::Adapters::HipChat::Callback).to receive(:new).with(
120
- robot,
121
- roster
122
- ).and_return(callback)
123
- expect(callback).to receive(:muc_message).with(muc_1)
124
- expect(callback).to receive(:muc_message).with(muc_2)
125
- subject.join_rooms(muc_domain, rooms)
110
+ it "registers a message callback" do
111
+ expect(callback).to receive(:muc_message).with(muc)
112
+ subject.join("conf.hipchat.com", "foo")
113
+ end
114
+
115
+ it "joins the room" do
116
+ expect(muc).to receive(:join)
117
+ subject.join("conf.hipchat.com", "foo")
126
118
  end
127
119
 
120
+ it "doesn't attempt to join a room it's already in" do
121
+ expect(callback).to receive(:muc_message).with(muc).once
122
+ expect(muc).to receive(:join).once
123
+ 2.times { subject.join("conf.hipchat.com", "foo") }
124
+ end
125
+ end
126
+
127
+ describe "#join rooms" do
128
+ let(:rooms) { %w(foo bar) }
129
+
128
130
  it "joins each room" do
129
- expect(muc_1).to receive(:join)
130
- expect(muc_2).to receive(:join)
131
- subject.join_rooms(muc_domain, rooms)
131
+ rooms.each { |room| expect(subject).to receive(:join).with("conf.hipchat.com", room) }
132
+ subject.join_rooms("conf.hipchat.com", rooms)
132
133
  end
133
134
  end
134
135
 
135
136
  describe "#list_rooms" do
136
- let(:browser) { double("Jabber::MUC::MUCBrowser") }
137
+ let(:browser) { instance_double("Jabber::MUC::MUCBrowser") }
137
138
 
138
139
  before do
139
- allow(Jabber::MUC::MUCBrowser).to receive(:new).with(client).and_return(
140
- browser
141
- )
140
+ allow(Jabber::MUC::MUCBrowser).to receive(:new).with(client).and_return(browser)
142
141
  end
143
142
 
144
143
  it "returns an array of room JIDs for the MUC domain" do
@@ -154,16 +153,12 @@ describe Lita::Adapters::HipChat::Connector, lita: true do
154
153
  end
155
154
 
156
155
  describe "#message_jid" do
157
- let(:message_1) { double("Jabber::Message") }
158
- let(:message_2) { double("Jabber::Message") }
156
+ let(:message_1) { instance_double("Jabber::Message") }
157
+ let(:message_2) { instance_double("Jabber::Message") }
159
158
 
160
159
  it "sends the messages to the user" do
161
- allow(Jabber::Message).to receive(:new).with("jid", "foo").and_return(
162
- message_1
163
- )
164
- allow(Jabber::Message).to receive(:new).with("jid", "bar").and_return(
165
- message_2
166
- )
160
+ allow(Jabber::Message).to receive(:new).with("jid", "foo").and_return(message_1)
161
+ allow(Jabber::Message).to receive(:new).with("jid", "bar").and_return(message_2)
167
162
  expect(message_1).to receive(:type=).with(:chat)
168
163
  expect(message_2).to receive(:type=).with(:chat)
169
164
  expect(client).to receive(:send).with(message_1)
@@ -174,7 +169,7 @@ describe Lita::Adapters::HipChat::Connector, lita: true do
174
169
 
175
170
  describe "#message_muc" do
176
171
  it "sends the messages to the room" do
177
- muc = double("Jabber::MUC::SimpleMUCClient")
172
+ muc = instance_double("Jabber::MUC::SimpleMUCClient")
178
173
  allow(subject).to receive(:mucs).and_return("jid" => muc)
179
174
  expect(muc).to receive(:say).with("foo")
180
175
  expect(muc).to receive(:say).with("bar")
@@ -182,9 +177,24 @@ describe Lita::Adapters::HipChat::Connector, lita: true do
182
177
  end
183
178
  end
184
179
 
180
+ describe "#part" do
181
+ let(:muc) { instance_double("Jabber::MUC::SimpleMUCClient") }
182
+
183
+ it "parts from a room" do
184
+ subject.mucs["#foo@conf.hipchat.com"] = muc
185
+ expect(muc).to receive(:exit)
186
+ subject.part("conf.hipchat.com", "#foo")
187
+ end
188
+
189
+ it "doesn't attempt to part from a room it's not in" do
190
+ expect(muc).not_to receive(:exit)
191
+ subject.part("conf.hipchat.com", "#foo")
192
+ end
193
+ end
194
+
185
195
  describe "#set_topic" do
186
196
  it "sets the room's topic to the supplied message" do
187
- muc = double("Jabber::MUC::SimpleMUCClient")
197
+ muc = instance_double("Jabber::MUC::SimpleMUCClient")
188
198
  allow(subject).to receive(:mucs).and_return("jid" => muc)
189
199
  expect(muc).to receive(:subject=).with("New topic")
190
200
  subject.set_topic("jid", "New topic")
@@ -14,19 +14,33 @@ describe Lita::Adapters::HipChat do
14
14
 
15
15
  subject { described_class.new(robot) }
16
16
 
17
- let(:robot) { double("Lita::Robot") }
18
- let(:connector) { double("Lita::Adapters::HipChat::Connector") }
17
+ let(:robot) { instance_double("Lita::Robot") }
18
+ let(:connector) { instance_double("Lita::Adapters::HipChat::Connector") }
19
19
 
20
20
  it "registers with Lita" do
21
21
  expect(Lita.adapters[:hipchat]).to eql(described_class)
22
22
  end
23
23
 
24
24
  it "requires config.jid and config.password" do
25
- Lita.clear_config
25
+ Lita.config.adapter.jid = Lita.config.adapter.password = nil
26
26
  expect(Lita.logger).to receive(:fatal).with(/jid, password/)
27
27
  expect { subject }.to raise_error(SystemExit)
28
28
  end
29
29
 
30
+ describe "#join" do
31
+ it "joins a room" do
32
+ expect(subject.connector).to receive(:join).with("conf.hipchat.com", "#foo")
33
+ subject.join("#foo")
34
+ end
35
+ end
36
+
37
+ describe "#part" do
38
+ it "parts from a room" do
39
+ expect(subject.connector).to receive(:part).with("conf.hipchat.com", "#foo")
40
+ subject.part("#foo")
41
+ end
42
+ end
43
+
30
44
  describe "#run" do
31
45
  before do
32
46
  allow(subject.connector).to receive(:connect)
@@ -43,33 +57,22 @@ describe Lita::Adapters::HipChat do
43
57
 
44
58
  it "joins rooms with a custom muc_domain" do
45
59
  Lita.config.adapter.muc_domain = "foo.bar.com"
46
- expect(subject.connector).to receive(:join_rooms).with(
47
- "foo.bar.com",
48
- anything
49
- )
60
+ expect(subject.connector).to receive(:join_rooms).with("foo.bar.com", anything)
50
61
  subject.run
51
62
  end
52
63
 
53
64
  it "joins all rooms when config.rooms is :all" do
54
- all_rooms = ["room_1_id", "room_2_id"]
65
+ rooms = ["room_1_id", "room_2_id"]
55
66
  Lita.config.adapter.rooms = :all
56
- allow(subject.connector).to receive(:list_rooms).with(
57
- "conf.hipchat.com"
58
- ).and_return(all_rooms)
59
- expect(subject.connector).to receive(:join_rooms).with(
60
- "conf.hipchat.com",
61
- all_rooms
62
- )
67
+ allow(subject.connector).to receive(:list_rooms).with("conf.hipchat.com").and_return(rooms)
68
+ expect(subject.connector).to receive(:join_rooms).with("conf.hipchat.com", rooms)
63
69
  subject.run
64
70
  end
65
71
 
66
72
  it "joins rooms specified by config.rooms" do
67
73
  custom_rooms = ["my_room_1_id", "my_room_2_id"]
68
74
  Lita.config.adapter.rooms = custom_rooms
69
- expect(subject.connector).to receive(:join_rooms).with(
70
- "conf.hipchat.com",
71
- custom_rooms
72
- )
75
+ expect(subject.connector).to receive(:join_rooms).with("conf.hipchat.com",custom_rooms)
73
76
  subject.run
74
77
  end
75
78
 
@@ -87,28 +90,22 @@ describe Lita::Adapters::HipChat do
87
90
 
88
91
  describe "#send_messages" do
89
92
  it "sends messages to rooms" do
90
- source = double("Lita::Source", room: "room_id", private_message?: false)
91
- expect(subject.connector).to receive(:message_muc).with(
92
- "room_id",
93
- ["Hello!"]
94
- )
93
+ source = instance_double("Lita::Source", room: "room_id", private_message?: false)
94
+ expect(subject.connector).to receive(:message_muc).with("room_id", ["Hello!"])
95
95
  subject.send_messages(source, ["Hello!"])
96
96
  end
97
97
 
98
98
  it "sends private messages to users" do
99
- user = double("Lita::User", id: "user_id")
100
- source = double("Lita::Source", user: user, private_message?: true)
101
- expect(subject.connector).to receive(:message_jid).with(
102
- "user_id",
103
- ["Hello!"]
104
- )
99
+ user = instance_double("Lita::User", id: "user_id")
100
+ source = instance_double("Lita::Source", user: user, private_message?: true)
101
+ expect(subject.connector).to receive(:message_jid).with("user_id", ["Hello!"])
105
102
  subject.send_messages(source, ["Hello!"])
106
103
  end
107
104
  end
108
105
 
109
106
  describe "#set_topic" do
110
107
  it "sets a new topic for a room" do
111
- source = double("Lita::Source", room: "room_id")
108
+ source = instance_double("Lita::Source", room: "room_id")
112
109
  expect(subject.connector).to receive(:set_topic).with("room_id", "Topic")
113
110
  subject.set_topic(source, "Topic")
114
111
  end
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: 1.2.4
4
+ version: 1.3.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: 2014-02-17 00:00:00.000000000 Z
11
+ date: 2014-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '0.5'
33
+ version: 0.5.6
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '0.5'
40
+ version: 0.5.6
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '2.14'
75
+ version: 3.0.0.beta2
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '2.14'
82
+ version: 3.0.0.beta2
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: simplecov
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -125,7 +125,6 @@ files:
125
125
  - lib/lita/adapters/hipchat.rb
126
126
  - lib/lita/adapters/hipchat/callback.rb
127
127
  - lib/lita/adapters/hipchat/connector.rb
128
- - lib/lita/encoding_patches.rb
129
128
  - lita-hipchat.gemspec
130
129
  - spec/lita/adapters/hipchat/callback_spec.rb
131
130
  - spec/lita/adapters/hipchat/connector_spec.rb
@@ -1,27 +0,0 @@
1
- # xmpp4r and REXML are bad and should feel bad.
2
- # https://github.com/ln/xmpp4r/issues/3#issuecomment-1739952
3
- require 'socket'
4
- class TCPSocket
5
- def external_encoding
6
- Encoding::BINARY
7
- end
8
- end
9
-
10
- require 'rexml/source'
11
- class REXML::IOSource
12
- alias_method :encoding_assign, :encoding=
13
- def encoding=(value)
14
- encoding_assign(value) if value
15
- end
16
- end
17
-
18
- begin
19
- # OpenSSL is optional and can be missing
20
- require 'openssl'
21
- class OpenSSL::SSL::SSLSocket
22
- def external_encoding
23
- Encoding::BINARY
24
- end
25
- end
26
- rescue
27
- end