Sha256: 6308d265419531533ed95238cc8482dee9390d3953907480d354bece55254e55
Contents?: true
Size: 1.13 KB
Versions: 4
Compression:
Stored size: 1.13 KB
Contents
module Protobuf module Descriptor class FileDescriptor class << self def proto_type 'Google::Protobuf::FileDescriptorProto' end def build(proto, opt={}) mod = Object if package = proto.package and not package.empty? module_names = package.split '::' module_names.each do |module_name| mod = mod.const_set module_name, Module.new end end proto.message_type.each do |message_proto| Protobuf::Message.descriptor.build message_proto, :module => mod end proto.enum_type.each do |enum_proto| Protobuf::Enum.descriptor.build enum_proto, :module => mod end end def unbuild(messages) messages = [messages] unless messages.is_a? Array proto = Google::Protobuf::FileDescriptorProto.new proto.package = messages.first.to_s.split('::')[0..-2].join('::') if messages.first.to_s =~ /::/ messages.each do |message| message.descriptor.unbuild proto end proto end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems