tinder 1.6.0 → 1.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/.travis.yml +2 -1
- data/README.markdown +7 -3
- data/lib/faraday/response/raise_on_authentication_failure.rb +1 -0
- data/lib/faraday/response/remove_whitespace.rb +1 -0
- data/lib/tinder.rb +10 -0
- data/lib/tinder/campfire.rb +5 -2
- data/lib/tinder/connection.rb +8 -1
- data/lib/tinder/room.rb +5 -0
- data/lib/tinder/version.rb +2 -1
- data/spec/spec_helper.rb +1 -0
- data/spec/tinder/campfire_spec.rb +1 -0
- data/spec/tinder/connection_spec.rb +22 -2
- data/spec/tinder/room_spec.rb +2 -1
- metadata +26 -29
data/.travis.yml
CHANGED
data/README.markdown
CHANGED
@@ -7,7 +7,7 @@ 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
|
-
|
10
|
+
|
11
11
|
room = campfire.rooms.first
|
12
12
|
room.rename 'New Room Names'
|
13
13
|
room.speak 'Hello world!'
|
@@ -15,13 +15,17 @@ Tinder is a library for interfacing with Campfire, the chat application from 37S
|
|
15
15
|
|
16
16
|
room = campfire.find_room_by_guest_hash 'abc123', 'John Doe'
|
17
17
|
room.speak 'Hello world!'
|
18
|
-
|
18
|
+
|
19
19
|
See the RDoc for more details.
|
20
20
|
|
21
21
|
## Installation
|
22
22
|
|
23
23
|
gem install tinder
|
24
|
-
|
24
|
+
|
25
|
+
## Continuous Integration
|
26
|
+
|
27
|
+
[](http://travis-ci.org/collectiveidea/tinder)
|
28
|
+
|
25
29
|
## How to contribute
|
26
30
|
|
27
31
|
If you find what looks like a bug:
|
data/lib/tinder.rb
CHANGED
@@ -1,10 +1,20 @@
|
|
1
|
+
# encoding: UTF-8
|
1
2
|
require 'tinder/connection'
|
2
3
|
require 'tinder/campfire'
|
3
4
|
require 'tinder/room'
|
5
|
+
require 'logger'
|
4
6
|
|
5
7
|
module Tinder
|
6
8
|
class Error < StandardError; end
|
7
9
|
class SSLRequiredError < Error; end
|
8
10
|
class AuthenticationFailed < Error; end
|
9
11
|
class ListenFailed < Error; end
|
12
|
+
|
13
|
+
def self.logger
|
14
|
+
@logger ||= Logger.new(ENV['TINDER_LOGGING'] ? STDOUT : nil)
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.logger=(logger)
|
18
|
+
@logger = logger
|
19
|
+
end
|
10
20
|
end
|
data/lib/tinder/campfire.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# encoding: UTF-8
|
1
2
|
module Tinder
|
2
3
|
|
3
4
|
# == Usage
|
@@ -17,7 +18,9 @@ module Tinder
|
|
17
18
|
#
|
18
19
|
# == Options:
|
19
20
|
# * +:ssl+: use SSL for the connection, which is required if you have a Campfire SSL account.
|
20
|
-
# Defaults to
|
21
|
+
# Defaults to true
|
22
|
+
# * +:ssl_verify+: verify SSL certificate if using SSL
|
23
|
+
# Defaults to true
|
21
24
|
# * +:proxy+: a proxy URI. (e.g. :proxy => 'http://user:pass@example.com:8000')
|
22
25
|
#
|
23
26
|
# c = Tinder::Campfire.new("mysubdomain", :ssl => true)
|
@@ -32,7 +35,7 @@ module Tinder
|
|
32
35
|
Room.new(connection, room)
|
33
36
|
end
|
34
37
|
end
|
35
|
-
|
38
|
+
|
36
39
|
# Find a campfire room by id
|
37
40
|
def find_room_by_id(id)
|
38
41
|
rooms.detect { |room| room.id == id }
|
data/lib/tinder/connection.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# encoding: UTF-8
|
1
2
|
require 'active_support/json'
|
2
3
|
require 'faraday'
|
3
4
|
require 'faraday/response/raise_on_authentication_failure'
|
@@ -34,7 +35,7 @@ module Tinder
|
|
34
35
|
|
35
36
|
def initialize(subdomain, options = {})
|
36
37
|
@subdomain = subdomain
|
37
|
-
@options = {
|
38
|
+
@options = {:ssl => true, :ssl_verify => true, :proxy => ENV['HTTP_PROXY']}.merge(options)
|
38
39
|
@uri = URI.parse("#{@options[:ssl] ? 'https' : 'http' }://#{subdomain}.#{HOST}")
|
39
40
|
@token = options[:token]
|
40
41
|
|
@@ -51,6 +52,9 @@ module Tinder
|
|
51
52
|
conn = self.class.connection.dup
|
52
53
|
conn.url_prefix = @uri.to_s
|
53
54
|
conn.proxy options[:proxy]
|
55
|
+
if options[:ssl_verify] == false
|
56
|
+
conn.ssl[:verify] = false
|
57
|
+
end
|
54
58
|
conn
|
55
59
|
end
|
56
60
|
end
|
@@ -60,6 +64,9 @@ module Tinder
|
|
60
64
|
conn = self.class.raw_connection.dup
|
61
65
|
conn.url_prefix = @uri.to_s
|
62
66
|
conn.proxy options[:proxy]
|
67
|
+
if options[:ssl_verify] == false
|
68
|
+
conn.ssl[:verify] = false
|
69
|
+
end
|
63
70
|
conn
|
64
71
|
end
|
65
72
|
end
|
data/lib/tinder/room.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# encoding: UTF-8
|
1
2
|
module Tinder
|
2
3
|
# A campfire room
|
3
4
|
class Room
|
@@ -129,6 +130,7 @@ module Tinder
|
|
129
130
|
def listen(options = {})
|
130
131
|
raise ArgumentError, "no block provided" unless block_given?
|
131
132
|
|
133
|
+
Tinder.logger.info "Joining #{@name}…"
|
132
134
|
join # you have to be in the room to listen
|
133
135
|
|
134
136
|
require 'active_support/json'
|
@@ -145,8 +147,10 @@ module Tinder
|
|
145
147
|
:ssl => connection.options[:ssl]
|
146
148
|
}.merge(options)
|
147
149
|
|
150
|
+
Tinder.logger.info "Starting EventMachine server…"
|
148
151
|
EventMachine::run do
|
149
152
|
@stream = Twitter::JSONStream.connect(options)
|
153
|
+
Tinder.logger.info "Listening to #{@name}…"
|
150
154
|
@stream.each_item do |message|
|
151
155
|
message = Hashie::Mash.new(MultiJson.decode(message))
|
152
156
|
message[:user] = user(message.delete(:user_id))
|
@@ -174,6 +178,7 @@ module Tinder
|
|
174
178
|
def stop_listening
|
175
179
|
return unless listening?
|
176
180
|
|
181
|
+
Tinder.logger.info "Stopped listening to #{@name}…"
|
177
182
|
@stream.stop
|
178
183
|
@stream = nil
|
179
184
|
end
|
data/lib/tinder/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# encoding: UTF-8
|
1
2
|
require 'spec_helper'
|
2
3
|
|
3
4
|
describe Tinder::Connection do
|
@@ -17,10 +18,9 @@ describe Tinder::Connection do
|
|
17
18
|
end
|
18
19
|
|
19
20
|
connection = Tinder::Connection.new('test', :username => 'user', :password => 'pass')
|
20
|
-
connection.token.should
|
21
|
+
connection.token.should == "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
21
22
|
end
|
22
23
|
|
23
|
-
|
24
24
|
it "should use basic auth for credentials" do
|
25
25
|
stub_connection(Tinder::Connection) do |stub|
|
26
26
|
stub.get("/rooms.json") {[200, {}, fixture('rooms.json')]}
|
@@ -29,4 +29,24 @@ describe Tinder::Connection do
|
|
29
29
|
lambda { connection.get('/rooms.json') }.should_not raise_error
|
30
30
|
end
|
31
31
|
end
|
32
|
+
|
33
|
+
describe "ssl" do
|
34
|
+
it "should turn on ssl by default" do
|
35
|
+
stub_connection(Tinder::Connection) do |stub|
|
36
|
+
stub.get("/users/me.json") {[200, {}, fixture('users/me.json')]}
|
37
|
+
end
|
38
|
+
|
39
|
+
connection = Tinder::Connection.new('test', :username => 'user', :password => 'pass')
|
40
|
+
connection.ssl?.should be_true
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should should allow peer verification to be turned off" do
|
44
|
+
stub_connection(Tinder::Connection) do |stub|
|
45
|
+
stub.get("/users/me.json") {[200, {}, fixture('users/me.json')]}
|
46
|
+
end
|
47
|
+
|
48
|
+
connection = Tinder::Connection.new('test', :username => 'user', :password => 'pass', :ssl_verify => false)
|
49
|
+
connection.connection.ssl[:verify].should be == false
|
50
|
+
end
|
51
|
+
end
|
32
52
|
end
|
data/spec/tinder/room_spec.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# encoding: UTF-8
|
1
2
|
require 'spec_helper'
|
2
3
|
|
3
4
|
describe Tinder::Room do
|
@@ -8,7 +9,7 @@ describe Tinder::Room do
|
|
8
9
|
stub.get('/room/80749.json') {[200, {}, fixture('rooms/show.json')]}
|
9
10
|
end
|
10
11
|
|
11
|
-
@room = Tinder::Room.new(@connection, 'id' => 80749)
|
12
|
+
@room = Tinder::Room.new(@connection, 'id' => 80749, 'name' => 'Room 1')
|
12
13
|
|
13
14
|
# Get EventMachine out of the way. We could be using em-spec, but seems like overkill
|
14
15
|
require 'twitter/json_stream'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tinder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-09-12 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fakeweb
|
16
|
-
requirement: &
|
16
|
+
requirement: &70192463323300 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '1.3'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70192463323300
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rake
|
27
|
-
requirement: &
|
27
|
+
requirement: &70192463353520 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0.8'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70192463353520
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec
|
38
|
-
requirement: &
|
38
|
+
requirement: &70192463353060 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '2.6'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70192463353060
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: activesupport
|
49
|
-
requirement: &
|
49
|
+
requirement: &70192463352560 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -57,10 +57,10 @@ dependencies:
|
|
57
57
|
version: '4'
|
58
58
|
type: :runtime
|
59
59
|
prerelease: false
|
60
|
-
version_requirements: *
|
60
|
+
version_requirements: *70192463352560
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: eventmachine
|
63
|
-
requirement: &
|
63
|
+
requirement: &70192463351840 !ruby/object:Gem::Requirement
|
64
64
|
none: false
|
65
65
|
requirements:
|
66
66
|
- - ~>
|
@@ -68,10 +68,10 @@ dependencies:
|
|
68
68
|
version: '0.12'
|
69
69
|
type: :runtime
|
70
70
|
prerelease: false
|
71
|
-
version_requirements: *
|
71
|
+
version_requirements: *70192463351840
|
72
72
|
- !ruby/object:Gem::Dependency
|
73
73
|
name: faraday
|
74
|
-
requirement: &
|
74
|
+
requirement: &70192463351340 !ruby/object:Gem::Requirement
|
75
75
|
none: false
|
76
76
|
requirements:
|
77
77
|
- - ! '>='
|
@@ -82,10 +82,10 @@ dependencies:
|
|
82
82
|
version: '0.8'
|
83
83
|
type: :runtime
|
84
84
|
prerelease: false
|
85
|
-
version_requirements: *
|
85
|
+
version_requirements: *70192463351340
|
86
86
|
- !ruby/object:Gem::Dependency
|
87
87
|
name: faraday_middleware
|
88
|
-
requirement: &
|
88
|
+
requirement: &70192463350580 !ruby/object:Gem::Requirement
|
89
89
|
none: false
|
90
90
|
requirements:
|
91
91
|
- - ! '>='
|
@@ -96,10 +96,10 @@ dependencies:
|
|
96
96
|
version: '0.8'
|
97
97
|
type: :runtime
|
98
98
|
prerelease: false
|
99
|
-
version_requirements: *
|
99
|
+
version_requirements: *70192463350580
|
100
100
|
- !ruby/object:Gem::Dependency
|
101
101
|
name: hashie
|
102
|
-
requirement: &
|
102
|
+
requirement: &70192463349860 !ruby/object:Gem::Requirement
|
103
103
|
none: false
|
104
104
|
requirements:
|
105
105
|
- - ~>
|
@@ -107,10 +107,10 @@ dependencies:
|
|
107
107
|
version: '1.0'
|
108
108
|
type: :runtime
|
109
109
|
prerelease: false
|
110
|
-
version_requirements: *
|
110
|
+
version_requirements: *70192463349860
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: mime-types
|
113
|
-
requirement: &
|
113
|
+
requirement: &70192463349400 !ruby/object:Gem::Requirement
|
114
114
|
none: false
|
115
115
|
requirements:
|
116
116
|
- - ~>
|
@@ -118,10 +118,10 @@ dependencies:
|
|
118
118
|
version: '1.16'
|
119
119
|
type: :runtime
|
120
120
|
prerelease: false
|
121
|
-
version_requirements: *
|
121
|
+
version_requirements: *70192463349400
|
122
122
|
- !ruby/object:Gem::Dependency
|
123
123
|
name: multi_json
|
124
|
-
requirement: &
|
124
|
+
requirement: &70192463348940 !ruby/object:Gem::Requirement
|
125
125
|
none: false
|
126
126
|
requirements:
|
127
127
|
- - ~>
|
@@ -129,10 +129,10 @@ dependencies:
|
|
129
129
|
version: '1.0'
|
130
130
|
type: :runtime
|
131
131
|
prerelease: false
|
132
|
-
version_requirements: *
|
132
|
+
version_requirements: *70192463348940
|
133
133
|
- !ruby/object:Gem::Dependency
|
134
134
|
name: multipart-post
|
135
|
-
requirement: &
|
135
|
+
requirement: &70192463348480 !ruby/object:Gem::Requirement
|
136
136
|
none: false
|
137
137
|
requirements:
|
138
138
|
- - ~>
|
@@ -140,10 +140,10 @@ dependencies:
|
|
140
140
|
version: '1.1'
|
141
141
|
type: :runtime
|
142
142
|
prerelease: false
|
143
|
-
version_requirements: *
|
143
|
+
version_requirements: *70192463348480
|
144
144
|
- !ruby/object:Gem::Dependency
|
145
145
|
name: twitter-stream
|
146
|
-
requirement: &
|
146
|
+
requirement: &70192463348020 !ruby/object:Gem::Requirement
|
147
147
|
none: false
|
148
148
|
requirements:
|
149
149
|
- - ~>
|
@@ -151,7 +151,7 @@ dependencies:
|
|
151
151
|
version: '0.1'
|
152
152
|
type: :runtime
|
153
153
|
prerelease: false
|
154
|
-
version_requirements: *
|
154
|
+
version_requirements: *70192463348020
|
155
155
|
description: A Ruby API for interfacing with Campfire, the 37Signals chat application.
|
156
156
|
email:
|
157
157
|
- brandon@opensoul.org
|
@@ -201,9 +201,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
201
201
|
- - ! '>='
|
202
202
|
- !ruby/object:Gem::Version
|
203
203
|
version: '0'
|
204
|
-
segments:
|
205
|
-
- 0
|
206
|
-
hash: 2278892891730273210
|
207
204
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
208
205
|
none: false
|
209
206
|
requirements:
|