firering 0.1.1 → 1.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.
- data/README.rdoc +26 -26
- data/Rakefile +1 -1
- data/bin/campf-notify +27 -33
- data/examples/authenticate.rb +10 -8
- data/examples/events.rb +17 -8
- data/examples/recent_messages.rb +37 -25
- data/examples/rooms.rb +15 -10
- data/examples/update_room.rb +14 -11
- data/firering.gemspec +9 -6
- data/lib/firering/connection.rb +125 -0
- data/lib/firering/data/message.rb +43 -23
- data/lib/firering/data/room.rb +115 -8
- data/lib/firering/data/upload.rb +5 -4
- data/lib/firering/data/user.rb +13 -11
- data/lib/firering/data.rb +26 -19
- data/lib/firering/requests.rb +31 -167
- data/lib/firering.rb +10 -11
- data/log/.gitignore +1 -0
- data/spec/firering/connection_spec.rb +25 -0
- data/spec/firering/data/message_spec.rb +61 -0
- data/spec/firering/data/room_spec.rb +206 -0
- data/spec/firering/data/user_spec.rb +21 -0
- data/spec/firering/data_spec.rb +4 -9
- data/spec/fixtures/load_server.rb +48 -21
- data/spec/spec_helper.rb +12 -0
- data/spec/support/helpers.rb +11 -0
- metadata +17 -11
- data/lib/firering/http.rb +0 -53
- data/lib/firering/streaming.rb +0 -51
- data/spec/firering/requests_spec.rb +0 -203
- data/spec/fixtures/server.rb +0 -40
@@ -1,203 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'date'
|
3
|
-
|
4
|
-
Firering::Streaming.protocol = "http"
|
5
|
-
Firering::Streaming.host = "localhost:4567"
|
6
|
-
|
7
|
-
Firering::HTTP.host = "localhost:4567"
|
8
|
-
|
9
|
-
describe "firering" do
|
10
|
-
|
11
|
-
it "authenticates a user" do
|
12
|
-
EM.run {
|
13
|
-
Firering.authenticate(nil, "user", "password") do |user|
|
14
|
-
user.token.should == "token"
|
15
|
-
EM.stop
|
16
|
-
end
|
17
|
-
}
|
18
|
-
end
|
19
|
-
|
20
|
-
it "gets a user info" do
|
21
|
-
EM.run {
|
22
|
-
Firering.user(415731) do |user|
|
23
|
-
user.type.should == "Member"
|
24
|
-
user.created_at.should == Date.parse("2009/01/27 19:54:36 +0000")
|
25
|
-
user.email_address.should == "eoga@mail.com"
|
26
|
-
user.should_not be_admin
|
27
|
-
user.id.should == 415731
|
28
|
-
user.name.should == "Emmanuel"
|
29
|
-
EM.stop
|
30
|
-
end
|
31
|
-
}
|
32
|
-
end
|
33
|
-
|
34
|
-
it "gets a single room" do
|
35
|
-
EM.run {
|
36
|
-
Firering.room(304355) do |room|
|
37
|
-
room.name.should == "test2"
|
38
|
-
room.created_at.should == Date.parse("2010/05/29 21:38:02 +0000")
|
39
|
-
room.updated_at.should == Date.parse("2010/05/29 21:38:02 +0000")
|
40
|
-
room.topic.should == "this and the test room should be deleted by a campfire admin."
|
41
|
-
room.should_not be_full
|
42
|
-
room.id.should == 304355
|
43
|
-
room.should_not be_open_to_guests
|
44
|
-
room.membership_limit.should == 12
|
45
|
-
room.should_not be_locked
|
46
|
-
|
47
|
-
room.users.each do |u|
|
48
|
-
u.should be_an_instance_of(Firering::User)
|
49
|
-
end
|
50
|
-
|
51
|
-
EM.stop
|
52
|
-
end
|
53
|
-
}
|
54
|
-
end
|
55
|
-
|
56
|
-
it "gets multiple rooms without performing multiple requests per room" do
|
57
|
-
EM.run {
|
58
|
-
Firering.rooms(false) do |rooms|
|
59
|
-
rooms.each do |room|
|
60
|
-
room.should be_an_instance_of(Firering::Room)
|
61
|
-
room.users.should be_an_instance_of(Array)
|
62
|
-
end
|
63
|
-
EM.stop
|
64
|
-
end
|
65
|
-
}
|
66
|
-
end
|
67
|
-
|
68
|
-
it "gets multiple rooms performing multiple requests per room" do
|
69
|
-
EM.run {
|
70
|
-
Firering.rooms do |rooms|
|
71
|
-
rooms.each do |room|
|
72
|
-
room.should be_an_instance_of(Firering::Room)
|
73
|
-
room.users.should be_an_instance_of(Array)
|
74
|
-
end
|
75
|
-
|
76
|
-
EM.stop
|
77
|
-
end
|
78
|
-
}
|
79
|
-
end
|
80
|
-
|
81
|
-
it "updates a room and then calls the block" do
|
82
|
-
EM.run {
|
83
|
-
Firering.update_room(304355, :topic => "some topic") do
|
84
|
-
EM.stop
|
85
|
-
end
|
86
|
-
}
|
87
|
-
end
|
88
|
-
|
89
|
-
it "gets a collection of recent messages" do
|
90
|
-
EM.run {
|
91
|
-
Firering.room_recent_messages(304355) do |messages|
|
92
|
-
|
93
|
-
messages.each do |m|
|
94
|
-
m.should be_an_instance_of(Firering::Message)
|
95
|
-
end
|
96
|
-
|
97
|
-
message = messages.first
|
98
|
-
message.should be_timestamp
|
99
|
-
message.room_id.should == 304355
|
100
|
-
message.created_at.should == Date.parse("2010/05/29 22:05:00 +0000")
|
101
|
-
message.body.should be_nil
|
102
|
-
message.id.should == 224587718
|
103
|
-
message.user_id.should be_nil
|
104
|
-
|
105
|
-
EM.stop
|
106
|
-
end
|
107
|
-
}
|
108
|
-
end
|
109
|
-
|
110
|
-
it "returns a collection of messages matching certain pattern" do
|
111
|
-
EM.run {
|
112
|
-
Firering.search_messages("harmless") do |messages|
|
113
|
-
|
114
|
-
messages.length.should == 3
|
115
|
-
|
116
|
-
messages.each do |m|
|
117
|
-
m.should be_an_instance_of(Firering::Message)
|
118
|
-
end
|
119
|
-
|
120
|
-
message = messages.last
|
121
|
-
message.should be_text
|
122
|
-
message.room_id.should == 177718
|
123
|
-
message.created_at.should == Date.parse("2009/06/02 21:20:32 +0000")
|
124
|
-
message.body.should == "q: should i add :case_sensitive =\u003E false to the validation of title name? Looks harmless but who knows..."
|
125
|
-
message.id.should == 134405854
|
126
|
-
message.user_id.should == 415731
|
127
|
-
|
128
|
-
EM.stop
|
129
|
-
end
|
130
|
-
}
|
131
|
-
end
|
132
|
-
|
133
|
-
it "returns the messages of today for a given room" do
|
134
|
-
EM.run {
|
135
|
-
Firering.today_messages(304355) do |messages|
|
136
|
-
|
137
|
-
messages.length.should == 33
|
138
|
-
|
139
|
-
messages.each do |m|
|
140
|
-
m.should be_an_instance_of(Firering::Message)
|
141
|
-
end
|
142
|
-
|
143
|
-
message = messages.last
|
144
|
-
|
145
|
-
message.should be_paste
|
146
|
-
message.room_id.should == 304355
|
147
|
-
message.created_at.should == Date.parse("2010/05/29 22:41:34 +0000")
|
148
|
-
message.body.should == "paste\ntext"
|
149
|
-
message.id.should == 224590114
|
150
|
-
message.user_id.should == 415731
|
151
|
-
|
152
|
-
EM.stop
|
153
|
-
end
|
154
|
-
}
|
155
|
-
end
|
156
|
-
|
157
|
-
it "joins a room an call a block" do
|
158
|
-
EM.run { Firering.room_join(304355) { EM.stop } }
|
159
|
-
end
|
160
|
-
|
161
|
-
it "leaves a room an call a block" do
|
162
|
-
EM.run { Firering.room_leave(304355) { EM.stop } }
|
163
|
-
end
|
164
|
-
|
165
|
-
it "unlocks a room an call a block" do
|
166
|
-
EM.run { Firering.room_unlock(304355) { EM.stop } }
|
167
|
-
end
|
168
|
-
|
169
|
-
it "is able to speak a text message" do
|
170
|
-
EM.run { Firering.text(304355, "some text") { EM.stop } }
|
171
|
-
end
|
172
|
-
|
173
|
-
it "is able to speak a paste message" do
|
174
|
-
EM.run { Firering.paste(304355, "some\ntext") { EM.stop } }
|
175
|
-
end
|
176
|
-
|
177
|
-
it "is able to speak a tweet" do
|
178
|
-
EM.run { Firering.tweet(304355, "http://twitter.com/message") { EM.stop } }
|
179
|
-
end
|
180
|
-
|
181
|
-
it "is able to play a rimshot" do
|
182
|
-
EM.run { Firering.rimshot(304355) { EM.stop } }
|
183
|
-
end
|
184
|
-
|
185
|
-
it "is able to play crickets" do
|
186
|
-
EM.run { Firering.crickets(304355) { EM.stop } }
|
187
|
-
end
|
188
|
-
|
189
|
-
it "is able to play a trombone" do
|
190
|
-
EM.run { Firering.trombone(304355) { EM.stop } }
|
191
|
-
end
|
192
|
-
|
193
|
-
it "is able to highlight / de-highlight a message" do
|
194
|
-
EM.run {
|
195
|
-
Firering.highlight_message(224590113) {
|
196
|
-
Firering.highlight_message(224590113, false) {
|
197
|
-
EM.stop
|
198
|
-
}
|
199
|
-
}
|
200
|
-
}
|
201
|
-
end
|
202
|
-
|
203
|
-
end
|
data/spec/fixtures/server.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
require 'rack'
|
2
|
-
require 'thin'
|
3
|
-
require 'sinatra'
|
4
|
-
|
5
|
-
use Rack::ContentLength
|
6
|
-
|
7
|
-
def setup(method, path)
|
8
|
-
fixture = ([method.to_s] + path.split("/")).join("_").squeeze("_").gsub("*", "ID")
|
9
|
-
|
10
|
-
send(method, path) do
|
11
|
-
File.read(File.expand_path(File.join(File.dirname(__FILE__), "json", fixture)))
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
setup :get, "/rooms.json"
|
16
|
-
|
17
|
-
setup :get, "/room/*/recent.json"
|
18
|
-
setup :get, "/room/*/uploads.json"
|
19
|
-
setup :get, "/room/*/transcript.json"
|
20
|
-
setup :get, "/room/*/transcript/2010/05/28.json"
|
21
|
-
setup :post, "/room/*/speak.json"
|
22
|
-
setup :post, "/room/*/uploads.json"
|
23
|
-
setup :post, "/room/*/lock.json"
|
24
|
-
setup :post, "/room/*/join.json"
|
25
|
-
setup :post, "/room/*/leave.json"
|
26
|
-
setup :post, "/room/*/unlock.json"
|
27
|
-
|
28
|
-
setup :delete, "/messages/*/star.json"
|
29
|
-
setup :post, "/messages/*/star.json"
|
30
|
-
|
31
|
-
setup :get, "/users/me.json"
|
32
|
-
setup :get, "/users/*.json"
|
33
|
-
|
34
|
-
setup :get, "/search/harmless.json"
|
35
|
-
|
36
|
-
setup :post, "/room/*/join.json"
|
37
|
-
setup :get, "/room/*/live.json"
|
38
|
-
|
39
|
-
setup :get, "/room/*.json"
|
40
|
-
setup :put, "/room/*.json"
|