module Google::Protobuf::Internal
Public Class Methods
fixup_descriptor(package, msg_names, enum_names)
click to toggle source
# File lib/google/protobuf.rb, line 111 def self.fixup_descriptor(package, msg_names, enum_names) if package.nil? package = self.infer_package(msg_names + enum_names) end nesting = NestingBuilder.new(msg_names, enum_names).build(package) return package, nesting end
infer_package(names)
click to toggle source
# File lib/google/protobuf.rb, line 57 def self.infer_package(names) # Package is longest common prefix ending in '.', if any. if not names.empty? min, max = names.minmax last_common_dot = nil min.size.times { |i| if min[i] != max[i] then break end if min[i] == ?. then last_common_dot = i end } if last_common_dot return min.slice(0, last_common_dot) end end nil end