tinder 1.7.0 → 1.8.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.
@@ -4,7 +4,7 @@ require 'faraday'
4
4
  module Faraday
5
5
  class Response::RaiseOnAuthenticationFailure < Response::Middleware
6
6
  def on_complete(response)
7
- raise Tinder::AuthenticationFailed if response[:status] == 401
7
+ raise Tinder::AuthenticationFailed if [401, 404].include?(response[:status])
8
8
  end
9
9
  end
10
10
  end
@@ -1,4 +1,5 @@
1
1
  # encoding: UTF-8
2
+ require 'active_support'
2
3
  require 'tinder/connection'
3
4
  require 'tinder/campfire'
4
5
  require 'tinder/room'
@@ -19,8 +19,8 @@ module Tinder
19
19
  # == Options:
20
20
  # * +:ssl+: use SSL for the connection, which is required if you have a Campfire SSL account.
21
21
  # Defaults to true
22
- # * +:ssl_verify+: verify SSL certificate if using SSL
23
- # Defaults to true
22
+ # * +:ssl_options+: SSL options passed to the underlaying Faraday connection. Allows to specify if the SSL certificate should be verified (:verify => true|false) and to specify the path to the ssl certs directory (:ca_path => "path/certs")
23
+ # Defaults to {:verify => true}
24
24
  # * +:proxy+: a proxy URI. (e.g. :proxy => 'http://user:pass@example.com:8000')
25
25
  #
26
26
  # c = Tinder::Campfire.new("mysubdomain", :ssl => true)
@@ -35,7 +35,9 @@ module Tinder
35
35
 
36
36
  def initialize(subdomain, options = {})
37
37
  @subdomain = subdomain
38
- @options = {:ssl => true, :ssl_verify => true, :proxy => ENV['HTTP_PROXY']}.merge(options)
38
+ @options = {:ssl => true, :ssl_options => {:verify => true}, :proxy => ENV['HTTP_PROXY']}
39
+ @options[:ssl_options][:verify] = options.delete(:ssl_verify) unless options[:ssl_verify].nil?
40
+ @options.merge!(options)
39
41
  @uri = URI.parse("#{@options[:ssl] ? 'https' : 'http' }://#{subdomain}.#{HOST}")
40
42
  @token = options[:token]
41
43
 
@@ -50,11 +52,7 @@ module Tinder
50
52
  def connection
51
53
  @connection ||= begin
52
54
  conn = self.class.connection.dup
53
- conn.url_prefix = @uri.to_s
54
- conn.proxy options[:proxy]
55
- if options[:ssl_verify] == false
56
- conn.ssl[:verify] = false
57
- end
55
+ set_connection_options(conn)
58
56
  conn
59
57
  end
60
58
  end
@@ -62,11 +60,7 @@ module Tinder
62
60
  def raw_connection
63
61
  @raw_connection ||= begin
64
62
  conn = self.class.raw_connection.dup
65
- conn.url_prefix = @uri.to_s
66
- conn.proxy options[:proxy]
67
- if options[:ssl_verify] == false
68
- conn.ssl[:verify] = false
69
- end
63
+ set_connection_options(conn)
70
64
  conn
71
65
  end
72
66
  end
@@ -101,5 +95,14 @@ module Tinder
101
95
  def ssl?
102
96
  uri.scheme == 'https'
103
97
  end
98
+
99
+ private
100
+ def set_connection_options(conn)
101
+ conn.url_prefix = @uri.to_s
102
+ conn.proxy options[:proxy]
103
+ if options[:ssl_options]
104
+ conn.ssl.merge!(options[:ssl_options])
105
+ end
106
+ end
104
107
  end
105
108
  end
@@ -1,4 +1,4 @@
1
1
  # encoding: UTF-8
2
2
  module Tinder
3
- VERSION = '1.7.0' unless defined?(::Tinder::VERSION)
3
+ VERSION = '1.8.0' unless defined?(::Tinder::VERSION)
4
4
  end
@@ -12,6 +12,15 @@ describe Tinder::Connection do
12
12
  lambda { connection.get('/rooms.json') }.should raise_error(Tinder::AuthenticationFailed)
13
13
  end
14
14
 
15
+ it "should raise an exception when an invalid subdomain is specified" do
16
+ stub_connection(Tinder::Connection) do |stub|
17
+ stub.get("/rooms.json") {[404, {}, "Not found"]}
18
+ end
19
+
20
+ connection = Tinder::Connection.new('test', :token => 'foo')
21
+ lambda { connection.get('/rooms.json') }.should raise_error(Tinder::AuthenticationFailed)
22
+ end
23
+
15
24
  it "should lookup token when username/password provided" do
