hipchat 0.6.1 → 0.7.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/README.textile +8 -0
- data/VERSION +1 -1
- data/hipchat.gemspec +2 -2
- data/lib/hipchat.rb +35 -0
- data/spec/hipchat_spec.rb +50 -0
- metadata +4 -4
data/README.textile
CHANGED
|
@@ -20,6 +20,14 @@ client['my room'].send('username', 'Build failed!', :color => 'red')
|
|
|
20
20
|
# Have your message rendered as text in HipChat (see https://www.hipchat.com/docs/api/method/rooms/message)
|
|
21
21
|
client['my room'].send('username', '@coworker Build faild!', :message_format => 'text')
|
|
22
22
|
|
|
23
|
+
# Update the topic of a room in HipChat (see https://www.hipchat.com/docs/api/method/rooms/topic)
|
|
24
|
+
client['my room'].topic('Free Ice Cream in the kitchen')
|
|
25
|
+
|
|
26
|
+
# Change the from field for a topic update (default "API")
|
|
27
|
+
client['my room'].topic('Weekely sales: $10,000', :from => 'Sales Team')
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
23
31
|
h2. Capistrano
|
|
24
32
|
|
|
25
33
|
bc.. require 'hipchat/capistrano'
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.7.0
|
data/hipchat.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = %q{hipchat}
|
|
8
|
-
s.version = "0.
|
|
8
|
+
s.version = "0.7.0"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["HipChat/Atlassian"]
|
|
12
|
-
s.date = %q{2012-11-
|
|
12
|
+
s.date = %q{2012-11-10}
|
|
13
13
|
s.description = %q{Ruby library to interact with HipChat}
|
|
14
14
|
s.email = %q{support@hipchat.com}
|
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/hipchat.rb
CHANGED
|
@@ -90,5 +90,40 @@ module HipChat
|
|
|
90
90
|
raise UnknownResponseCode, "Unexpected #{response.code} for room `#{room_id}'"
|
|
91
91
|
end
|
|
92
92
|
end
|
|
93
|
+
|
|
94
|
+
# Change this room's topic
|
|
95
|
+
#
|
|
96
|
+
# Usage:
|
|
97
|
+
#
|
|
98
|
+
# # Default
|
|
99
|
+
# topic 'my awesome topic'
|
|
100
|
+
#
|
|
101
|
+
# Options:
|
|
102
|
+
#
|
|
103
|
+
# +from+:: the name of the person changing the topic
|
|
104
|
+
# (default "API")
|
|
105
|
+
def topic(new_topic, options = {})
|
|
106
|
+
|
|
107
|
+
options = { :from => 'API' }.merge options
|
|
108
|
+
|
|
109
|
+
response = self.class.post('/topic',
|
|
110
|
+
:query => { :auth_token => @token },
|
|
111
|
+
:body => {
|
|
112
|
+
:room_id => room_id,
|
|
113
|
+
:from => options[:from],
|
|
114
|
+
:topic => new_topic
|
|
115
|
+
}
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
case response.code
|
|
119
|
+
when 200; true
|
|
120
|
+
when 404
|
|
121
|
+
raise UnknownRoom, "Unknown room: `#{room_id}'"
|
|
122
|
+
when 401
|
|
123
|
+
raise Unauthorized, "Access denied to room `#{room_id}'"
|
|
124
|
+
else
|
|
125
|
+
raise UnknownResponseCode, "Unexpected #{response.code} for room `#{room_id}'"
|
|
126
|
+
end
|
|
127
|
+
end
|
|
93
128
|
end
|
|
94
129
|
end
|
data/spec/hipchat_spec.rb
CHANGED
|
@@ -20,6 +20,56 @@ describe HipChat do
|
|
|
20
20
|
}
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
+
def mock_successful_topic_change(topic, options={})
|
|
24
|
+
options = {:from => 'API'}.merge(options)
|
|
25
|
+
mock(HipChat::Room).post("/topic",
|
|
26
|
+
:query => {:auth_token => "blah"},
|
|
27
|
+
:body => {:room_id => "Hipchat",
|
|
28
|
+
:from => options[:from],
|
|
29
|
+
:topic => "Nice topic" } ) {
|
|
30
|
+
OpenStruct.new(:code => 200)
|
|
31
|
+
}
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe "#topic" do
|
|
35
|
+
it "is successful without custom options" do
|
|
36
|
+
mock_successful_topic_change("Nice topic")
|
|
37
|
+
|
|
38
|
+
room.topic("Nice topic").should be_true
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it "is successful with a custom from" do
|
|
42
|
+
mock_successful_topic_change("Nice topic", :from => "Me")
|
|
43
|
+
|
|
44
|
+
room.topic("Nice topic", :from => "Me").should be_true
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it "fails when the room doesn't exist" do
|
|
48
|
+
mock(HipChat::Room).post(anything, anything) {
|
|
49
|
+
OpenStruct.new(:code => 404)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
lambda { room.topic "" }.should raise_error(HipChat::UnknownRoom)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it "fails when we're not allowed to do so" do
|
|
56
|
+
mock(HipChat::Room).post(anything, anything) {
|
|
57
|
+
OpenStruct.new(:code => 401)
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
lambda { room.topic "" }.should raise_error(HipChat::Unauthorized)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
it "fails if we get an unknown response code" do
|
|
64
|
+
mock(HipChat::Room).post(anything, anything) {
|
|
65
|
+
OpenStruct.new(:code => 403)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
lambda { room.topic "" }.
|
|
69
|
+
should raise_error(HipChat::UnknownResponseCode)
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
23
73
|
describe "sends a message to a room" do
|
|
24
74
|
it "successfully without custom options" do
|
|
25
75
|
mock_successful_send 'Dude', 'Hello world'
|
metadata
CHANGED
|
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
|
4
4
|
prerelease: false
|
|
5
5
|
segments:
|
|
6
6
|
- 0
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
version: 0.
|
|
7
|
+
- 7
|
|
8
|
+
- 0
|
|
9
|
+
version: 0.7.0
|
|
10
10
|
platform: ruby
|
|
11
11
|
authors:
|
|
12
12
|
- HipChat/Atlassian
|
|
@@ -14,7 +14,7 @@ autorequire:
|
|
|
14
14
|
bindir: bin
|
|
15
15
|
cert_chain: []
|
|
16
16
|
|
|
17
|
-
date: 2012-11-
|
|
17
|
+
date: 2012-11-10 00:00:00 -08:00
|
|
18
18
|
default_executable:
|
|
19
19
|
dependencies:
|
|
20
20
|
- !ruby/object:Gem::Dependency
|