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.
@@ -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: