grackle 0.1.7 → 0.1.8
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/CHANGELOG.rdoc +3 -0
- data/grackle.gemspec +2 -2
- data/lib/grackle/transport.rb +14 -2
- data/lib/grackle.rb +1 -1
- data/test/test_client.rb +36 -1
- metadata +2 -2
data/CHANGELOG.rdoc
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
== 0.1.8 (2010-2-2)
|
2
|
+
* Added proxy support to Grackle::Transport via proxy attribute. Can specify a Proc that returns a Net::HTTP subclass or a Net::HTTP subclass directly. Typically this will be from Net::HTTP.Proxy.
|
3
|
+
|
1
4
|
== 0.1.7 (2009-12-13)
|
2
5
|
* Fixed a bug in Ruby 1.9 where the client was incorrectly handling request method parameters
|
3
6
|
* Fixed a bug in the _ method that wasn't correctly appending numeric path elements
|
data/grackle.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{grackle}
|
5
|
-
s.version = "0.1.
|
5
|
+
s.version = "0.1.8"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Hayes Davis"]
|
9
|
-
s.date = %q{
|
9
|
+
s.date = %q{2010-2-2}
|
10
10
|
s.description = %q{Grackle is a lightweight library for the Twitter REST and Search API.}
|
11
11
|
s.email = %q{hayes@appozite.com}
|
12
12
|
s.files = ["CHANGELOG.rdoc", "README.rdoc", "grackle.gemspec", "lib/grackle.rb", "lib/grackle/client.rb", "lib/grackle/handlers.rb", "lib/grackle/transport.rb", "lib/grackle/utils.rb", "test/test_grackle.rb", "test/test_helper.rb", "test/test_client.rb", "test/test_handlers.rb"]
|
data/lib/grackle/transport.rb
CHANGED
@@ -13,7 +13,7 @@ module Grackle
|
|
13
13
|
|
14
14
|
class Transport
|
15
15
|
|
16
|
-
attr_accessor :debug
|
16
|
+
attr_accessor :debug, :proxy
|
17
17
|
|
18
18
|
CRLF = "\r\n"
|
19
19
|
DEFAULT_REDIRECT_LIMIT = 5
|
@@ -46,7 +46,7 @@ module Grackle
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def execute_request(method,url,options={})
|
49
|
-
conn =
|
49
|
+
conn = http_class.new(url.host, url.port)
|
50
50
|
conn.use_ssl = (url.scheme == 'https')
|
51
51
|
if conn.use_ssl?
|
52
52
|
configure_ssl(conn)
|
@@ -199,6 +199,18 @@ module Grackle
|
|
199
199
|
end
|
200
200
|
end
|
201
201
|
|
202
|
+
def http_class
|
203
|
+
if proxy
|
204
|
+
if proxy.kind_of?(Proc)
|
205
|
+
proxy.call(self)
|
206
|
+
else
|
207
|
+
proxy
|
208
|
+
end
|
209
|
+
else
|
210
|
+
Net::HTTP
|
211
|
+
end
|
212
|
+
end
|
213
|
+
|
202
214
|
def configure_ssl(conn)
|
203
215
|
if self.class.ca_cert_file
|
204
216
|
conn.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
data/lib/grackle.rb
CHANGED
data/test/test_client.rb
CHANGED
@@ -21,7 +21,24 @@ class TestClient < Test::Unit::TestCase
|
|
21
21
|
self.class.response
|
22
22
|
end
|
23
23
|
end
|
24
|
-
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class MockProxy < Net::HTTP
|
27
|
+
class << self
|
28
|
+
attr_accessor :started
|
29
|
+
[:response,:request,:last_instance,:responder].each do |m|
|
30
|
+
class_eval "
|
31
|
+
def #{m}; Net::HTTP.#{m}; end
|
32
|
+
def #{m}=(val); Net::HTTP.#{m} = val; end
|
33
|
+
"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def start
|
38
|
+
self.class.started = true
|
39
|
+
super
|
40
|
+
end
|
41
|
+
end
|
25
42
|
|
26
43
|
#Mock responses that conform to HTTPResponse's interface
|
27
44
|
class MockResponse < Net::HTTPResponse
|
@@ -258,6 +275,24 @@ class TestClient < Test::Unit::TestCase
|
|
258
275
|
assert_equal(12345,value.id)
|
259
276
|
end
|
260
277
|
|
278
|
+
def test_transport_proxy_setting_is_used
|
279
|
+
client = new_client(200,'{"id":12345,"screen_name":"test_user"}')
|
280
|
+
called = false
|
281
|
+
call_trans = nil
|
282
|
+
client.transport.proxy = Proc.new {|trans| call_trans = trans; called = true; MockProxy }
|
283
|
+
client.users.show._(12345).json?
|
284
|
+
assert(called,"Proxy proc should be called during request")
|
285
|
+
assert(MockProxy.started,"Proxy should have been called")
|
286
|
+
assert_equal(client.transport,call_trans,"Proxy should have been called with transport")
|
287
|
+
MockProxy.started = false
|
288
|
+
client.transport.proxy = MockProxy
|
289
|
+
client.users.show._(12345).json?
|
290
|
+
assert(MockProxy.started,"Proxy should have been called")
|
291
|
+
MockProxy.started = false
|
292
|
+
client.transport.proxy = nil
|
293
|
+
assert_equal(false,MockProxy.started,"Proxy should not have been called")
|
294
|
+
end
|
295
|
+
|
261
296
|
private
|
262
297
|
def with_http_responder(responder)
|
263
298
|
Net::HTTP.responder = responder
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grackle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hayes Davis
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-02-02 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|