16
25
  stub_connection(Tinder::Connection) do |stub|
17
26
  stub.get("/users/me.json") {[200, {}, fixture('users/me.json')]}
@@ -48,5 +57,21 @@ describe Tinder::Connection do
48
57
  connection = Tinder::Connection.new('test', :username => 'user', :password => 'pass', :ssl_verify => false)
49
58
  connection.connection.ssl[:verify].should be == false
50
59
  end
60
+
61
+ it "should allow passing any ssl_options to Faraday" do
62
+ stub_connection(Tinder::Connection) do |stub|
63
+ stub.get("/users/me.json") {[200, {}, fixture('users/me.json')]}
64
+ end
65
+ connection = Tinder::Connection.new('test',
66
+ :username => 'user',
67
+ :password => 'pass',
68
+ :ssl_options => {
69
+ :verify => false,
70
+ :ca_path => "/usr/lib/ssl/certs",
71
+ :ca_file => "/etc/ssl/custom"
72
+ }
73
+ )
74
+ connection.connection.ssl.should eql(:verify => false, :ca_path => "/usr/lib/ssl/certs", :ca_file => "/etc/ssl/custom")
75
+ end
51
76
  end
52
77
  end
@@ -16,7 +16,7 @@ Gem::Specification.new do |gem|
16
16
  gem.add_runtime_dependency 'multipart-post', '~> 1.1'
17
17
  gem.add_runtime_dependency 'twitter-stream', '~> 0.1'
18
18
 
19
- gem.authors = ["Brandon Keepers"]
19
+ gem.authors = ["Brandon Keepers", "Brian Ryckbost"]
20
20
  gem.description = %q{A Ruby API for interfacing with Campfire, the 37Signals chat application.}
21
21
  gem.email = ['brandon@opensoul.org']
22
22
  gem.extra_rdoc_files = ['README.markdown']
metadata CHANGED
@@ -1,165 +1,233 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: tinder
3
- version: !ruby/object:Gem::Version
4
- version: 1.7.0
3
+ version: !ruby/object:Gem::Version
4
+ hash: 55
5
5
  prerelease:
6
+ segments:
7
+ - 1
8
+ - 8
9
+ - 0
10
+ version: 1.8.0
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Brandon Keepers
14
+ - Brian Ryckbost
9
15
  autorequire:
10
16
  bindir: bin
11
17
  cert_chain: []
12
- date: 2011-09-12 00:00:00.000000000Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
18
+
19
+ date: 2011-11-16 00:00:00 Z
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
15
22
  name: fakeweb
16
- requirement: &70192463323300 !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
17
25
  none: false
18
- requirements:
26
+ requirements:
19
27
  - - ~>
20
- - !ruby/object:Gem::Version
21
- version: '1.3'
28
+ - !ruby/object:Gem::Version
29
+ hash: 9
30
+ segments:
31
+ - 1
32
+ - 3
33
+ version: "1.3"
22
34
  type: :development
23
- prerelease: false
24
- version_requirements: *70192463323300
25
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
26
37
  name: rake
27
- requirement: &70192463353520 !ruby/object:Gem::Requirement
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
28
40
  none: false
29
- requirements:
41
+ requirements:
30
42
  - - ~>
31
- - !ruby/object:Gem::Version
32
- version: '0.8'
43
+ - !ruby/object:Gem::Version
44
+ hash: 27
45
+ segments:
46
+ - 0
47
+ - 8
48
+ version: "0.8"
33
49
  type: :development
34
- prerelease: false
35
- version_requirements: *70192463353520
36
- - !ruby/object:Gem::Dependency
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
37
52
  name: rspec
38
- requirement: &70192463353060 !ruby/object:Gem::Requirement
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
39
55
  none: false
40
- requirements:
56
+ requirements:
41
57
  - - ~>
42
- - !ruby/object:Gem::Version
43
- version: '2.6'
58
+ - !ruby/object:Gem::Version
59
+ hash: 15
60
+ segments:
61
+ - 2
62
+ - 6
63
+ version: "2.6"
44
64
  type: :development
45
- prerelease: false
46
- version_requirements: *70192463353060
47
- - !ruby/object:Gem::Dependency
65
+ version_requirements: *id003
66
+ - !ruby/object:Gem::Dependency
48
67
  name: activesupport
49
- requirement: &70192463352560 !ruby/object:Gem::Requirement
68
+ prerelease: false
69
+ requirement: &id004 !ruby/object:Gem::Requirement
50
70
  none: false
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: '2.3'
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ hash: 5
75
+ segments:
76
+ - 2
77
+ - 3
78
+ version: "2.3"
55
79
  - - <
