Skip to content

Commit d0604ed

Browse files
committed
don't modify file descriptor in code gen
1 parent 98c2477 commit d0604ed

File tree

8 files changed

+2151
-2219
lines changed

8 files changed

+2151
-2219
lines changed

lib/protobuf/code_generator.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
require 'active_support/core_ext/module/aliasing'
22
require 'protobuf/generators/file_generator'
33

4+
::Google::Protobuf::FieldDescriptorProto.module_eval do
5+
attr_writer :fully_qualified_name
6+
7+
def fully_qualified_name
8+
@fully_qualified_name || name
9+
end
10+
end
11+
412
module Protobuf
513
class CodeGenerator
614

lib/protobuf/generators/field_generator.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ def label
7979
end
8080

8181
def name
82-
@name ||= descriptor.name.to_sym.inspect
82+
@name ||= descriptor.fully_qualified_name.to_sym.inspect
8383
end
8484

8585
def number

lib/protobuf/generators/file_generator.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def unknown_extensions
5959
message_klass = modulize(message_name).safe_constantize
6060
if message_klass
6161
unknown_fields = fields.reject do |field|
62-
@known_messages[message_name] && message_klass.get_field(field.name, true)
62+
@known_messages[message_name] && message_klass.get_field(field.fully_qualified_name, true)
6363
end
6464
[message_name, unknown_fields]
6565
else
@@ -94,7 +94,7 @@ def map_extensions(descriptor, namespaces)
9494

9595
descriptor.extension.each do |field_descriptor|
9696
unless fully_qualified_token?(field_descriptor.name) && fully_qualified_namespace
97-
field_descriptor.name = "#{fully_qualified_namespace}.#{field_descriptor.name}"
97+
field_descriptor.fully_qualified_name = "#{fully_qualified_namespace}.#{field_descriptor.name}"
9898
end
9999
@extension_fields[field_descriptor.extendee] << field_descriptor
100100
end

