tinder 1.9.2 → 1.9.3
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 +7 -0
- data/README.markdown +2 -0
- data/lib/tinder/connection.rb +10 -3
- data/lib/tinder/room.rb +54 -49
- data/lib/tinder/version.rb +1 -1
- data/spec/tinder/campfire_spec.rb +1 -1
- data/spec/tinder/connection_spec.rb +27 -0
- data/spec/tinder/room_spec.rb +121 -21
- data/tinder.gemspec +5 -5
- metadata +27 -46
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f2d55e9349a7780126ad86990aa8620357ea6002
|
4
|
+
data.tar.gz: eb2f2fe2b5990203b2a5f4f55e5dfea2a48dc9e7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c914892452c4af7dc20c266d6042356ab8ba9e3a4d681695e4d74c998a66f6370eaa7936be12dc68a1d987ce413eae6d0c070ff4c3e0f225cfa14cc4c359af26
|
7
|
+
data.tar.gz: ef2db0dae19f724d07c668e4f49bc4f3ace90db8019d6ee2c3298c181988640a217447d55caf2d0c205660173072bfecd2870981ecc1d27f0e20a25e9d478520
|
data/README.markdown
CHANGED
@@ -7,6 +7,8 @@ Tinder is a library for interfacing with Campfire, the chat application from 37S
|
|
7
7
|
campfire = Tinder::Campfire.new 'mysubdomain', :token => '546884b3d8fee4d80665g561caf7h9f3ea7b999e'
|
8
8
|
# or you can still use username/password and Tinder will look up your token
|
9
9
|
# campfire = Tinder::Campfire.new 'mysubdomain', :username => 'user', :password => 'pass'
|
10
|
+
# or if you have an OAuth token then you can use that to connect
|
11
|
+
# campfire = Tinder::Campfire.new 'mysubdomain', :oauth_token => '546884b3d8fee4d80665g561caf7h9f3ea7b999e'
|
10
12
|
|
11
13
|
room = campfire.rooms.first
|
12
14
|
room.rename 'New Room Names'
|
data/lib/tinder/connection.rb
CHANGED
@@ -25,6 +25,7 @@ module Tinder
|
|
25
25
|
|
26
26
|
def self.raw_connection
|
27
27
|
@raw_connection ||= Faraday.new do |builder|
|
28
|
+
builder.use Faraday::Request::Multipart
|
28
29
|
builder.use FaradayMiddleware::Mashify
|
29
30
|
builder.use FaradayMiddleware::ParseJson
|
30
31
|
builder.use Faraday::Response::RemoveWhitespace
|
@@ -40,9 +41,15 @@ module Tinder
|
|
40
41
|
@options.merge!(options)
|
41
42
|
@uri = URI.parse("#{@options[:ssl] ? 'https' : 'http' }://#{subdomain}.#{HOST}")
|
42
43
|
@token = options[:token]
|
43
|
-
|
44
|
-
|
45
|
-
|
44
|
+
@oauth_token = options[:oauth_token]
|
45
|
+
|
46
|
+
if @oauth_token
|
47
|
+
connection.headers["Authorization"] = "Bearer #{@oauth_token}"
|
48
|
+
raw_connection.headers["Authorization"] = "Bearer #{@oauth_token}"
|
49
|
+
else
|
50
|
+
connection.basic_auth token, 'X'
|
51
|
+
raw_connection.basic_auth token, 'X'
|
52
|
+
end
|
46
53
|
end
|
47
54
|
|
48
55
|
def basic_auth_settings
|
data/lib/tinder/room.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
# encoding: UTF-8
|
2
|
+
require 'time'
|
3
|
+
|
2
4
|
module Tinder
|
3
5
|
# A campfire room
|
4
6
|
class Room
|
@@ -92,25 +94,37 @@ module Tinder
|
|
92
94
|
|
93
95
|
# Get the list of users currently chatting for this room
|
94
96
|
def users
|
97
|
+
@users ||= current_users
|
98
|
+
end
|
99
|
+
|
100
|
+
def current_users
|
95
101
|
reload!
|
96
|
-
@
|
102
|
+
@current_users
|
97
103
|
end
|
98
104
|
|
99
|
-
# return the user with the given id; if it isn't in our room cache,
|
105
|
+
# return the user with the given id; if it isn't in our room cache,
|
106
|
+
# do a request to get it
|
100
107
|
def user(id)
|
101
108
|
if id
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
user = user_data && user_data[:user]
|
106
|
-
end
|
107
|
-
user[:created_at] = Time.parse(user[:created_at])
|
109
|
+
cached_user = users.detect {|u| u[:id] == id }
|
110
|
+
user = cached_user || fetch_user(id)
|
111
|
+
self.users << user
|
108
112
|
user
|
109
113
|
end
|
110
114
|
end
|
111
115
|
|
112
|
-
#
|
113
|
-
|
116
|
+
# Perform a request for the user with the given ID
|
117
|
+
def fetch_user(id)
|
118
|
+
user_data = connection.get("/users/#{id}.json")
|
119
|
+
user = user_data && user_data[:user]
|
120
|
+
user[:created_at] = Time.parse(user[:created_at])
|
121
|
+
user
|
122
|
+
end
|
123
|
+
|
124
|
+
# Modifies a hash representation of a Campfire message. Expands +:user_id+
|
125
|
+
# to a full hash at +:user+, generates Timestamp from +:created_at+.
|
126
|
+
#
|
127
|
+
# Full returned hash:
|
114
128
|
# * +:body+: the body of the message
|
115
129
|
# * +:user+: Campfire user, which is itself a hash, of:
|
116
130
|
# * +:id+: User id
|
@@ -123,6 +137,14 @@ module Tinder
|
|
123
137
|
# * +:type+: Campfire message type
|
124
138
|
# * +:room_id+: Campfire room id
|
125
139
|
# * +:created_at+: Message creation timestamp
|
140
|
+
def parse_message(message)
|
141
|
+
message[:user] = user(message.delete(:user_id))
|
142
|
+
message[:created_at] = Time.parse(message[:created_at])
|
143
|
+
message
|
144
|
+
end
|
145
|
+
|
146
|
+
# Listen for new messages in the room, parsing them with #parse_message
|
147
|
+
# and then yielding them to the provided block as they arrive.
|
126
148
|
#
|
127
149
|
# room.listen do |m|
|
128
150
|
# room.speak "Go away!" if m[:body] =~ /Java/i
|
@@ -137,7 +159,6 @@ module Tinder
|
|
137
159
|
require 'hashie'
|
138
160
|
require 'multi_json'
|
139
161
|
require 'twitter/json_stream'
|
140
|
-
require 'time'
|
141
162
|
|
142
163
|
auth = connection.basic_auth_settings
|
143
164
|
options = {
|
@@ -154,8 +175,7 @@ module Tinder
|
|
154
175
|
Tinder.logger.info "Listening to #{@name}…"
|
155
176
|
@stream.each_item do |message|
|
156
177
|
message = Hashie::Mash.new(MultiJson.decode(message))
|
157
|
-
message
|
158
|
-
message[:created_at] = Time.parse(message[:created_at])
|
178
|
+
message = parse_message(message)
|
159
179
|
yield(message)
|
160
180
|
end
|
161
181
|
|
@@ -184,35 +204,21 @@ module Tinder
|
|
184
204
|
@stream = nil
|
185
205
|
end
|
186
206
|
|
187
|
-
# Get the transcript for the given date (
|
188
|
-
#
|
189
|
-
# room.transcript(room.available_transcripts.first)
|
190
|
-
# #=> [{:message=>"foobar!",
|
191
|
-
# :user_id=>"99999",
|
192
|
-
# :person=>"Brandon",
|
193
|
-
# :id=>"18659245",
|
194
|
-
# :timestamp=>=>Tue May 05 07:15:00 -0700 2009}]
|
207
|
+
# Get the transcript for the given date (returns an array of messages parsed
|
208
|
+
# via #parse_message, see #parse_message for format of returned message)
|
195
209
|
#
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
:message => room['body'],
|
204
|
-
:timestamp => Time.parse(room['created_at']) }
|
210
|
+
def transcript(transcript_date = Date.today)
|
211
|
+
unless transcript_date.is_a?(Date)
|
212
|
+
transcript_date = transcript_date.to_date
|
213
|
+
end
|
214
|
+
url = "/room/#{@id}/transcript/#{transcript_date.strftime('%Y/%m/%d')}.json"
|
215
|
+
connection.get(url)['messages'].map do |message|
|
216
|
+
parse_message(message)
|
205
217
|
end
|
206
218
|
end
|
207
219
|
|
208
|
-
# Search transcripts for
|
209
|
-
#
|
210
|
-
# room.search("bobloblaw")
|
211
|
-
# #=> [{:message=>"foo!",
|
212
|
-
# :user_id=>"99999",
|
213
|
-
# :person=>"Brandon",
|
214
|
-
# :id=>"18659245",
|
215
|
-
# :timestamp=>=>Tue May 05 07:15:00 -0700 2009}]
|
220
|
+
# Search transcripts for the given term (returns an array of messages parsed
|
221
|
+
# via #parse_message, see #parse_message for format of returned message)
|
216
222
|
#
|
217
223
|
def search(term)
|
218
224
|
encoded_term = URI.encode(term)
|
@@ -221,11 +227,8 @@ module Tinder
|
|
221
227
|
message[:room_id] == id
|
222
228
|
end
|
223
229
|
|
224
|
-
room_messages.map do |
|
225
|
-
|
226
|
-
:user_id => room['user_id'],
|
227
|
-
:message => room['body'],
|
228
|
-
:timestamp => Time.parse(room['created_at']) }
|
230
|
+
room_messages.map do |message|
|
231
|
+
parse_message(message)
|
229
232
|
end
|
230
233
|
end
|
231
234
|
|
@@ -244,14 +247,13 @@ module Tinder
|
|
244
247
|
# Accepts a hash for options:
|
245
248
|
# * +:limit+: Restrict the number of messages returned
|
246
249
|
# * +:since_message_id+: Get messages created after the specified message id
|
247
|
-
def recent(
|
250
|
+
def recent(options = {})
|
251
|
+
options = { :limit => 10, :since_message_id => nil }.merge(options)
|
248
252
|
# Build url manually, faraday has to be 8.0 to do this
|
249
|
-
url = "#{room_url_for(:recent)}?limit=#{limit}&since_message_id=#{since_message_id}"
|
253
|
+
url = "#{room_url_for(:recent)}?limit=#{options[:limit]}&since_message_id=#{options[:since_message_id]}"
|
250
254
|
|
251
255
|
connection.get(url)['messages'].map do |msg|
|
252
|
-
|
253
|
-
msg[:user] = user(msg[:user_id])
|
254
|
-
msg
|
256
|
+
parse_message(msg)
|
255
257
|
end
|
256
258
|
end
|
257
259
|
|
@@ -270,7 +272,10 @@ module Tinder
|
|
270
272
|
@full = attributes['full']
|
271
273
|
@open_to_guests = attributes['open_to_guests']
|
272
274
|
@active_token_value = attributes['active_token_value']
|
273
|
-
@
|
275
|
+
@current_users = attributes['users'].map do |user|
|
276
|
+
user[:created_at] = Time.parse(user[:created_at])
|
277
|
+
user
|
278
|
+
end
|
274
279
|
|
275
280
|
@loaded = true
|
276
281
|
end
|
data/lib/tinder/version.rb
CHANGED
@@ -37,6 +37,33 @@ describe Tinder::Connection do
|
|
37
37
|
connection = Tinder::Connection.new('test', :token => 'mytoken')
|
38
38
|
lambda { connection.get('/rooms.json') }.should_not raise_error
|
39
39
|
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "oauth" do
|
44
|
+
let (:oauth_token) { "myoauthtoken" }
|
45
|
+
let (:connection) { Tinder::Connection.new('test', :oauth_token => oauth_token) }
|
46
|
+
|
47
|
+
before do
|
48
|
+
stub_connection(Tinder::Connection) do |stub|
|
49
|
+
stub.get("/rooms.json") {[200, {}, fixture('rooms.json')]}
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should authenticate" do
|
54
|
+
lambda { connection.get('/rooms.json') }.should_not raise_error
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should set the oauth_token" do
|
58
|
+
connection.get('/rooms.json')
|
59
|
+
connection.options[:oauth_token].should == oauth_token
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should set an Authorization header" do
|
63
|
+
connection.get('/rooms.json')
|
64
|
+
connection.connection.headers["Authorization"].should == "Bearer #{oauth_token}"
|
65
|
+
end
|
66
|
+
|
40
67
|
end
|
41
68
|
|
42
69
|
describe "ssl" do
|
data/spec/tinder/room_spec.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
require 'spec_helper'
|
3
|
+
require 'date'
|
3
4
|
|
4
5
|
describe Tinder::Room do
|
5
6
|
before do
|
@@ -14,11 +15,11 @@ describe Tinder::Room do
|
|
14
15
|
# Get EventMachine out of the way. We could be using em-spec, but seems like overkill
|
15
16
|
require 'twitter/json_stream'
|
16
17
|
module EventMachine; def self.run; yield end end
|
17
|
-
EventMachine.stub
|
18
|
-
@stream =
|
19
|
-
@stream.stub
|
20
|
-
@stream.stub
|
21
|
-
@stream.stub
|
18
|
+
EventMachine.stub(:reactor_running?).and_return(true)
|
19
|
+
@stream = double(Twitter::JSONStream)
|
20
|
+
@stream.stub(:each_item)
|
21
|
+
@stream.stub(:on_error)
|
22
|
+
@stream.stub(:on_max_reconnects)
|
22
23
|
end
|
23
24
|
|
24
25
|
describe "join" do
|
@@ -69,9 +70,35 @@ describe Tinder::Room do
|
|
69
70
|
end
|
70
71
|
end
|
71
72
|
|
72
|
-
it "should GET the search endpoint with the search term" do
|
73
|
+
it "should GET the search endpoint with the search term and filter by room" do
|
74
|
+
@room.stub(:id).and_return(490096)
|
75
|
+
@room.should_receive(:parse_message).exactly(2).times
|
73
76
|
@room.search("foo")
|
74
77
|
end
|
78
|
+
|
79
|
+
it "should return empty array if no messages in room" do
|
80
|
+
@room.should_receive(:parse_message).never
|
81
|
+
@room.search("foo").should be_empty
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
describe "transcript" do
|
86
|
+
it "should GET the transcript endpoint with the provided date" do
|
87
|
+
stub_connection(@connection) do |stub|
|
88
|
+
stub.get('/room/80749/transcript/2012/10/15.json') {[200, {}, fixture("rooms/recent.json")]}
|
89
|
+
end
|
90
|
+
@room.should_receive(:parse_message).exactly(2).times
|
91
|
+
@room.transcript(Date.parse('2012-10-15'))
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should default to today's date" do
|
95
|
+
stub_connection(@connection) do |stub|
|
96
|
+
stub.get('/room/80749/transcript/1981/03/21.json') {[200, {}, fixture("rooms/recent.json")]}
|
97
|
+
end
|
98
|
+
Date.stub(:today).and_return(Date.parse('1981-03-21'))
|
99
|
+
@room.should_receive(:parse_message).exactly(2).times
|
100
|
+
@room.transcript
|
101
|
+
end
|
75
102
|
end
|
76
103
|
|
77
104
|
describe "unlock" do
|
@@ -88,12 +115,12 @@ describe Tinder::Room do
|
|
88
115
|
|
89
116
|
describe "guest_url" do
|
90
117
|
it "should use guest_invite_code if active" do
|
91
|
-
@room.stub
|
118
|
+
@room.stub(:guest_access_enabled? => true, :guest_invite_code => '123')
|
92
119
|
@room.guest_url.should == "https://test.campfirenow.com/123"
|
93
120
|
end
|
94
121
|
|
95
122
|
it "should return nil when guest access is not enabled" do
|
96
|
-
@room.stub
|
123
|
+
@room.stub(:guest_access_enabled?).and_return(false)
|
97
124
|
@room.guest_url.should be_nil
|
98
125
|
end
|
99
126
|
end
|
@@ -167,7 +194,7 @@ describe Tinder::Room do
|
|
167
194
|
end
|
168
195
|
|
169
196
|
it "marks the room as listening" do
|
170
|
-
Twitter::JSONStream.stub
|
197
|
+
Twitter::JSONStream.stub(:connect).and_return(@stream)
|
171
198
|
lambda {
|
172
199
|
@room.listen { }
|
173
200
|
}.should change(@room, :listening?).from(false).to(true)
|
@@ -180,8 +207,8 @@ describe Tinder::Room do
|
|
180
207
|
stub.post('/room/80749/join.json') {[200, {}, ""]}
|
181
208
|
end
|
182
209
|
|
183
|
-
Twitter::JSONStream.stub
|
184
|
-
@stream.stub
|
210
|
+
Twitter::JSONStream.stub(:connect).and_return(@stream)
|
211
|
+
@stream.stub(:stop)
|
185
212
|
end
|
186
213
|
|
187
214
|
it "changes a listening room to a non-listening room" do
|
@@ -210,21 +237,94 @@ describe Tinder::Room do
|
|
210
237
|
stub.get('/room/80749/recent.json') {[
|
211
238
|
200, {}, fixture('rooms/recent.json')
|
212
239
|
]}
|
213
|
-
stub.get('/users/1158839.json') {[
|
214
|
-
200, {}, fixture('users/me.json')
|
215
|
-
]}
|
216
|
-
stub.get('/users/1158837.json') {[
|
217
|
-
200, {}, fixture('users/me.json')
|
218
|
-
]}
|
219
240
|
end
|
220
241
|
end
|
221
242
|
|
222
243
|
it "should get a list of parsed recent messages" do
|
223
|
-
|
244
|
+
@room.should_receive(:parse_message).exactly(2).times
|
245
|
+
messages = @room.recent
|
246
|
+
end
|
247
|
+
end
|
248
|
+
|
249
|
+
describe "parse_message" do
|
250
|
+
it "expands user and parses created_at" do
|
251
|
+
unparsed_message = {
|
252
|
+
:user_id => 123,
|
253
|
+
:body => 'An aunt is worth two nieces',
|
254
|
+
:created_at => '2012/02/14 16:21:00 +0000'
|
255
|
+
}
|
256
|
+
expected = {
|
257
|
+
:user => {
|
258
|
+
:name => 'Dr. Noodles'
|
259
|
+
},
|
260
|
+
:body => 'An aunt is worth two nieces',
|
261
|
+
:created_at => Time.parse('2012/02/14 16:21:00 +0000')
|
262
|
+
}
|
263
|
+
@room.stub(:user).with(123).and_return({ :name => 'Dr. Noodles' })
|
264
|
+
|
265
|
+
actual = @room.parse_message(unparsed_message)
|
266
|
+
actual.should == expected
|
267
|
+
end
|
268
|
+
end
|
269
|
+
|
270
|
+
describe "user" do
|
271
|
+
before do
|
272
|
+
@room.stub(:current_users).and_return([
|
273
|
+
{ :id => 1, :name => 'The Amazing Crayon Executive'},
|
274
|
+
{ :id => 2, :name => 'Lord Pants'},
|
275
|
+
])
|
276
|
+
@not_current_user = { :id => 3, :name => 'Patriot Sally'}
|
277
|
+
end
|
278
|
+
|
279
|
+
it "looks up user if not already in room's cache" do
|
280
|
+
@room.should_receive(:fetch_user).with(3).
|
281
|
+
and_return(@not_current_user)
|
282
|
+
@room.user(3).should == @not_current_user
|
283
|
+
end
|
284
|
+
|
285
|
+
it "pulls user from room's cache if user in participant list" do
|
286
|
+
@room.should_receive(:fetch_user).never
|
287
|
+
user = @room.user(1)
|
288
|
+
end
|
289
|
+
|
290
|
+
it "adds user to cache after first lookup" do
|
291
|
+
@room.should_receive(:fetch_user).with(3).at_most(:once).
|
292
|
+
and_return(@not_current_user)
|
293
|
+
@room.user(3).should == @not_current_user
|
294
|
+
@room.user(3).should == @not_current_user
|
295
|
+
end
|
296
|
+
end
|
297
|
+
|
298
|
+
describe "fetch_user" do
|
299
|
+
before do
|
300
|
+
stub_connection(@connection) do |stub|
|
301
|
+
stub.get("/users/5.json") {[200, {}, fixture('users/me.json')]}
|
302
|
+
end
|
303
|
+
end
|
304
|
+
|
305
|
+
it "requests via GET and returns the requested user's information" do
|
306
|
+
@room.fetch_user(5)['name'].should == 'John Doe'
|
307
|
+
end
|
308
|
+
end
|
309
|
+
|
310
|
+
describe "current_users" do
|
311
|
+
it "returns list of currently participating users" do
|
312
|
+
current_users = @room.current_users
|
313
|
+
current_users.size.should == 1
|
314
|
+
current_users.first[:name].should == 'Brandon Keepers'
|
315
|
+
end
|
316
|
+
end
|
317
|
+
|
318
|
+
describe "users" do
|
319
|
+
it "returns current users if cache has not been initialized yet" do
|
320
|
+
@room.should_receive(:current_users).and_return(:the_whole_spittoon)
|
321
|
+
@room.users.should == :the_whole_spittoon
|
322
|
+
end
|
224
323
|
|
225
|
-
|
226
|
-
|
227
|
-
|
324
|
+
it "returns current users plus any added cached users" do
|
325
|
+
@room.should_receive(:current_users).and_return([:mia_cuttlefish])
|
326
|
+
@room.users << :guy_wearing_new_mexico_as_a_hat
|
327
|
+
@room.users.should == [:mia_cuttlefish, :guy_wearing_new_mexico_as_a_hat]
|
228
328
|
end
|
229
329
|
end
|
230
330
|
end
|
data/tinder.gemspec
CHANGED
@@ -6,19 +6,19 @@ Gem::Specification.new do |gem|
|
|
6
6
|
gem.add_dependency 'eventmachine', '~> 1.0'
|
7
7
|
gem.add_dependency 'faraday', '~> 0.8'
|
8
8
|
gem.add_dependency 'faraday_middleware', '~> 0.9'
|
9
|
-
gem.add_dependency 'hashie', '
|
10
|
-
gem.add_dependency 'json', '~> 1.
|
9
|
+
gem.add_dependency 'hashie', ['>= 1.0', '< 3']
|
10
|
+
gem.add_dependency 'json', '~> 1.8.0'
|
11
11
|
gem.add_dependency 'mime-types', '~> 1.19'
|
12
|
-
gem.add_dependency 'multi_json', '~> 1.
|
12
|
+
gem.add_dependency 'multi_json', '~> 1.7'
|
13
13
|
gem.add_dependency 'twitter-stream', '~> 0.1'
|
14
14
|
|
15
15
|
gem.add_development_dependency 'fakeweb'
|
16
16
|
gem.add_development_dependency 'rake'
|
17
17
|
gem.add_development_dependency 'rspec'
|
18
18
|
|
19
|
-
gem.authors = ["Brandon Keepers", "Brian Ryckbost"]
|
19
|
+
gem.authors = ["Brandon Keepers", "Brian Ryckbost", "Tony Coconate"]
|
20
20
|
gem.description = %q{A Ruby API for interfacing with Campfire, the 37Signals chat application.}
|
21
|
-
gem.email = ['brandon@opensoul.org', 'bryckbost@gmail.com']
|
21
|
+
gem.email = ['brandon@opensoul.org', 'bryckbost@gmail.com', 'me@tonycoconate.com']
|
22
22
|
gem.extra_rdoc_files = ['README.markdown']
|
23
23
|
gem.files = `git ls-files`.split("\n")
|
24
24
|
gem.homepage = 'http://github.com/collectiveidea/tinder'
|
metadata
CHANGED
@@ -1,21 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tinder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.9.
|
5
|
-
prerelease:
|
4
|
+
version: 1.9.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Brandon Keepers
|
9
8
|
- Brian Ryckbost
|
9
|
+
- Tony Coconate
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-09-06 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: eventmachine
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
18
|
requirements:
|
20
19
|
- - ~>
|
21
20
|
- !ruby/object:Gem::Version
|
@@ -23,7 +22,6 @@ dependencies:
|
|
23
22
|
type: :runtime
|
24
23
|
prerelease: false
|
25
24
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
25
|
requirements:
|
28
26
|
- - ~>
|
29
27
|
- !ruby/object:Gem::Version
|
@@ -31,7 +29,6 @@ dependencies:
|
|
31
29
|
- !ruby/object:Gem::Dependency
|
32
30
|
name: faraday
|
33
31
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
32
|
requirements:
|
36
33
|
- - ~>
|
37
34
|
- !ruby/object:Gem::Version
|
@@ -39,7 +36,6 @@ dependencies:
|
|
39
36
|
type: :runtime
|
40
37
|
prerelease: false
|
41
38
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
39
|
requirements:
|
44
40
|
- - ~>
|
45
41
|
- !ruby/object:Gem::Version
|
@@ -47,7 +43,6 @@ dependencies:
|
|
47
43
|
- !ruby/object:Gem::Dependency
|
48
44
|
name: faraday_middleware
|
49
45
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
46
|
requirements:
|
52
47
|
- - ~>
|
53
48
|
- !ruby/object:Gem::Version
|
@@ -55,7 +50,6 @@ dependencies:
|
|
55
50
|
type: :runtime
|
56
51
|
prerelease: false
|
57
52
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
53
|
requirements:
|
60
54
|
- - ~>
|
61
55
|
- !ruby/object:Gem::Version
|
@@ -63,39 +57,40 @@ dependencies:
|
|
63
57
|
- !ruby/object:Gem::Dependency
|
64
58
|
name: hashie
|
65
59
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
60
|
requirements:
|
68
|
-
- -
|
61
|
+
- - '>='
|
69
62
|
- !ruby/object:Gem::Version
|
70
63
|
version: '1.0'
|
64
|
+
- - <
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '3'
|
71
67
|
type: :runtime
|
72
68
|
prerelease: false
|
73
69
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
70
|
requirements:
|
76
|
-
- -
|
71
|
+
- - '>='
|
77
72
|
- !ruby/object:Gem::Version
|
78
73
|
version: '1.0'
|
74
|
+
- - <
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '3'
|
79
77
|
- !ruby/object:Gem::Dependency
|
80
78
|
name: json
|
81
79
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
80
|
requirements:
|
84
81
|
- - ~>
|
85
82
|
- !ruby/object:Gem::Version
|
86
|
-
version: 1.
|
83
|
+
version: 1.8.0
|
87
84
|
type: :runtime
|
88
85
|
prerelease: false
|
89
86
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
87
|
requirements:
|
92
88
|
- - ~>
|
93
89
|
- !ruby/object:Gem::Version
|
94
|
-
version: 1.
|
90
|
+
version: 1.8.0
|
95
91
|
- !ruby/object:Gem::Dependency
|
96
92
|
name: mime-types
|
97
93
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
94
|
requirements:
|
100
95
|
- - ~>
|
101
96
|
- !ruby/object:Gem::Version
|
@@ -103,7 +98,6 @@ dependencies:
|
|
103
98
|
type: :runtime
|
104
99
|
prerelease: false
|
105
100
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
101
|
requirements:
|
108
102
|
- - ~>
|
109
103
|
- !ruby/object:Gem::Version
|
@@ -111,23 +105,20 @@ dependencies:
|
|
111
105
|
- !ruby/object:Gem::Dependency
|
112
106
|
name: multi_json
|
113
107
|
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
108
|
requirements:
|
116
109
|
- - ~>
|
117
110
|
- !ruby/object:Gem::Version
|
118
|
-
version: '1.
|
111
|
+
version: '1.7'
|
119
112
|
type: :runtime
|
120
113
|
prerelease: false
|
121
114
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
115
|
requirements:
|
124
116
|
- - ~>
|
125
117
|
- !ruby/object:Gem::Version
|
126
|
-
version: '1.
|
118
|
+
version: '1.7'
|
127
119
|
- !ruby/object:Gem::Dependency
|
128
120
|
name: twitter-stream
|
129
121
|
requirement: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
122
|
requirements:
|
132
123
|
- - ~>
|
133
124
|
- !ruby/object:Gem::Version
|
@@ -135,7 +126,6 @@ dependencies:
|
|
135
126
|
type: :runtime
|
136
127
|
prerelease: false
|
137
128
|
version_requirements: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
129
|
requirements:
|
140
130
|
- - ~>
|
141
131
|
- !ruby/object:Gem::Version
|
@@ -143,55 +133,50 @@ dependencies:
|
|
143
133
|
- !ruby/object:Gem::Dependency
|
144
134
|
name: fakeweb
|
145
135
|
requirement: !ruby/object:Gem::Requirement
|
146
|
-
none: false
|
147
136
|
requirements:
|
148
|
-
- -
|
137
|
+
- - '>='
|
149
138
|
- !ruby/object:Gem::Version
|
150
139
|
version: '0'
|
151
140
|
type: :development
|
152
141
|
prerelease: false
|
153
142
|
version_requirements: !ruby/object:Gem::Requirement
|
154
|
-
none: false
|
155
143
|
requirements:
|
156
|
-
- -
|
144
|
+
- - '>='
|
157
145
|
- !ruby/object:Gem::Version
|
158
146
|
version: '0'
|
159
147
|
- !ruby/object:Gem::Dependency
|
160
148
|
name: rake
|
161
149
|
requirement: !ruby/object:Gem::Requirement
|
162
|
-
none: false
|
163
150
|
requirements:
|
164
|
-
- -
|
151
|
+
- - '>='
|
165
152
|
- !ruby/object:Gem::Version
|
166
153
|
version: '0'
|
167
154
|
type: :development
|
168
155
|
prerelease: false
|
169
156
|
version_requirements: !ruby/object:Gem::Requirement
|
170
|
-
none: false
|
171
157
|
requirements:
|
172
|
-
- -
|
158
|
+
- - '>='
|
173
159
|
- !ruby/object:Gem::Version
|
174
160
|
version: '0'
|
175
161
|
- !ruby/object:Gem::Dependency
|
176
162
|
name: rspec
|
177
163
|
requirement: !ruby/object:Gem::Requirement
|
178
|
-
none: false
|
179
164
|
requirements:
|
180
|
-
- -
|
165
|
+
- - '>='
|
181
166
|
- !ruby/object:Gem::Version
|
182
167
|
version: '0'
|
183
168
|
type: :development
|
184
169
|
prerelease: false
|
185
170
|
version_requirements: !ruby/object:Gem::Requirement
|
186
|
-
none: false
|
187
171
|
requirements:
|
188
|
-
- -
|
172
|
+
- - '>='
|
189
173
|
- !ruby/object:Gem::Version
|
190
174
|
version: '0'
|
191
175
|
description: A Ruby API for interfacing with Campfire, the 37Signals chat application.
|
192
176
|
email:
|
193
177
|
- brandon@opensoul.org
|
194
178
|
- bryckbost@gmail.com
|
179
|
+
- me@tonycoconate.com
|
195
180
|
executables: []
|
196
181
|
extensions: []
|
197
182
|
extra_rdoc_files:
|
@@ -229,30 +214,26 @@ files:
|
|
229
214
|
- tinder.gemspec
|
230
215
|
homepage: http://github.com/collectiveidea/tinder
|
231
216
|
licenses: []
|
217
|
+
metadata: {}
|
232
218
|
post_install_message:
|
233
219
|
rdoc_options: []
|
234
220
|
require_paths:
|
235
221
|
- lib
|
236
222
|
required_ruby_version: !ruby/object:Gem::Requirement
|
237
|
-
none: false
|
238
223
|
requirements:
|
239
|
-
- -
|
224
|
+
- - '>='
|
240
225
|
- !ruby/object:Gem::Version
|
241
226
|
version: '0'
|
242
|
-
segments:
|
243
|
-
- 0
|
244
|
-
hash: 3804490809334781938
|
245
227
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
246
|
-
none: false
|
247
228
|
requirements:
|
248
|
-
- -
|
229
|
+
- - '>='
|
249
230
|
- !ruby/object:Gem::Version
|
250
231
|
version: 1.3.6
|
251
232
|
requirements: []
|
252
233
|
rubyforge_project:
|
253
|
-
rubygems_version:
|
234
|
+
rubygems_version: 2.0.3
|
254
235
|
signing_key:
|
255
|
-
specification_version:
|
236
|
+
specification_version: 4
|
256
237
|
summary: Ruby wrapper for the Campfire API
|
257
238
|
test_files:
|
258
239
|
- spec/fixtures/rooms.json
|