protobuf 3.10.9 → 3.10.10
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.
- checksums.yaml +4 -4
- data/.circleci/config.yml +106 -22
- data/.rubocop.yml +8 -0
- data/.rubocop_todo.yml +6 -0
- data/CHANGES.md +31 -0
- data/Gemfile +9 -10
- data/lib/protobuf/code_generator.rb +17 -5
- data/lib/protobuf/decoder.rb +33 -2
- data/lib/protobuf/field/base_field.rb +13 -5
- data/lib/protobuf/field/base_field_object_definitions.rb +40 -6
- data/lib/protobuf/field/bool_field.rb +2 -1
- data/lib/protobuf/field/int32_field.rb +12 -0
- data/lib/protobuf/field/sint32_field.rb +10 -0
- data/lib/protobuf/field/uint32_field.rb +9 -0
- data/lib/protobuf/generators/printable.rb +10 -1
- data/lib/protobuf/message/serialization.rb +4 -4
- data/lib/protobuf/railtie.rb +48 -0
- data/lib/protobuf/rpc/application_service.rb +12 -0
- data/lib/protobuf/rpc/service.rb +7 -3
- data/lib/protobuf/rpc/service_filters.rb +35 -5
- data/lib/protobuf/service_loader.rb +21 -0
- data/lib/protobuf/version.rb +1 -1
- data/lib/protobuf.rb +5 -0
- data/protobuf.gemspec +6 -3
- data/spec/encoding/packed_decoding_spec.rb +233 -0
- data/spec/encoding/wire_compat_decoding_spec.rb +113 -0
- data/spec/functional/railtie_boot_spec.rb +84 -0
- data/spec/lib/protobuf/field/bool_field_spec.rb +21 -0
- data/spec/lib/protobuf/generators/service_generator_spec.rb +23 -0
- data/spec/lib/protobuf/railtie_spec.rb +86 -0
- data/spec/lib/protobuf/rpc/application_service_spec.rb +57 -0
- data/spec/lib/protobuf/rpc/service_filters_inheritance_spec.rb +105 -0
- data/spec/lib/protobuf/service_loader_spec.rb +88 -0
- metadata +51 -9
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'protobuf/railtie'
|
|
3
|
+
|
|
4
|
+
RSpec.describe Protobuf::Railtie do
|
|
5
|
+
let(:config) do
|
|
6
|
+
double('config', :protobuf => ::ActiveSupport::OrderedOptions.new)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
let(:app) { double('app', :config => config, :root => Pathname.new('/srv/app')) }
|
|
10
|
+
|
|
11
|
+
describe '.services_path' do
|
|
12
|
+
it 'is nil when not configured (opt-in)' do
|
|
13
|
+
expect(described_class.services_path(app)).to be_nil
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it 'is nil when configured as an empty string' do
|
|
17
|
+
config.protobuf.services_path = ''
|
|
18
|
+
expect(described_class.services_path(app)).to be_nil
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'honors an absolute path' do
|
|
22
|
+
config.protobuf.services_path = '/custom/services'
|
|
23
|
+
expect(described_class.services_path(app)).to eq('/custom/services')
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'resolves a relative path against the app root' do
|
|
27
|
+
config.protobuf.services_path = 'app/services/rpc'
|
|
28
|
+
expect(described_class.services_path(app)).to eq('/srv/app/app/services/rpc')
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it 'accepts a Pathname' do
|
|
32
|
+
config.protobuf.services_path = Pathname.new('/custom/services')
|
|
33
|
+
expect(described_class.services_path(app)).to eq('/custom/services')
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
describe '.load_services' do
|
|
38
|
+
let(:loader) { double('autoloader') }
|
|
39
|
+
|
|
40
|
+
before do
|
|
41
|
+
allow(described_class).to receive(:services_path).and_return('/svc')
|
|
42
|
+
allow(::File).to receive(:directory?).and_call_original
|
|
43
|
+
allow(::File).to receive(:directory?).with('/svc').and_return(true)
|
|
44
|
+
stub_const('Rails', double('Rails', :autoloaders => double(:main => loader)))
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it 'does nothing when no path is configured' do
|
|
48
|
+
allow(described_class).to receive(:services_path).and_return(nil)
|
|
49
|
+
expect(::Protobuf::ServiceLoader).not_to receive(:load_services)
|
|
50
|
+
described_class.load_services(app)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it 'does nothing when the directory is missing' do
|
|
54
|
+
allow(::File).to receive(:directory?).with('/svc').and_return(false)
|
|
55
|
+
expect(::Protobuf::ServiceLoader).not_to receive(:load_services)
|
|
56
|
+
described_class.load_services(app)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
it 'eager-loads through the autoloader when eager_load_dir is available' do
|
|
60
|
+
allow(loader).to receive(:respond_to?).with(:eager_load_dir).and_return(true)
|
|
61
|
+
expect(loader).to receive(:eager_load_dir).with('/svc')
|
|
62
|
+
expect(::Protobuf::ServiceLoader).not_to receive(:load_services)
|
|
63
|
+
described_class.load_services(app)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
it 'falls back to ServiceLoader when eager_load_dir is unavailable' do
|
|
67
|
+
allow(loader).to receive(:respond_to?).with(:eager_load_dir).and_return(false)
|
|
68
|
+
expect(::Protobuf::ServiceLoader).to receive(:load_services).with('/svc')
|
|
69
|
+
described_class.load_services(app)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
it 'falls back to ServiceLoader with the classic autoloader (no main loader)' do
|
|
73
|
+
stub_const('Rails', double('Rails', :autoloaders => double(:main => nil)))
|
|
74
|
+
expect(::Protobuf::ServiceLoader).to receive(:load_services).with('/svc')
|
|
75
|
+
described_class.load_services(app)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
it 'falls back to ServiceLoader when the path is not autoloader-managed' do
|
|
79
|
+
stub_const('Zeitwerk::Error', Class.new(StandardError))
|
|
80
|
+
allow(loader).to receive(:respond_to?).with(:eager_load_dir).and_return(true)
|
|
81
|
+
allow(loader).to receive(:eager_load_dir).and_raise(::Zeitwerk::Error)
|
|
82
|
+
expect(::Protobuf::ServiceLoader).to receive(:load_services).with('/svc')
|
|
83
|
+
described_class.load_services(app)
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require SUPPORT_PATH.join('resource_service')
|
|
3
|
+
|
|
4
|
+
RSpec.describe Protobuf::Rpc::ApplicationService do
|
|
5
|
+
it 'is a subclass of Protobuf::Rpc::Service' do
|
|
6
|
+
expect(described_class.ancestors).to include(Protobuf::Rpc::Service)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it 'inherits Service class methods (host, port, configure)' do
|
|
10
|
+
expect(described_class).to respond_to(:host, :port, :configure, :rpc, :rpcs)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe 'integration with implemented_services' do
|
|
14
|
+
let!(:app_subclass) do
|
|
15
|
+
Class.new(described_class) do
|
|
16
|
+
def self.name
|
|
17
|
+
'ImplementedAppSubclassService'
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
rpc :find, Test::ResourceFindRequest, Test::Resource
|
|
21
|
+
def find; end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
let!(:abstract_subclass) do
|
|
26
|
+
Class.new(described_class) do
|
|
27
|
+
def self.name
|
|
28
|
+
'AbstractAppSubclassService'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
rpc :find, Test::ResourceFindRequest, Test::Resource
|
|
32
|
+
# no #find method defined -> not "implemented"
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
after do
|
|
37
|
+
# `descendants` holds these classes until GC, which can run late. Remove
|
|
38
|
+
# the rpc method so other specs do not see this class as implemented.
|
|
39
|
+
app_subclass.send(:remove_method, :find)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it 'is discovered by Service.implemented_services (descendants traversal)' do
|
|
43
|
+
names = Protobuf::Rpc::Service.implemented_services
|
|
44
|
+
expect(names).to include('ImplementedAppSubclassService')
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it 'omits subclasses with no implemented rpc methods' do
|
|
48
|
+
names = Protobuf::Rpc::Service.implemented_services
|
|
49
|
+
expect(names).not_to include('AbstractAppSubclassService')
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it 'does not list the ApplicationService base itself' do
|
|
53
|
+
names = Protobuf::Rpc::Service.implemented_services
|
|
54
|
+
expect(names).not_to include(described_class.name)
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
RSpec.describe 'Protobuf::Rpc::ServiceFilters inheritance' do
|
|
4
|
+
let(:parent) do
|
|
5
|
+
Class.new do
|
|
6
|
+
include Protobuf::Rpc::ServiceFilters
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def callables(klass, type)
|
|
11
|
+
klass.filters[type].map { |filter| filter[:callable] }
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it 'copies the parent filters to a new subclass' do
|
|
15
|
+
parent.before_filter :authenticate
|
|
16
|
+
parent.around_filter :instrument
|
|
17
|
+
child = Class.new(parent)
|
|
18
|
+
|
|
19
|
+
expect(callables(child, :before)).to eq([:authenticate])
|
|
20
|
+
expect(callables(child, :around)).to eq([:instrument])
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it 'does not add subclass filters to the parent' do
|
|
24
|
+
child = Class.new(parent)
|
|
25
|
+
child.before_filter :child_only
|
|
26
|
+
|
|
27
|
+
expect(callables(parent, :before)).to eq([])
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it 'adds a filter that the parent defines later to existing subclasses' do
|
|
31
|
+
child = Class.new(parent)
|
|
32
|
+
grandchild = Class.new(child)
|
|
33
|
+
child.before_filter :child_only
|
|
34
|
+
parent.before_filter :shared
|
|
35
|
+
|
|
36
|
+
expect(callables(child, :before)).to eq([:child_only, :shared])
|
|
37
|
+
expect(callables(grandchild, :before)).to eq([:child_only, :shared])
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it 'does not add the same filter two times to a subclass' do
|
|
41
|
+
parent.before_filter :authenticate
|
|
42
|
+
child = Class.new(parent)
|
|
43
|
+
child.before_filter :authenticate
|
|
44
|
+
parent.before_filter :authenticate
|
|
45
|
+
|
|
46
|
+
expect(callables(child, :before)).to eq([:authenticate])
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
describe 'rescue_from' do
|
|
50
|
+
let(:parent_handler) { ->(_service, _ex) {} }
|
|
51
|
+
let(:child_handler) { ->(_service, _ex) {} }
|
|
52
|
+
|
|
53
|
+
it 'copies the parent rescue filters to a new subclass' do
|
|
54
|
+
parent.rescue_from(ArgumentError, :with => parent_handler)
|
|
55
|
+
child = Class.new(parent)
|
|
56
|
+
|
|
57
|
+
expect(child.rescue_filters).to eq(ArgumentError => parent_handler)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
it 'adds a rescue filter that the parent defines later to existing subclasses' do
|
|
61
|
+
child = Class.new(parent)
|
|
62
|
+
parent.rescue_from(ArgumentError, :with => parent_handler)
|
|
63
|
+
|
|
64
|
+
expect(child.rescue_filters).to eq(ArgumentError => parent_handler)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
it 'keeps a handler that the subclass defined for the same exception class' do
|
|
68
|
+
child = Class.new(parent)
|
|
69
|
+
child.rescue_from(ArgumentError, :with => child_handler)
|
|
70
|
+
parent.rescue_from(ArgumentError, :with => parent_handler)
|
|
71
|
+
|
|
72
|
+
expect(child.rescue_filters[ArgumentError]).to eq(child_handler)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
it 'replaces an inherited handler when the parent changes it' do
|
|
76
|
+
parent.rescue_from(ArgumentError, :with => child_handler)
|
|
77
|
+
child = Class.new(parent)
|
|
78
|
+
parent.rescue_from(ArgumentError, :with => parent_handler)
|
|
79
|
+
|
|
80
|
+
expect(child.rescue_filters[ArgumentError]).to eq(parent_handler)
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
it 'runs filters from Protobuf::Rpc::ApplicationService on a subclass' do
|
|
85
|
+
base = Class.new(Protobuf::Rpc::ApplicationService) do
|
|
86
|
+
before_filter :mark
|
|
87
|
+
|
|
88
|
+
def mark
|
|
89
|
+
@marked = true
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
service = Class.new(base) do
|
|
93
|
+
def marked?
|
|
94
|
+
@marked
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def endpoint; end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
instance = service.allocate
|
|
101
|
+
instance.__send__(:run_filters, :endpoint)
|
|
102
|
+
|
|
103
|
+
expect(instance).to be_marked
|
|
104
|
+
end
|
|
105
|
+
end
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'tmpdir'
|
|
3
|
+
require 'fileutils'
|
|
4
|
+
require 'protobuf/service_loader'
|
|
5
|
+
|
|
6
|
+
RSpec.describe Protobuf::ServiceLoader do
|
|
7
|
+
describe '.load_services' do
|
|
8
|
+
around do |example|
|
|
9
|
+
Dir.mktmpdir do |dir|
|
|
10
|
+
@services_dir = dir
|
|
11
|
+
example.run
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
let(:tracker) { [] }
|
|
16
|
+
|
|
17
|
+
before do
|
|
18
|
+
# Expose the tracker globally so the required files can reach it.
|
|
19
|
+
$service_loader_spec_tracker = tracker # rubocop:disable Style/GlobalVars
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
after do
|
|
23
|
+
$service_loader_spec_tracker = nil # rubocop:disable Style/GlobalVars
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def write_service(relative_path, marker)
|
|
27
|
+
full = File.join(@services_dir, relative_path)
|
|
28
|
+
FileUtils.mkdir_p(File.dirname(full))
|
|
29
|
+
File.write(full, "$service_loader_spec_tracker << #{marker.inspect}\n")
|
|
30
|
+
full
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it 'returns an empty array when path is nil' do
|
|
34
|
+
expect(described_class.load_services(nil)).to eq([])
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it 'returns an empty array when directory does not exist' do
|
|
38
|
+
expect(described_class.load_services('/no/such/dir/here')).to eq([])
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it 'loads every .rb file under the path' do
|
|
42
|
+
write_service('foo_service.rb', 'foo')
|
|
43
|
+
write_service('nested/bar_service.rb', 'bar')
|
|
44
|
+
write_service('helper.rb', 'helper')
|
|
45
|
+
write_service('notes.txt', 'nope')
|
|
46
|
+
|
|
47
|
+
described_class.load_services(@services_dir)
|
|
48
|
+
|
|
49
|
+
expect(tracker).to contain_exactly('foo', 'bar', 'helper')
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it 'loads files in deterministic (sorted) order' do
|
|
53
|
+
write_service('b_service.rb', 'b')
|
|
54
|
+
write_service('a_service.rb', 'a')
|
|
55
|
+
write_service('c_service.rb', 'c')
|
|
56
|
+
|
|
57
|
+
described_class.load_services(@services_dir)
|
|
58
|
+
|
|
59
|
+
expect(tracker).to eq(%w[a b c])
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
it 'does not execute a file a second time on later calls' do
|
|
63
|
+
write_service('once_service.rb', 'one')
|
|
64
|
+
|
|
65
|
+
described_class.load_services(@services_dir)
|
|
66
|
+
described_class.load_services(@services_dir)
|
|
67
|
+
|
|
68
|
+
expect(tracker).to eq(%w[one])
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
it 'accepts a Pathname for the path' do
|
|
72
|
+
write_service('path_service.rb', 'path')
|
|
73
|
+
|
|
74
|
+
described_class.load_services(Pathname.new(@services_dir))
|
|
75
|
+
|
|
76
|
+
expect(tracker).to eq(['path'])
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
it 'honors a custom glob' do
|
|
80
|
+
write_service('foo_handler.rb', 'handler')
|
|
81
|
+
write_service('bar_service.rb', 'service')
|
|
82
|
+
|
|
83
|
+
described_class.load_services(@services_dir, '**/*_handler.rb')
|
|
84
|
+
|
|
85
|
+
expect(tracker).to eq(['handler'])
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
metadata
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: protobuf
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.10.
|
|
4
|
+
version: 3.10.10
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- BJ Neilsen
|
|
8
8
|
- Brandon Dewitt
|
|
9
9
|
- Devin Christensen
|
|
10
10
|
- Adam Hutchison
|
|
11
|
-
autorequire:
|
|
12
11
|
bindir: bin
|
|
13
12
|
cert_chain: []
|
|
14
|
-
date:
|
|
13
|
+
date: 2026-11-05 00:00:00.000000000 Z
|
|
15
14
|
dependencies:
|
|
16
15
|
- !ruby/object:Gem::Dependency
|
|
17
16
|
name: activesupport
|
|
@@ -19,14 +18,14 @@ dependencies:
|
|
|
19
18
|
requirements:
|
|
20
19
|
- - ">="
|
|
21
20
|
- !ruby/object:Gem::Version
|
|
22
|
-
version: '
|
|
21
|
+
version: '6.0'
|
|
23
22
|
type: :runtime
|
|
24
23
|
prerelease: false
|
|
25
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
26
25
|
requirements:
|
|
27
26
|
- - ">="
|
|
28
27
|
- !ruby/object:Gem::Version
|
|
29
|
-
version: '
|
|
28
|
+
version: '6.0'
|
|
30
29
|
- !ruby/object:Gem::Dependency
|
|
31
30
|
name: middleware
|
|
32
31
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -69,6 +68,20 @@ dependencies:
|
|
|
69
68
|
- - ">="
|
|
70
69
|
- !ruby/object:Gem::Version
|
|
71
70
|
version: '0'
|
|
71
|
+
- !ruby/object:Gem::Dependency
|
|
72
|
+
name: benchmark
|
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
|
74
|
+
requirements:
|
|
75
|
+
- - ">="
|
|
76
|
+
- !ruby/object:Gem::Version
|
|
77
|
+
version: '0'
|
|
78
|
+
type: :development
|
|
79
|
+
prerelease: false
|
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
81
|
+
requirements:
|
|
82
|
+
- - ">="
|
|
83
|
+
- !ruby/object:Gem::Version
|
|
84
|
+
version: '0'
|
|
72
85
|
- !ruby/object:Gem::Dependency
|
|
73
86
|
name: benchmark-ips
|
|
74
87
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -97,6 +110,20 @@ dependencies:
|
|
|
97
110
|
- - ">="
|
|
98
111
|
- !ruby/object:Gem::Version
|
|
99
112
|
version: '0'
|
|
113
|
+
- !ruby/object:Gem::Dependency
|
|
114
|
+
name: railties
|
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
|
116
|
+
requirements:
|
|
117
|
+
- - ">="
|
|
118
|
+
- !ruby/object:Gem::Version
|
|
119
|
+
version: '6.0'
|
|
120
|
+
type: :development
|
|
121
|
+
prerelease: false
|
|
122
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
123
|
+
requirements:
|
|
124
|
+
- - ">="
|
|
125
|
+
- !ruby/object:Gem::Version
|
|
126
|
+
version: '6.0'
|
|
100
127
|
- !ruby/object:Gem::Dependency
|
|
101
128
|
name: rake
|
|
102
129
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -258,6 +285,8 @@ files:
|
|
|
258
285
|
- lib/protobuf/message/fields.rb
|
|
259
286
|
- lib/protobuf/message/serialization.rb
|
|
260
287
|
- lib/protobuf/optionable.rb
|
|
288
|
+
- lib/protobuf/railtie.rb
|
|
289
|
+
- lib/protobuf/rpc/application_service.rb
|
|
261
290
|
- lib/protobuf/rpc/buffer.rb
|
|
262
291
|
- lib/protobuf/rpc/client.rb
|
|
263
292
|
- lib/protobuf/rpc/connectors/base.rb
|
|
@@ -291,6 +320,7 @@ files:
|
|
|
291
320
|
- lib/protobuf/rpc/service_dispatcher.rb
|
|
292
321
|
- lib/protobuf/rpc/service_filters.rb
|
|
293
322
|
- lib/protobuf/rpc/stat.rb
|
|
323
|
+
- lib/protobuf/service_loader.rb
|
|
294
324
|
- lib/protobuf/socket.rb
|
|
295
325
|
- lib/protobuf/tasks.rb
|
|
296
326
|
- lib/protobuf/tasks/compile.rake
|
|
@@ -309,8 +339,11 @@ files:
|
|
|
309
339
|
- spec/bin/protoc-gen-ruby_spec.rb
|
|
310
340
|
- spec/encoding/all_types_spec.rb
|
|
311
341
|
- spec/encoding/extreme_values_spec.rb
|
|
342
|
+
- spec/encoding/packed_decoding_spec.rb
|
|
343
|
+
- spec/encoding/wire_compat_decoding_spec.rb
|
|
312
344
|
- spec/functional/class_inheritance_spec.rb
|
|
313
345
|
- spec/functional/code_generator_spec.rb
|
|
346
|
+
- spec/functional/railtie_boot_spec.rb
|
|
314
347
|
- spec/functional/socket_server_spec.rb
|
|
315
348
|
- spec/functional/zmq_server_spec.rb
|
|
316
349
|
- spec/lib/protobuf/cli_spec.rb
|
|
@@ -345,6 +378,8 @@ files:
|
|
|
345
378
|
- spec/lib/protobuf/lifecycle_spec.rb
|
|
346
379
|
- spec/lib/protobuf/message_spec.rb
|
|
347
380
|
- spec/lib/protobuf/optionable_spec.rb
|
|
381
|
+
- spec/lib/protobuf/railtie_spec.rb
|
|
382
|
+
- spec/lib/protobuf/rpc/application_service_spec.rb
|
|
348
383
|
- spec/lib/protobuf/rpc/client_spec.rb
|
|
349
384
|
- spec/lib/protobuf/rpc/connectors/base_spec.rb
|
|
350
385
|
- spec/lib/protobuf/rpc/connectors/ping_spec.rb
|
|
@@ -360,9 +395,11 @@ files:
|
|
|
360
395
|
- spec/lib/protobuf/rpc/servers/zmq/worker_spec.rb
|
|
361
396
|
- spec/lib/protobuf/rpc/service_directory_spec.rb
|
|
362
397
|
- spec/lib/protobuf/rpc/service_dispatcher_spec.rb
|
|
398
|
+
- spec/lib/protobuf/rpc/service_filters_inheritance_spec.rb
|
|
363
399
|
- spec/lib/protobuf/rpc/service_filters_spec.rb
|
|
364
400
|
- spec/lib/protobuf/rpc/service_spec.rb
|
|
365
401
|
- spec/lib/protobuf/rpc/stat_spec.rb
|
|
402
|
+
- spec/lib/protobuf/service_loader_spec.rb
|
|
366
403
|
- spec/lib/protobuf/varint_spec.rb
|
|
367
404
|
- spec/lib/protobuf_spec.rb
|
|
368
405
|
- spec/spec_helper.rb
|
|
@@ -401,7 +438,6 @@ homepage: https://github.com/localshred/protobuf
|
|
|
401
438
|
licenses:
|
|
402
439
|
- MIT
|
|
403
440
|
metadata: {}
|
|
404
|
-
post_install_message:
|
|
405
441
|
rdoc_options: []
|
|
406
442
|
require_paths:
|
|
407
443
|
- lib
|
|
@@ -409,15 +445,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
409
445
|
requirements:
|
|
410
446
|
- - ">="
|
|
411
447
|
- !ruby/object:Gem::Version
|
|
412
|
-
version: '
|
|
448
|
+
version: '3.1'
|
|
413
449
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
414
450
|
requirements:
|
|
415
451
|
- - ">="
|
|
416
452
|
- !ruby/object:Gem::Version
|
|
417
453
|
version: '0'
|
|
418
454
|
requirements: []
|
|
419
|
-
rubygems_version: 3.
|
|
420
|
-
signing_key:
|
|
455
|
+
rubygems_version: 3.6.9
|
|
421
456
|
specification_version: 4
|
|
422
457
|
summary: Google Protocol Buffers serialization and RPC implementation for Ruby.
|
|
423
458
|
test_files:
|
|
@@ -425,8 +460,11 @@ test_files:
|
|
|
425
460
|
- spec/bin/protoc-gen-ruby_spec.rb
|
|
426
461
|
- spec/encoding/all_types_spec.rb
|
|
427
462
|
- spec/encoding/extreme_values_spec.rb
|
|
463
|
+
- spec/encoding/packed_decoding_spec.rb
|
|
464
|
+
- spec/encoding/wire_compat_decoding_spec.rb
|
|
428
465
|
- spec/functional/class_inheritance_spec.rb
|
|
429
466
|
- spec/functional/code_generator_spec.rb
|
|
467
|
+
- spec/functional/railtie_boot_spec.rb
|
|
430
468
|
- spec/functional/socket_server_spec.rb
|
|
431
469
|
- spec/functional/zmq_server_spec.rb
|
|
432
470
|
- spec/lib/protobuf/cli_spec.rb
|
|
@@ -461,6 +499,8 @@ test_files:
|
|
|
461
499
|
- spec/lib/protobuf/lifecycle_spec.rb
|
|
462
500
|
- spec/lib/protobuf/message_spec.rb
|
|
463
501
|
- spec/lib/protobuf/optionable_spec.rb
|
|
502
|
+
- spec/lib/protobuf/railtie_spec.rb
|
|
503
|
+
- spec/lib/protobuf/rpc/application_service_spec.rb
|
|
464
504
|
- spec/lib/protobuf/rpc/client_spec.rb
|
|
465
505
|
- spec/lib/protobuf/rpc/connectors/base_spec.rb
|
|
466
506
|
- spec/lib/protobuf/rpc/connectors/ping_spec.rb
|
|
@@ -476,9 +516,11 @@ test_files:
|
|
|
476
516
|
- spec/lib/protobuf/rpc/servers/zmq/worker_spec.rb
|
|
477
517
|
- spec/lib/protobuf/rpc/service_directory_spec.rb
|
|
478
518
|
- spec/lib/protobuf/rpc/service_dispatcher_spec.rb
|
|
519
|
+
- spec/lib/protobuf/rpc/service_filters_inheritance_spec.rb
|
|
479
520
|
- spec/lib/protobuf/rpc/service_filters_spec.rb
|
|
480
521
|
- spec/lib/protobuf/rpc/service_spec.rb
|
|
481
522
|
- spec/lib/protobuf/rpc/stat_spec.rb
|
|
523
|
+
- spec/lib/protobuf/service_loader_spec.rb
|
|
482
524
|
- spec/lib/protobuf/varint_spec.rb
|
|
483
525
|
- spec/lib/protobuf_spec.rb
|
|
484
526
|
- spec/spec_helper.rb
|