thrift_client 0.9.2 → 0.9.3
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.
@@ -35,6 +35,17 @@ class AbstractThriftClient
|
|
35
35
|
|
36
36
|
attr_reader :last_client, :client, :client_class, :current_server, :server_list, :options, :client_methods
|
37
37
|
|
38
|
+
def self.create_wrapped_exception_classes(client_class, wrapped_exception_classes = DEFAULT_WRAPPED_ERRORS)
|
39
|
+
wrapped_exception_classes.map do |exception_klass|
|
40
|
+
name = exception_klass.to_s.split('::').last
|
41
|
+
begin
|
42
|
+
client_class.const_get(name)
|
43
|
+
rescue NameError
|
44
|
+
client_class.const_set(name, Class.new(exception_klass))
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
38
49
|
def initialize(client_class, servers, options = {})
|
39
50
|
@options = DEFAULTS.merge(options)
|
40
51
|
@options[:server_retry_period] ||= 0
|
@@ -55,14 +66,7 @@ class AbstractThriftClient
|
|
55
66
|
end
|
56
67
|
end
|
57
68
|
@request_count = 0
|
58
|
-
@options[:wrapped_exception_classes]
|
59
|
-
name = exception_klass.to_s.split('::').last
|
60
|
-
begin
|
61
|
-
@client_class.const_get(name)
|
62
|
-
rescue NameError
|
63
|
-
@client_class.const_set(name, Class.new(exception_klass))
|
64
|
-
end
|
65
|
-
end
|
69
|
+
self.class.create_wrapped_exception_classes(@client_class, @options[:wrapped_exception_classes])
|
66
70
|
end
|
67
71
|
|
68
72
|
# Adds a callback that will be invoked at a certain time. The valid callback types are:
|
data/test/greeter/server.rb
CHANGED
@@ -33,8 +33,8 @@ module Greeter
|
|
33
33
|
uri = URI.parse(uri)
|
34
34
|
handler = Greeter::Handler.new
|
35
35
|
processor = Greeter::Processor.new(handler)
|
36
|
-
path = uri.path
|
37
|
-
@server = Thrift::
|
36
|
+
path = uri.path
|
37
|
+
@server = Thrift::ThinHTTPServer.new(processor, :port => uri.port, :ip => uri.host, :path => path)
|
38
38
|
end
|
39
39
|
|
40
40
|
def serve
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require File.expand_path('test_helper.rb', File.dirname(__FILE__))
|
2
|
-
require "thrift/server/mongrel_http_server"
|
3
2
|
|
4
3
|
class ThriftClientHTTPTest < Test::Unit::TestCase
|
5
4
|
|
@@ -14,7 +13,7 @@ class ThriftClientHTTPTest < Test::Unit::TestCase
|
|
14
13
|
end
|
15
14
|
# Need to give the child process a moment to open the listening socket or
|
16
15
|
# we get occasional "could not connect" errors in tests.
|
17
|
-
sleep 0.
|
16
|
+
sleep 0.20
|
18
17
|
end
|
19
18
|
|
20
19
|
def teardown
|
data/test/thrift_client_test.rb
CHANGED
@@ -26,6 +26,13 @@ class ThriftClientTest < Test::Unit::TestCase
|
|
26
26
|
assert_equal "<ThriftClient(Greeter::Client) @current_server=127.0.0.1:1463>", client.inspect
|
27
27
|
end
|
28
28
|
|
29
|
+
def test_create_wrapped_exception_classes
|
30
|
+
client = Module.new
|
31
|
+
ThriftClient.create_wrapped_exception_classes(client, [Thrift::TransportException])
|
32
|
+
assert client.const_defined?(:TransportException)
|
33
|
+
assert client.const_get(:TransportException).new.is_a?(Thrift::TransportException)
|
34
|
+
end
|
35
|
+
|
29
36
|
def test_live_server
|
30
37
|
assert_nothing_raised do
|
31
38
|
ThriftClient.new(Greeter::Client, @servers.last, @options).greeting("someone")
|
metadata
CHANGED
@@ -1,81 +1,88 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: thrift_client
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.9.3
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 9
|
9
|
-
- 2
|
10
|
-
version: 0.9.2
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Evan Weaver
|
14
9
|
- Ryan King
|
15
10
|
- Jeff Hodges
|
16
11
|
autorequire:
|
17
12
|
bindir: bin
|
18
13
|
cert_chain: []
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
- !ruby/object:Gem::Dependency
|
14
|
+
date: 2014-08-27 00:00:00.000000000 Z
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
23
17
|
name: thrift
|
24
|
-
|
25
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
18
|
+
requirement: !ruby/object:Gem::Requirement
|
26
19
|
none: false
|
27
|
-
requirements:
|
20
|
+
requirements:
|
28
21
|
- - ~>
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
hash: 59
|
31
|
-
segments:
|
32
|
-
- 0
|
33
|
-
- 9
|
34
|
-
- 0
|
22
|
+
- !ruby/object:Gem::Version
|
35
23
|
version: 0.9.0
|
36
24
|
type: :runtime
|
37
|
-
|
38
|
-
|
25
|
+
prerelease: false
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
28
|
+
requirements:
|
29
|
+
- - ~>
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: 0.9.0
|
32
|
+
- !ruby/object:Gem::Dependency
|
39
33
|
name: rake
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
35
|
+
none: false
|
36
|
+
requirements:
|
37
|
+
- - ! '>='
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
type: :development
|
40
41
|
prerelease: false
|
41
|
-
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
none: false
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: rack
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
42
51
|
none: false
|
43
|
-
requirements:
|
44
|
-
- -
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
|
47
|
-
segments:
|
48
|
-
- 0
|
49
|
-
version: "0"
|
52
|
+
requirements:
|
53
|
+
- - ! '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
50
56
|
type: :development
|
51
|
-
version_requirements: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
name: mongrel
|
54
57
|
prerelease: false
|
55
|
-
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
60
|
+
requirements:
|
61
|
+
- - ! '>='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
- !ruby/object:Gem::Dependency
|
65
|
+
name: thin
|
66
|
+
requirement: !ruby/object:Gem::Requirement
|
56
67
|
none: false
|
57
|
-
requirements:
|
58
|
-
- -
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
|
61
|
-
segments:
|
62
|
-
- 1
|
63
|
-
- 2
|
64
|
-
- 0
|
65
|
-
- pre
|
66
|
-
- 2
|
67
|
-
version: 1.2.0.pre2
|
68
|
+
requirements:
|
69
|
+
- - ! '>='
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '0'
|
68
72
|
type: :development
|
69
|
-
|
73
|
+
prerelease: false
|
74
|
+
version_requirements: !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
76
|
+
requirements:
|
77
|
+
- - ! '>='
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
70
80
|
description:
|
71
81
|
email:
|
72
82
|
executables: []
|
73
|
-
|
74
83
|
extensions: []
|
75
|
-
|
76
84
|
extra_rdoc_files: []
|
77
|
-
|
78
|
-
files:
|
85
|
+
files:
|
79
86
|
- lib/thrift_client/abstract_thrift_client.rb
|
80
87
|
- lib/thrift_client/connection/base.rb
|
81
88
|
- lib/thrift_client/connection/factory.rb
|
@@ -95,39 +102,31 @@ files:
|
|
95
102
|
- test/thrift_client_http_test.rb
|
96
103
|
- test/thrift_client_test.rb
|
97
104
|
homepage: https://github.com/twitter/thrift_client
|
98
|
-
licenses:
|
99
|
-
|
105
|
+
licenses:
|
106
|
+
- Apache 2.0
|
100
107
|
post_install_message:
|
101
108
|
rdoc_options: []
|
102
|
-
|
103
|
-
require_paths:
|
109
|
+
require_paths:
|
104
110
|
- lib
|
105
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
111
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
106
112
|
none: false
|
107
|
-
requirements:
|
108
|
-
- -
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
|
111
|
-
|
112
|
-
- 0
|
113
|
-
version: "0"
|
114
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ! '>='
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
118
|
none: false
|
116
|
-
requirements:
|
117
|
-
- -
|
118
|
-
- !ruby/object:Gem::Version
|
119
|
-
|
120
|
-
segments:
|
121
|
-
- 0
|
122
|
-
version: "0"
|
119
|
+
requirements:
|
120
|
+
- - ! '>='
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '0'
|
123
123
|
requirements: []
|
124
|
-
|
125
124
|
rubyforge_project:
|
126
|
-
rubygems_version: 1.8.
|
125
|
+
rubygems_version: 1.8.23
|
127
126
|
signing_key:
|
128
127
|
specification_version: 3
|
129
128
|
summary: A Thrift client wrapper that encapsulates some common failover behavior.
|
130
|
-
test_files:
|
129
|
+
test_files:
|
131
130
|
- test/greeter/greeter.rb
|
132
131
|
- test/greeter/server.rb
|
133
132
|
- test/multiple_working_servers_test.rb
|