tinder 1.6.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,8 +1,9 @@
1
1
  rvm:
2
2
  - 1.8.7
3
3
  - 1.9.2
4
+ - 1.9.3
4
5
  - ruby-head
5
- - rbx
6
+ - rbx-2.0
6
7
  - jruby
7
8
  only:
8
9
  - master
@@ -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
+ [![Build Status](https://secure.travis-ci.org/collectiveidea/tinder.png)](http://travis-ci.org/collectiveidea/tinder)
28
+
25
29
  ## How to contribute
26
30
 
27
31
  If you find what looks like a bug:
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  require 'faraday'
2
3
 
3
4
  module Faraday
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  require 'faraday'
2
3
 
3
4
  module Faraday
@@ -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
@@ -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 false
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 }
@@ -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 = { :ssl => true, :proxy => ENV['HTTP_PROXY'] }.merge(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
@@ -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
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  module Tinder
2
- VERSION = '1.6.0' unless defined?(::Tinder::VERSION)
3
+ VERSION = '1.7.0' unless defined?(::Tinder::VERSION)
3
4
  end
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  $:.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
2
3
 
3
4
  require 'rspec'
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  require 'spec_helper'
2
3
 
3
4
  describe Tinder::Campfire do
@@ -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.should == "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
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
@@ -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.6.0
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-08-26 00:00:00.000000000Z
12
+ date: 2011-09-12 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fakeweb
16
- requirement: &70097708989480 !ruby/object:Gem::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: *70097708989480
24
+ version_requirements: *70192463323300
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &70097708988480 !ruby/object:Gem::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: *70097708988480
35
+ version_requirements: *70192463353520
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &70097708969580 !ruby/object:Gem::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: *70097708969580
46
+ version_requirements: *70192463353060
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activesupport
49
- requirement: &70097708968580 !ruby/object:Gem::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: *70097708968580
60
+ version_requirements: *70192463352560
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: eventmachine
63
- requirement: &70097708966700 !ruby/object:Gem::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: *70097708966700
71
+ version_requirements: *70192463351840
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: faraday
74
- requirement: &70097708965840 !ruby/object:Gem::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: *70097708965840
85
+ version_requirements: *70192463351340
86
86
  - !ruby/object:Gem::Dependency
87
87
  name: faraday_middleware
88
- requirement: &70097708964040 !ruby/object:Gem::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: *70097708964040
99
+ version_requirements: *70192463350580
100
100
  - !ruby/object:Gem::Dependency
101
101
  name: hashie
102
- requirement: &70097708962360 !ruby/object:Gem::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: *70097708962360
110
+ version_requirements: *70192463349860
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: mime-types
113
- requirement: &70097708961620 !ruby/object:Gem::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: *70097708961620
121
+ version_requirements: *70192463349400
122
122
  - !ruby/object:Gem::Dependency
123
123
  name: multi_json
124
- requirement: &70097708956340 !ruby/object:Gem::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: *70097708956340
132
+ version_requirements: *70192463348940
133
133
  - !ruby/object:Gem::Dependency
134
134
  name: multipart-post
135
- requirement: &70097708955420 !ruby/object:Gem::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: *70097708955420
143
+ version_requirements: *70192463348480
144
144
  - !ruby/object:Gem::Dependency
145
145
  name: twitter-stream
146
- requirement: &70097708954280 !ruby/object:Gem::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: *70097708954280
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: