hipbot 0.1.0 → 0.2.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.
- data/.rspec +2 -0
- data/.travis.yml +1 -0
- data/Gemfile +2 -1
- data/Gemfile.lock +46 -25
- data/Guardfile +5 -0
- data/README.md +85 -17
- data/hipbot.gemspec +6 -5
- data/lib/hipbot.rb +4 -1
- data/lib/hipbot/adapters/hipchat/connection.rb +71 -66
- data/lib/hipbot/adapters/hipchat/hipchat.rb +1 -10
- data/lib/hipbot/adapters/telnet/telnet.rb +1 -3
- data/lib/hipbot/bot.rb +51 -34
- data/lib/hipbot/collection.rb +2 -4
- data/lib/hipbot/configuration.rb +2 -4
- data/lib/hipbot/helpers.rb +40 -0
- data/lib/hipbot/logger.rb +15 -0
- data/lib/hipbot/message.rb +1 -1
- data/lib/hipbot/patches/hipchat_client.rb +1 -1
- data/lib/hipbot/plugin.rb +11 -0
- data/lib/hipbot/reactable.rb +60 -0
- data/lib/hipbot/reaction.rb +6 -1
- data/lib/hipbot/response.rb +9 -8
- data/lib/hipbot/room.rb +3 -3
- data/lib/hipbot/user.rb +1 -1
- data/lib/hipbot/version.rb +1 -1
- data/spec/integration/hipbot_spec.rb +40 -1
- data/spec/spec_helper.rb +2 -0
- data/spec/unit/hipbot_spec.rb +54 -3
- metadata +35 -14
- data/lib/hipbot/http_response.rb +0 -15
data/spec/spec_helper.rb
CHANGED
data/spec/unit/hipbot_spec.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Hipbot::Bot do
|
3
|
+
describe "a class that inherits", Hipbot::Bot do
|
4
|
+
let(:described_class) { Class.new(Hipbot::Bot) }
|
5
|
+
subject { described_class.instance }
|
6
|
+
|
4
7
|
context "#on" do
|
5
8
|
let(:sender) { stub_everything(name: 'Tom Smith') }
|
6
9
|
let(:room) { stub_everything }
|
@@ -30,12 +33,11 @@ describe Hipbot::Bot do
|
|
30
33
|
end
|
31
34
|
|
32
35
|
it "should say when does not understand" do
|
33
|
-
|
36
|
+
described_class.default do |message|
|
34
37
|
reply("I don't understand \"#{message}\"")
|
35
38
|
end
|
36
39
|
subject.expects(:send_to_room).with(room, 'I don\'t understand "hello robot!"')
|
37
40
|
subject.react(sender, room, '@robot hello robot!')
|
38
|
-
Hipbot::Bot.class_variable_set :@@default_reaction, nil
|
39
41
|
end
|
40
42
|
|
41
43
|
it "should choose first option when multiple options match" do
|
@@ -194,6 +196,55 @@ describe Hipbot::Bot do
|
|
194
196
|
subject.react(user, room, '@robot do you know @dave? @dave is @rachel father')
|
195
197
|
end
|
196
198
|
end
|
199
|
+
|
200
|
+
context "plugins" do
|
201
|
+
let(:plugin) {
|
202
|
+
Class.new(Hipbot::Plugin) do
|
203
|
+
on /plugin respond/ do
|
204
|
+
reply("plugin ack")
|
205
|
+
end
|
206
|
+
|
207
|
+
on /plugin method/ do
|
208
|
+
reply(plugin.some_method)
|
209
|
+
end
|
210
|
+
|
211
|
+
default do
|
212
|
+
reply("plugin default")
|
213
|
+
end
|
214
|
+
|
215
|
+
def some_method
|
216
|
+
"some method"
|
217
|
+
end
|
218
|
+
end
|
219
|
+
}
|
220
|
+
|
221
|
+
before do
|
222
|
+
subject.configuration.plugins = [ plugin ]
|
223
|
+
end
|
224
|
+
|
225
|
+
it "should respond to reaction defined in plugin" do
|
226
|
+
subject.expects(:send_to_room).with(room, 'plugin ack')
|
227
|
+
subject.react(sender, room, '@robot plugin respond')
|
228
|
+
end
|
229
|
+
|
230
|
+
it "should respond to default reaction defined in plugin" do
|
231
|
+
subject.expects(:send_to_room).with(room, 'plugin default')
|
232
|
+
subject.react(sender, room, '@robot blahblah')
|
233
|
+
end
|
234
|
+
|
235
|
+
it "should respond to default defined in bot even if plugins define defaults" do
|
236
|
+
described_class.default do
|
237
|
+
reply("bot default")
|
238
|
+
end
|
239
|
+
subject.expects(:send_to_room).with(room, 'bot default')
|
240
|
+
subject.react(sender, room, '@robot blahblah')
|
241
|
+
end
|
242
|
+
|
243
|
+
it "should have access to #plugin inside reaction" do
|
244
|
+
subject.expects(:send_to_room).with(room, 'some method')
|
245
|
+
subject.react(sender, room, '@robot plugin method')
|
246
|
+
end
|
247
|
+
end
|
197
248
|
end
|
198
249
|
|
199
250
|
describe "configurable options" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hipbot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-04-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: daemons
|
@@ -28,13 +28,13 @@ dependencies:
|
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 1.1.8
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
31
|
+
name: activesupport
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
35
35
|
- - ~>
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: 3.
|
37
|
+
version: 3.2.12
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -42,7 +42,7 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 3.
|
45
|
+
version: 3.2.12
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: i18n
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
requirements:
|
67
67
|
- - ~>
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 0.
|
69
|
+
version: 1.0.3
|
70
70
|
type: :runtime
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -74,7 +74,7 @@ dependencies:
|
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: 0.
|
77
|
+
version: 1.0.3
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
79
|
name: em-http-request
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,7 +82,7 @@ dependencies:
|
|
82
82
|
requirements:
|
83
83
|
- - ~>
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version: 0.3
|
85
|
+
version: 1.0.3
|
86
86
|
type: :runtime
|
87
87
|
prerelease: false
|
88
88
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -90,7 +90,7 @@ dependencies:
|
|
90
90
|
requirements:
|
91
91
|
- - ~>
|
92
92
|
- !ruby/object:Gem::Version
|
93
|
-
version: 0.3
|
93
|
+
version: 1.0.3
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
95
|
name: xmpp4r
|
96
96
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,7 +114,7 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - ~>
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 2.
|
117
|
+
version: 2.13.0
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -122,7 +122,23 @@ dependencies:
|
|
122
122
|
requirements:
|
123
123
|
- - ~>
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version: 2.
|
125
|
+
version: 2.13.0
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: guard-rspec
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ~>
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 2.5.1
|
134
|
+
type: :development
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ~>
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: 2.5.1
|
126
142
|
- !ruby/object:Gem::Dependency
|
127
143
|
name: mocha
|
128
144
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,7 +146,7 @@ dependencies:
|
|
130
146
|
requirements:
|
131
147
|
- - ~>
|
132
148
|
- !ruby/object:Gem::Version
|
133
|
-
version: 0.
|
149
|
+
version: 0.13.3
|
134
150
|
type: :development
|
135
151
|
prerelease: false
|
136
152
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -138,7 +154,7 @@ dependencies:
|
|
138
154
|
requirements:
|
139
155
|
- - ~>
|
140
156
|
- !ruby/object:Gem::Version
|
141
|
-
version: 0.
|
157
|
+
version: 0.13.3
|
142
158
|
description: Hipbot is a bot for HipChat, written in ruby & eventmachine.
|
143
159
|
email:
|
144
160
|
- pewniak747@gmail.com
|
@@ -148,9 +164,11 @@ extensions: []
|
|
148
164
|
extra_rdoc_files: []
|
149
165
|
files:
|
150
166
|
- .gitignore
|
167
|
+
- .rspec
|
151
168
|
- .travis.yml
|
152
169
|
- Gemfile
|
153
170
|
- Gemfile.lock
|
171
|
+
- Guardfile
|
154
172
|
- LICENSE
|
155
173
|
- README.md
|
156
174
|
- Rakefile
|
@@ -166,10 +184,13 @@ files:
|
|
166
184
|
- lib/hipbot/bot.rb
|
167
185
|
- lib/hipbot/collection.rb
|
168
186
|
- lib/hipbot/configuration.rb
|
169
|
-
- lib/hipbot/
|
187
|
+
- lib/hipbot/helpers.rb
|
188
|
+
- lib/hipbot/logger.rb
|
170
189
|
- lib/hipbot/message.rb
|
171
190
|
- lib/hipbot/patches/encoding.rb
|
172
191
|
- lib/hipbot/patches/hipchat_client.rb
|
192
|
+
- lib/hipbot/plugin.rb
|
193
|
+
- lib/hipbot/reactable.rb
|
173
194
|
- lib/hipbot/reaction.rb
|
174
195
|
- lib/hipbot/response.rb
|
175
196
|
- lib/hipbot/room.rb
|
data/lib/hipbot/http_response.rb
DELETED