spec/support/protos/enum.pb.rb

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -106,29 +106,29 @@ class ::Test::Resource < ::Protobuf::Message
106106
ZXBlYXRlZF9lbnVtcxgGIAMoDjIRLnRlc3QuQWxpYXNlZEVudW1SEmFsaWFz
107107
UmVwZWF0ZWRFbnVtcyoqCgxFbnVtVGVzdFR5cGUSCAoEWkVSTxAAEgcKA09O
108108
RRABEgcKA1RXTxACKjwKC0FsaWFzZWRFbnVtEgkKBVRIUkVFEAMSCAoEVFJF
109-
UxADEggKBEZPVVIQBBIKCgZDVUFUUk8QBBoCEAE6VQoiLnRlc3QuZXh0X290
110-
aGVyX2ZpbGVfZGVmaW5lZF9maWVsZBIOLnRlc3QuUmVzb3VyY2UYyAEgASgF
111-
UhhleHRPdGhlckZpbGVEZWZpbmVkRmllbGRKmAgKBhIEAAAkAQoICgEMEgMA
112-
ABIKCAoBAhIDAgANCgkKAgMAEgMDAB8KQwoCBQASBAcACwEyNyBUZXN0IGV4
113-
dGVuZGluZyBhbm90aGVyIG1lc3NhZ2UgZnJvbSBhbiBpbXBvcnRlZCBmaWxl
114-
LgoKCgoDBQABEgMHBREKCwoEBQACABIDCAILCgwKBQUAAgABEgMIAgYKDAoF
115-
BQACAAISAwgJCgoLCgQFAAIBEgMJAgoKDAoFBQACAQESAwkCBQoMCgUFAAIB
116-
AhIDCQgJCgsKBAUAAgISAwoCCgoMCgUFAAICARIDCgIFCgwKBQUAAgICEgMK
117-
CAkKGgoCBQESBA4AFgEaDiBVc2VzIGFsaWFzZXMKCgoKAwUBARIDDgUQCgoK
118-
AwUBAxIDDwIcCgsKBAUBAwISAw8CHAoLCgQFAQIAEgMRAg0KDAoFBQECAAES
119-
AxECBwoMCgUFAQIAAhIDEQsMCgsKBAUBAgESAxICDQoMCgUFAQIBARIDEgIG
120-
CgwKBQUBAgECEgMSCwwKCwoEBQECAhIDFAINCgwKBQUBAgIBEgMUAgYKDAoF
121-
BQECAgISAxQLDAoLCgQFAQIDEgMVAg0KDAoFBQECAwESAxUCCAoMCgUFAQID
122-
AhIDFQsMCgoKAgQAEgQYACABCgoKAwQAARIDGAgXCgsKBAQAAgASAxkCLQoM
123-
CgUEAAIABBIDGQIKCgwKBQQAAgAGEgMZCxcKDAoFBAACAAESAxkYKAoMCgUE
124-
AAIAAxIDGSssCgsKBAQAAgESAxoCNwoMCgUEAAIBBBIDGgIKCgwKBQQAAgEG
125-
EgMaCxcKDAoFBAACAQESAxoYJAoMCgUEAAIBAxIDGicoCgwKBQQAAgEIEgMa
126-
KTYKDAoFBAACAQcSAxoyNQoLCgQEAAICEgMbAisKDAoFBAACAgQSAxsCCgoM
127-
CgUEAAICBhIDGwsXCgwKBQQAAgIBEgMbGCYKDAoFBAACAgMSAxspKgoLCgQE
128-
AAIDEgMdAjIKDAoFBAACAwQSAx0CCgoMCgUEAAIDBhIDHQsWCgwKBQQAAgMB
129-
EgMdFy0KDAoFBAACAwMSAx0wMQoLCgQEAAIEEgMeAj8KDAoFBAACBAQSAx4C
130-
CgoMCgUEAAIEBhIDHgsWCgwKBQQAAgQBEgMeFykKDAoFBAACBAMSAx4sLQoM
131-
CgUEAAIECBIDHi4+CgwKBQQAAgQHEgMeNz0KCwoEBAACBRIDHwIwCgwKBQQA
132-
AgUEEgMfAgoKDAoFBAACBQYSAx8LFgoMCgUEAAIFARIDHxcrCgwKBQQAAgUD
133-
EgMfLi8KCQoBBxIEIgAkAQoJCgIHABIDIwI0CgoKAwcAAhIDIgcUCgoKAwcA
134-
BBIDIwIKCgoKAwcABRIDIwsQCgoKAwcAARIDIxEtCgoKAwcAAxIDIzAz
109+
UxADEggKBEZPVVIQBBIKCgZDVUFUUk8QBBoCEAE6TwocZXh0X290aGVyX2Zp
110+
bGVfZGVmaW5lZF9maWVsZBIOLnRlc3QuUmVzb3VyY2UYyAEgASgFUhhleHRP
111+
dGhlckZpbGVEZWZpbmVkRmllbGRKmAgKBhIEAAAkAQoICgEMEgMAABIKCAoB
112+
AhIDAgANCgkKAgMAEgMDAB8KQwoCBQASBAcACwEyNyBUZXN0IGV4dGVuZGlu
113+
ZyBhbm90aGVyIG1lc3NhZ2UgZnJvbSBhbiBpbXBvcnRlZCBmaWxlLgoKCgoD
114+
BQABEgMHBREKCwoEBQACABIDCAILCgwKBQUAAgABEgMIAgYKDAoFBQACAAIS
115+
AwgJCgoLCgQFAAIBEgMJAgoKDAoFBQACAQESAwkCBQoMCgUFAAIBAhIDCQgJ
116+
CgsKBAUAAgISAwoCCgoMCgUFAAICARIDCgIFCgwKBQUAAgICEgMKCAkKGgoC
117+
BQESBA4AFgEaDiBVc2VzIGFsaWFzZXMKCgoKAwUBARIDDgUQCgoKAwUBAxID
118+
DwIcCgsKBAUBAwISAw8CHAoLCgQFAQIAEgMRAg0KDAoFBQECAAESAxECBwoM
119+
CgUFAQIAAhIDEQsMCgsKBAUBAgESAxICDQoMCgUFAQIBARIDEgIGCgwKBQUB
120+
AgECEgMSCwwKCwoEBQECAhIDFAINCgwKBQUBAgIBEgMUAgYKDAoFBQECAgIS
121+
AxQLDAoLCgQFAQIDEgMVAg0KDAoFBQECAwESAxUCCAoMCgUFAQIDAhIDFQsM
122+
CgoKAgQAEgQYACABCgoKAwQAARIDGAgXCgsKBAQAAgASAxkCLQoMCgUEAAIA
123+
BBIDGQIKCgwKBQQAAgAGEgMZCxcKDAoFBAACAAESAxkYKAoMCgUEAAIAAxID
124+
GSssCgsKBAQAAgESAxoCNwoMCgUEAAIBBBIDGgIKCgwKBQQAAgEGEgMaCxcK
125+
DAoFBAACAQESAxoYJAoMCgUEAAIBAxIDGicoCgwKBQQAAgEIEgMaKTYKDAoF
126+
BAACAQcSAxoyNQoLCgQEAAICEgMbAisKDAoFBAACAgQSAxsCCgoMCgUEAAIC
127+
BhIDGwsXCgwKBQQAAgIBEgMbGCYKDAoFBAACAgMSAxspKgoLCgQEAAIDEgMd
128+
AjIKDAoFBAACAwQSAx0CCgoMCgUEAAIDBhIDHQsWCgwKBQQAAgMBEgMdFy0K
129+
DAoFBAACAwMSAx0wMQoLCgQEAAIEEgMeAj8KDAoFBAACBAQSAx4CCgoMCgUE
130+
AAIEBhIDHgsWCgwKBQQAAgQBEgMeFykKDAoFBAACBAMSAx4sLQoMCgUEAAIE
131+
CBIDHi4+CgwKBQQAAgQHEgMeNz0KCwoEBAACBRIDHwIwCgwKBQQAAgUEEgMf
132+
AgoKDAoFBAACBQYSAx8LFgoMCgUEAAIFARIDHxcrCgwKBQQAAgUDEgMfLi8K
133+
CQoBBxIEIgAkAQoJCgIHABIDIwI0CgoKAwcAAhIDIgcUCgoKAwcABBIDIwIK
134+
CgoKAwcABRIDIwsQCgoKAwcAARIDIxEtCgoKAwcAAxIDIzAz

0 commit comments

Comments
 (0)