thrift 0.9.2.0 → 0.9.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -283,27 +283,27 @@ VALUE rb_thrift_binary_proto_read_message_end(VALUE self) {
283
283
  return Qnil;
284
284
  }
285
285
 
286
- VALUE rb_thift_binary_proto_read_struct_begin(VALUE self) {
286
+ VALUE rb_thrift_binary_proto_read_struct_begin(VALUE self) {
287
287
  return Qnil;
288
288
  }
289
289
 
290
- VALUE rb_thift_binary_proto_read_struct_end(VALUE self) {
290
+ VALUE rb_thrift_binary_proto_read_struct_end(VALUE self) {
291
291
  return Qnil;
292
292
  }
293
293
 
294
- VALUE rb_thift_binary_proto_read_field_end(VALUE self) {
294
+ VALUE rb_thrift_binary_proto_read_field_end(VALUE self) {
295
295
  return Qnil;
296
296
  }
297
297
 
298
- VALUE rb_thift_binary_proto_read_map_end(VALUE self) {
298
+ VALUE rb_thrift_binary_proto_read_map_end(VALUE self) {
299
299
  return Qnil;
300
300
  }
301
301
 
302
- VALUE rb_thift_binary_proto_read_list_end(VALUE self) {
302
+ VALUE rb_thrift_binary_proto_read_list_end(VALUE self) {
303
303
  return Qnil;
304
304
  }
305
305
 
306
- VALUE rb_thift_binary_proto_read_set_end(VALUE self) {
306
+ VALUE rb_thrift_binary_proto_read_set_end(VALUE self) {
307
307
  return Qnil;
308
308
  }
309
309
 
@@ -449,12 +449,12 @@ void Init_binary_protocol_accelerated() {
449
449
  rb_define_method(bpa_class, "read_binary", rb_thrift_binary_proto_read_binary, 0);
450
450
  // unused methods
451
451
  rb_define_method(bpa_class, "read_message_end", rb_thrift_binary_proto_read_message_end, 0);
452
- rb_define_method(bpa_class, "read_struct_begin", rb_thift_binary_proto_read_struct_begin, 0);
453
- rb_define_method(bpa_class, "read_struct_end", rb_thift_binary_proto_read_struct_end, 0);
454
- rb_define_method(bpa_class, "read_field_end", rb_thift_binary_proto_read_field_end, 0);
455
- rb_define_method(bpa_class, "read_map_end", rb_thift_binary_proto_read_map_end, 0);
456
- rb_define_method(bpa_class, "read_list_end", rb_thift_binary_proto_read_list_end, 0);
457
- rb_define_method(bpa_class, "read_set_end", rb_thift_binary_proto_read_set_end, 0);
452
+ rb_define_method(bpa_class, "read_struct_begin", rb_thrift_binary_proto_read_struct_begin, 0);
453
+ rb_define_method(bpa_class, "read_struct_end", rb_thrift_binary_proto_read_struct_end, 0);
454
+ rb_define_method(bpa_class, "read_field_end", rb_thrift_binary_proto_read_field_end, 0);
455
+ rb_define_method(bpa_class, "read_map_end", rb_thrift_binary_proto_read_map_end, 0);
456
+ rb_define_method(bpa_class, "read_list_end", rb_thrift_binary_proto_read_list_end, 0);
457
+ rb_define_method(bpa_class, "read_set_end", rb_thrift_binary_proto_read_set_end, 0);
458
458
 
459
459
  rbuf_ivar_id = rb_intern("@rbuf");
460
460
  }
@@ -27,6 +27,7 @@ require 'thrift/core_ext'
27
27
  require 'thrift/exceptions'
28
28
  require 'thrift/types'
29
29
  require 'thrift/processor'
30
+ require 'thrift/multiplexed_processor'
30
31
  require 'thrift/client'
31
32
  require 'thrift/struct'
32
33
  require 'thrift/union'
@@ -42,6 +43,7 @@ require 'thrift/protocol/binary_protocol'
42
43
  require 'thrift/protocol/binary_protocol_accelerated'
43
44
  require 'thrift/protocol/compact_protocol'
44
45
  require 'thrift/protocol/json_protocol'
46
+ require 'thrift/protocol/multiplexed_protocol'
45
47
 
46
48
  # transport
47
49
  require 'thrift/transport/base_transport'
@@ -0,0 +1,76 @@
1
+ #
2
+ # Licensed to the Apache Software Foundation (ASF) under one
3
+ # or more contributor license agreements. See the NOTICE file
4
+ # distributed with this work for additional information
5
+ # regarding copyright ownership. The ASF licenses this file
6
+ # to you under the Apache License, Version 2.0 (the
7
+ # "License"); you may not use this file except in compliance
8
+ # with the License. You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing,
13
+ # software distributed under the License is distributed on an
14
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ # KIND, either express or implied. See the License for the
16
+ # specific language governing permissions and limitations
17
+ # under the License.
18
+
19
+ require 'thrift/protocol/protocol_decorator'
20
+ require 'thrift/protocol/base_protocol'
21
+
22
+ module Thrift
23
+ class MultiplexedProcessor
24
+ def initialize
25
+ @actual_processors = {}
26
+ end
27
+
28
+ def register_processor(service_name, processor)
29
+ @actual_processors[service_name] = processor
30
+ end
31
+
32
+ def process(iprot, oprot)
33
+ name, type, seqid = iprot.read_message_begin
34
+ check_type(type)
35
+ check_separator(name)
36
+ service_name, method = name.split(':')
37
+ processor(service_name).process(StoredMessageProtocol.new(iprot, [method, type, seqid]), oprot)
38
+ end
39
+
40
+ protected
41
+
42
+ def processor(service_name)
43
+ if @actual_processors.has_key?(service_name)
44
+ @actual_processors[service_name]
45
+ else
46
+ raise Thrift::Exception.new("Service name not found: #{service_name}. Did you forget to call #{self.class.name}#register_processor?")
47
+ end
48
+ end
49
+
50
+ def check_type(type)
51
+ unless [MessageTypes::CALL, MessageTypes::ONEWAY].include?(type)
52
+ raise Thrift::Exception.new('This should not have happened!?')
53
+ end
54
+ end
55
+
56
+ def check_separator(name)
57
+ if name.count(':') < 1
58
+ raise Thrift::Exception.new("Service name not found in message name: #{name}. Did you forget to use a Thrift::Protocol::MultiplexedProtocol in your client?")
59
+ end
60
+ end
61
+ end
62
+
63
+ class StoredMessageProtocol < BaseProtocol
64
+
65
+ include ProtocolDecorator
66
+
67
+ def initialize(protocol, message_begin)
68
+ super(protocol)
69
+ @message_begin = message_begin
70
+ end
71
+
72
+ def read_message_begin
73
+ @message_begin
74
+ end
75
+ end
76
+ end
@@ -26,16 +26,18 @@ module Thrift
26
26
  def process(iprot, oprot)
27
27
  name, type, seqid = iprot.read_message_begin
28
28
  if respond_to?("process_#{name}")
29
- send("process_#{name}", seqid, iprot, oprot)
29
+ begin
30
+ send("process_#{name}", seqid, iprot, oprot)
31
+ rescue => e
32
+ x = ApplicationException.new(ApplicationException::INTERNAL_ERROR, 'Internal error')
33
+ write_error(x, oprot, name, seqid)
34
+ end
30
35
  true
31
36
  else
32
37
  iprot.skip(Types::STRUCT)
33
38
  iprot.read_message_end
34
39
  x = ApplicationException.new(ApplicationException::UNKNOWN_METHOD, 'Unknown function '+name)
35
- oprot.write_message_begin(name, MessageTypes::EXCEPTION, seqid)
36
- x.write(oprot)
37
- oprot.write_message_end
38
- oprot.trans.flush
40
+ write_error(x, oprot, name, seqid)
39
41
  false
40
42
  end
41
43
  end
@@ -53,5 +55,14 @@ module Thrift
53
55
  oprot.write_message_end
54
56
  oprot.trans.flush
55
57
  end
58
+
59
+ def write_error(err, oprot, name, seqid)
60
+ p 'write_error'
61
+ oprot.write_message_begin(name, MessageTypes::EXCEPTION, seqid)
62
+ err.write(oprot)
63
+ oprot.write_message_end
64
+ oprot.trans.flush
65
+ p 'write_error end'
66
+ end
56
67
  end
57
68
  end
@@ -0,0 +1,40 @@
1
+ #
2
+ # Licensed to the Apache Software Foundation (ASF) under one
3
+ # or more contributor license agreements. See the NOTICE file
4
+ # distributed with this work for additional information
5
+ # regarding copyright ownership. The ASF licenses this file
6
+ # to you under the Apache License, Version 2.0 (the
7
+ # "License"); you may not use this file except in compliance
8
+ # with the License. You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing,
13
+ # software distributed under the License is distributed on an
14
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ # KIND, either express or implied. See the License for the
16
+ # specific language governing permissions and limitations
17
+ # under the License.
18
+
19
+ require 'thrift/protocol/protocol_decorator'
20
+
21
+ module Thrift
22
+ class MultiplexedProtocol < BaseProtocol
23
+
24
+ include ProtocolDecorator
25
+
26
+ def initialize(protocol, service_name)
27
+ super(protocol)
28
+ @service_name = service_name
29
+ end
30
+
31
+ def write_message_begin(name, type, seqid)
32
+ case type
33
+ when MessageTypes::CALL, MessageTypes::ONEWAY
34
+ @protocol.write_message_begin("#{@service_name}:#{name}", type, seqid)
35
+ else
36
+ @protocol.write_message_begin(name, type, seqid)
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,194 @@
1
+ #
2
+ # Licensed to the Apache Software Foundation (ASF) under one
3
+ # or more contributor license agreements. See the NOTICE file
4
+ # distributed with this work for additional information
5
+ # regarding copyright ownership. The ASF licenses this file
6
+ # to you under the Apache License, Version 2.0 (the
7
+ # "License"); you may not use this file except in compliance
8
+ # with the License. You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing,
13
+ # software distributed under the License is distributed on an
14
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ # KIND, either express or implied. See the License for the
16
+ # specific language governing permissions and limitations
17
+ # under the License.
18
+
19
+ module Thrift
20
+ module ProtocolDecorator
21
+
22
+ def initialize(protocol)
23
+ @protocol = protocol
24
+ end
25
+
26
+ def trans
27
+ @protocol.trans
28
+ end
29
+
30
+ def write_message_begin(name, type, seqid)
31
+ @protocol.write_message_begin
32
+ end
33
+
34
+ def write_message_end
35
+ @protocol.write_message_end
36
+ end
37
+
38
+ def write_struct_begin(name)
39
+ @protocol.write_struct_begin(name)
40
+ end
41
+
42
+ def write_struct_end
43
+ @protocol.write_struct_end
44
+ end
45
+
46
+ def write_field_begin(name, type, id)
47
+ @protocol.write_field_begin(name, type, id)
48
+ end
49
+
50
+ def write_field_end
51
+ @protocol.write_field_end
52
+ end
53
+
54
+ def write_field_stop
55
+ @protocol.write_field_stop
56
+ end
57
+
58
+ def write_map_begin(ktype, vtype, size)
59
+ @protocol.write_map_begin(ktype, vtype, size)
60
+ end
61
+
62
+ def write_map_end
63
+ @protocol.write_map_end
64
+ end
65
+
66
+ def write_list_begin(etype, size)
67
+ @protocol.write_list_begin(etype, size)
68
+ end
69
+
70
+ def write_list_end
71
+ @protocol.write_list_end
72
+ end
73
+
74
+ def write_set_begin(etype, size)
75
+ @protocol.write_set_begin(etype, size)
76
+ end
77
+
78
+ def write_set_end
79
+ @protocol.write_set_end
80
+ end
81
+
82
+ def write_bool(bool)
83
+ @protocol.write_bool(bool)
84
+ end
85
+
86
+ def write_byte(byte)
87
+ @protocol.write_byte(byte)
88
+ end
89
+
90
+ def write_i16(i16)
91
+ @protocol.write_i16(i16)
92
+ end
93
+
94
+ def write_i32(i32)
95
+ @protocol.write_i32(i32)
96
+ end
97
+
98
+ def write_i64(i64)
99
+ @protocol.write_i64(i64)
100
+ end
101
+
102
+ def write_double(dub)
103
+ @protocol.write_double(dub)
104
+ end
105
+
106
+ def write_string(str)
107
+ @protocol.write_string(str)
108
+ end
109
+
110
+ def write_binary(buf)
111
+ @protocol.write_binary(buf)
112
+ end
113
+
114
+ def read_message_begin
115
+ @protocol.read_message_begin
116
+ end
117
+
118
+ def read_message_end
119
+ @protocol.read_message_end
120
+ end
121
+
122
+ def read_struct_begin
123
+ @protocol.read_struct_begin
124
+ end
125
+
126
+ def read_struct_end
127
+ @protocol.read_struct_end
128
+ end
129
+
130
+ def read_field_begin
131
+ @protocol.read_field_begin
132
+ end
133
+
134
+ def read_field_end
135
+ @protocol.read_field_end
136
+ end
137
+
138
+ def read_map_begin
139
+ @protocol.read_map_begin
140
+ end
141
+
142
+ def read_map_end
143
+ @protocol.read_map_end
144
+ end
145
+
146
+ def read_list_begin
147
+ @protocol.read_list_begin
148
+ end
149
+
150
+ def read_list_end
151
+ @protocol.read_list_end
152
+ end
153
+
154
+ def read_set_begin
155
+ @protocol.read_set_begin
156
+ end
157
+
158
+ def read_set_end
159
+ @protocol.read_set_end
160
+ end
161
+
162
+ def read_bool
163
+ @protocol.read_bool
164
+ end
165
+
166
+ def read_byte
167
+ @protocol.read_byte
168
+ end
169
+
170
+ def read_i16
171
+ @protocol.read_i16
172
+ end
173
+
174
+ def read_i32
175
+ @protocol.read_i32
176
+ end
177
+
178
+ def read_i64
179
+ @protocol.read_i64
180
+ end
181
+
182
+ def read_double
183
+ @protocol.read_double
184
+ end
185
+
186
+ def read_string
187
+ @protocol.read_string
188
+ end
189
+
190
+ def read_binary
191
+ @protocol.read_binary
192
+ end
193
+ end
194
+ end
@@ -87,12 +87,9 @@ module Thrift
87
87
  end
88
88
 
89
89
  def ==(other)
90
- other != nil && @setfield == other.get_set_field && @value == other.get_value
91
- end
92
-
93
- def eql?(other)
94
- self.class == other.class && self == other
90
+ other.equal?(self) || other.instance_of?(self.class) && @setfield == other.get_set_field && @value == other.get_value
95
91
  end
92
+ alias_method :eql?, :==
96
93
 
97
94
  def hash
98
95
  [self.class.name, @setfield, @value].hash
@@ -176,4 +173,4 @@ module Thrift
176
173
  end
177
174
  end
178
175
  end
179
- end
176
+ end
@@ -0,0 +1,27 @@
1
+ # Licensed to the Apache Software Foundation (ASF) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The ASF licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+ #
18
+
19
+ namespace rb Base
20
+
21
+ struct Hello {
22
+ 1: string greeting = "hello world"
23
+ }
24
+
25
+ service BaseService {
26
+ Hello greeting(1:bool english)
27
+ }
@@ -0,0 +1,25 @@
1
+ # Licensed to the Apache Software Foundation (ASF) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The ASF licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+ #
18
+
19
+ namespace rb Extended
20
+
21
+ include "BaseService.thrift"
22
+
23
+ service ExtendedService extends BaseService.BaseService {
24
+ void ping()
25
+ }
@@ -0,0 +1,62 @@
1
+ #
2
+ # Licensed to the Apache Software Foundation (ASF) under one
3
+ # or more contributor license agreements. See the NOTICE file
4
+ # distributed with this work for additional information
5
+ # regarding copyright ownership. The ASF licenses this file
6
+ # to you under the Apache License, Version 2.0 (the
7
+ # "License"); you may not use this file except in compliance
8
+ # with the License. You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing,
13
+ # software distributed under the License is distributed on an
14
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ # KIND, either express or implied. See the License for the
16
+ # specific language governing permissions and limitations
17
+ # under the License.
18
+ #
19
+
20
+ require 'spec_helper'
21
+
22
+ describe 'generation' do
23
+ before do
24
+ require 'namespaced_nonblocking_service'
25
+ end
26
+
27
+ it "did not generate the wrong files" do
28
+ prefix = File.expand_path("../gen-rb/flat", __FILE__)
29
+ ["namespaced_spec_namespace/namespaced_nonblocking_service.rb",
30
+ "namespaced_spec_namespace/thrift_namespaced_spec_constants.rb",
31
+ "namespaced_spec_namespace/thrift_namespaced_spec_types.rb",
32
+ "other_namespace/referenced_constants.rb",
33
+ "other_namespace/referenced_types.rb"
34
+ ].each do |name|
35
+ File.exist?(File.join(prefix, name)).should_not be_true
36
+ end
37
+ end
38
+
39
+ it "generated the right files" do
40
+ prefix = File.expand_path("../gen-rb/flat", __FILE__)
41
+ ["namespaced_nonblocking_service.rb",
42
+ "thrift_namespaced_spec_constants.rb",
43
+ "thrift_namespaced_spec_types.rb",
44
+ "referenced_constants.rb",
45
+ "referenced_types.rb"
46
+ ].each do |name|
47
+ File.exist?(File.join(prefix, name)).should be_true
48
+ end
49
+ end
50
+
51
+ it "has a service class in the right place" do
52
+ defined?(NamespacedSpecNamespace::NamespacedNonblockingService).should be_true
53
+ end
54
+
55
+ it "has a struct in the right place" do
56
+ defined?(NamespacedSpecNamespace::Hello).should be_true
57
+ end
58
+
59
+ it "required an included file" do
60
+ defined?(OtherNamespace::SomeEnum).should be_true
61
+ end
62
+ end
@@ -59,4 +59,9 @@ describe 'namespaced generation' do
59
59
  it "required an included file" do
60
60
  defined?(OtherNamespace::SomeEnum).should be_true
61
61
  end
62
+
63
+ it "extended a service" do
64
+ require "extended/extended_service"
65
+ end
66
+
62
67
  end
@@ -59,3 +59,6 @@ module Fixtures
59
59
  COMPACT_PROTOCOL_TEST_STRUCT.set_byte_map = nil
60
60
  COMPACT_PROTOCOL_TEST_STRUCT.map_byte_map = nil
61
61
  end
62
+
63
+ $:.unshift File.join(File.dirname(__FILE__), *%w[gen-rb/flat])
64
+
@@ -53,6 +53,11 @@ describe 'Union' do
53
53
  union.should_not == nil
54
54
  end
55
55
 
56
+ it "should not be equal with an empty String" do
57
+ union = SpecNamespace::My_union.new
58
+ union.should_not == ''
59
+ end
60
+
56
61
  it "should not equate two different unions, i32 vs. string" do
57
62
  union = SpecNamespace::My_union.new(:integer32, 25)
58
63
  other_union = SpecNamespace::My_union.new(:some_characters, "blah!")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thrift
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2.0
4
+ version: 0.9.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-11-05 00:00:00.000000000 Z
12
+ date: 2015-09-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -138,12 +138,15 @@ extra_rdoc_files:
138
138
  - lib/thrift/core_ext/fixnum.rb
139
139
  - lib/thrift/core_ext.rb
140
140
  - lib/thrift/exceptions.rb
141
+ - lib/thrift/multiplexed_processor.rb
141
142
  - lib/thrift/processor.rb
142
143
  - lib/thrift/protocol/base_protocol.rb
143
144
  - lib/thrift/protocol/binary_protocol.rb
144
145
  - lib/thrift/protocol/binary_protocol_accelerated.rb
145
146
  - lib/thrift/protocol/compact_protocol.rb
146
147
  - lib/thrift/protocol/json_protocol.rb
148
+ - lib/thrift/protocol/multiplexed_protocol.rb
149
+ - lib/thrift/protocol/protocol_decorator.rb
147
150
  - lib/thrift/serializer/deserializer.rb
148
151
  - lib/thrift/serializer/serializer.rb
149
152
  - lib/thrift/server/base_server.rb
@@ -176,12 +179,15 @@ files:
176
179
  - lib/thrift/core_ext/fixnum.rb
177
180
  - lib/thrift/core_ext.rb
178
181
  - lib/thrift/exceptions.rb
182
+ - lib/thrift/multiplexed_processor.rb
179
183
  - lib/thrift/processor.rb
180
184
  - lib/thrift/protocol/base_protocol.rb
181
185
  - lib/thrift/protocol/binary_protocol.rb
182
186
  - lib/thrift/protocol/binary_protocol_accelerated.rb
183
187
  - lib/thrift/protocol/compact_protocol.rb
184
188
  - lib/thrift/protocol/json_protocol.rb
189
+ - lib/thrift/protocol/multiplexed_protocol.rb
190
+ - lib/thrift/protocol/protocol_decorator.rb
185
191
  - lib/thrift/serializer/deserializer.rb
186
192
  - lib/thrift/serializer/serializer.rb
187
193
  - lib/thrift/server/base_server.rb
@@ -210,6 +216,7 @@ files:
210
216
  - lib/thrift.rb
211
217
  - spec/base_protocol_spec.rb
212
218
  - spec/base_transport_spec.rb
219
+ - spec/BaseService.thrift
213
220
  - spec/binary_protocol_accelerated_spec.rb
214
221
  - spec/binary_protocol_spec.rb
215
222
  - spec/binary_protocol_spec_shared.rb
@@ -217,6 +224,8 @@ files:
217
224
  - spec/client_spec.rb
218
225
  - spec/compact_protocol_spec.rb
219
226
  - spec/exception_spec.rb
227
+ - spec/ExtendedService.thrift
228
+ - spec/flat_spec.rb
220
229
  - spec/http_client_spec.rb
221
230
  - spec/json_protocol_spec.rb
222
231
  - spec/namespaced_spec.rb
@@ -296,6 +305,7 @@ summary: Ruby bindings for Apache Thrift
296
305
  test_files:
297
306
  - spec/base_protocol_spec.rb
298
307
  - spec/base_transport_spec.rb
308
+ - spec/BaseService.thrift
299
309
  - spec/binary_protocol_accelerated_spec.rb
300
310
  - spec/binary_protocol_spec.rb
301
311
  - spec/binary_protocol_spec_shared.rb
@@ -303,6 +313,8 @@ test_files:
303
313
  - spec/client_spec.rb
304
314
  - spec/compact_protocol_spec.rb
305
315
  - spec/exception_spec.rb
316
+ - spec/ExtendedService.thrift
317
+ - spec/flat_spec.rb
306
318
  - spec/http_client_spec.rb
307
319
  - spec/json_protocol_spec.rb
308
320
  - spec/namespaced_spec.rb