56
- - !ruby/object:Gem::Version
57
- version: '4'
80
+ - !ruby/object:Gem::Version
81
+ hash: 11
82
+ segments:
83
+ - 4
84
+ version: "4"
58
85
  type: :runtime
59
- prerelease: false
60
- version_requirements: *70192463352560
61
- - !ruby/object:Gem::Dependency
86
+ version_requirements: *id004
87
+ - !ruby/object:Gem::Dependency
62
88
  name: eventmachine
63
- requirement: &70192463351840 !ruby/object:Gem::Requirement
89
+ prerelease: false
90
+ requirement: &id005 !ruby/object:Gem::Requirement
64
91
  none: false
65
- requirements:
92
+ requirements:
66
93
  - - ~>
67
- - !ruby/object:Gem::Version
68
- version: '0.12'
94
+ - !ruby/object:Gem::Version
95
+ hash: 19
96
+ segments:
97
+ - 0
98
+ - 12
99
+ version: "0.12"
69
100
  type: :runtime
70
- prerelease: false
71
- version_requirements: *70192463351840
72
- - !ruby/object:Gem::Dependency
101
+ version_requirements: *id005
102
+ - !ruby/object:Gem::Dependency
73
103
  name: faraday
74
- requirement: &70192463351340 !ruby/object:Gem::Requirement
104
+ prerelease: false
105
+ requirement: &id006 !ruby/object:Gem::Requirement
75
106
  none: false
76
- requirements:
77
- - - ! '>='
78
- - !ruby/object:Gem::Version
79
- version: '0.6'
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ hash: 7
111
+ segments:
112
+ - 0
113
+ - 6
114
+ version: "0.6"
80
115
  - - <
81
- - !ruby/object:Gem::Version
82
- version: '0.8'
116
+ - !ruby/object:Gem::Version
117
+ hash: 27
118
+ segments:
119
+ - 0
120
+ - 8
121
+ version: "0.8"
83
122
  type: :runtime
84
- prerelease: false
85
- version_requirements: *70192463351340
86
- - !ruby/object:Gem::Dependency
123
+ version_requirements: *id006
124
+ - !ruby/object:Gem::Dependency
87
125
  name: faraday_middleware
88
- requirement: &70192463350580 !ruby/object:Gem::Requirement
126
+ prerelease: false
127
+ requirement: &id007 !ruby/object:Gem::Requirement
89
128
  none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0.6'
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ hash: 7
133
+ segments:
134
+ - 0
135
+ - 6
136
+ version: "0.6"
94
137
  - - <
95
- - !ruby/object:Gem::Version
96
- version: '0.8'
138
+ - !ruby/object:Gem::Version
139
+ hash: 27
140
+ segments:
141
+ - 0
142
+ - 8
143
+ version: "0.8"
97
144
  type: :runtime
98
- prerelease: false
99
- version_requirements: *70192463350580
100
- - !ruby/object:Gem::Dependency
145
+ version_requirements: *id007
146
+ - !ruby/object:Gem::Dependency
101
147
  name: hashie
102
- requirement: &70192463349860 !ruby/object:Gem::Requirement
148
+ prerelease: false
149
+ requirement: &id008 !ruby/object:Gem::Requirement
103
150
  none: false
104
- requirements:
151
+ requirements:
105
152
  - - ~>
106
- - !ruby/object:Gem::Version
107
- version: '1.0'
153
+ - !ruby/object:Gem::Version
154
+ hash: 15
155
+ segments:
156
+ - 1
157
+ - 0
158
+ version: "1.0"
108
159
  type: :runtime
109
- prerelease: false
110
- version_requirements: *70192463349860
111
- - !ruby/object:Gem::Dependency
160
+ version_requirements: *id008
161
+ - !ruby/object:Gem::Dependency
112
162
  name: mime-types
113
- requirement: &70192463349400 !ruby/object:Gem::Requirement
163
+ prerelease: false
164
+ requirement: &id009 !ruby/object:Gem::Requirement
114
165
  none: false
115
- requirements:
166
+ requirements:
116
167
  - - ~>
117
- - !ruby/object:Gem::Version
118
- version: '1.16'
168
+ - !ruby/object:Gem::Version
169
+ hash: 47
170
+ segments:
171
+ - 1
172
+ - 16
173
+ version: "1.16"
119
174
  type: :runtime
120
- prerelease: false
121
- version_requirements: *70192463349400
122
- - !ruby/object:Gem::Dependency
175
+ version_requirements: *id009
176
+ - !ruby/object:Gem::Dependency
123
177
  name: multi_json
124
- requirement: &70192463348940 !ruby/object:Gem::Requirement
178
+ prerelease: false
179
+ requirement: &id010 !ruby/object:Gem::Requirement
125
180
  none: false
126
- requirements:
181
+ requirements:
127
182
  - - ~>
128
- - !ruby/object:Gem::Version
129
- version: '1.0'
183
+ - !ruby/object:Gem::Version
184
+ hash: 15
185
+ segments:
186
+ - 1
187
+ - 0
188
+ version: "1.0"
130
189
  type: :runtime
131
- prerelease: false
132
- version_requirements: *70192463348940
133
- - !ruby/object:Gem::Dependency
190
+ version_requirements: *id010
191
+ - !ruby/object:Gem::Dependency
134
192
  name: multipart-post
135
- requirement: &70192463348480 !ruby/object:Gem::Requirement
193
+ prerelease: false
194
+ requirement: &id011 !ruby/object:Gem::Requirement
136
195
  none: false
137
- requirements:
196
+ requirements:
138
197
  - - ~>
139
- - !ruby/object:Gem::Version
140
- version: '1.1'
198
+ - !ruby/object:Gem::Version
199
+ hash: 13
200
+ segments:
201
+ - 1
202
+ - 1
203
+ version: "1.1"
141
204
  type: :runtime
142
- prerelease: false
143
- version_requirements: *70192463348480
144
- - !ruby/object:Gem::Dependency
205
+ version_requirements: *id011
206
+ - !ruby/object:Gem::Dependency
145
207
  name: twitter-stream
146
- requirement: &70192463348020 !ruby/object:Gem::Requirement
208
+ prerelease: false
209
+ requirement: &id012 !ruby/object:Gem::Requirement
147
210
  none: false
148
- requirements:
211
+ requirements:
149
212
  - - ~>
150
- - !ruby/object:Gem::Version
151
- version: '0.1'
213
+ - !ruby/object:Gem::Version
214
+ hash: 9
215
+ segments:
216
+ - 0
217
+ - 1
218
+ version: "0.1"
152
219
  type: :runtime
153
- prerelease: false
154
- version_requirements: *70192463348020
220
+ version_requirements: *id012
155
221
  description: A Ruby API for interfacing with Campfire, the 37Signals chat application.
156
- email:
222
+ email:
157
223
  - brandon@opensoul.org
158
224
  executables: []
225
+
159
226
  extensions: []
160
- extra_rdoc_files:
227
+
228
+ extra_rdoc_files:
161
229
  - README.markdown
162
- files:
230
+ files:
163
231
  - .gemtest
164
232
  - .gitignore
165
233
  - .rspec
@@ -191,29 +259,40 @@ files:
191
259
  - tinder.gemspec
192
260
  homepage: http://github.com/collectiveidea/tinder
193
261
  licenses: []
262
+
194
263
  post_install_message:
195
264
  rdoc_options: []
196
- require_paths:
265
+
266
+ require_paths:
197
267
  - lib
198
- required_ruby_version: !ruby/object:Gem::Requirement
268
+ required_ruby_version: !ruby/object:Gem::Requirement
199
269
  none: false
200
- requirements:
201
- - - ! '>='
202
- - !ruby/object:Gem::Version
203
- version: '0'
204
- required_rubygems_version: !ruby/object:Gem::Requirement
270
+ requirements:
271
+ - - ">="
272
+ - !ruby/object:Gem::Version
273
+ hash: 3
274
+ segments:
275
+ - 0
276
+ version: "0"
277
+ required_rubygems_version: !ruby/object:Gem::Requirement
205
278
  none: false
206
- requirements:
207
- - - ! '>='
208
- - !ruby/object:Gem::Version
279
+ requirements:
280
+ - - ">="
281
+ - !ruby/object:Gem::Version
282
+ hash: 23
283
+ segments:
284
+ - 1
285
+ - 3
286
+ - 6
209
287
  version: 1.3.6
210
288
  requirements: []
289
+
211
290
  rubyforge_project:
212
- rubygems_version: 1.8.6
291
+ rubygems_version: 1.8.10
213
292
  signing_key:
214
293
  specification_version: 3
215
294
  summary: Ruby wrapper for the Campfire API
216
- test_files:
295
+ test_files:
217
296
  - spec/fixtures/rooms.json
218
297
  - spec/fixtures/rooms/room80749.json
219
298
  - spec/fixtures/rooms/room80751.json