class Protobuf::Descriptor::FileDescriptor

def build(proto, opt={})

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 proto_type

def proto_type
  'Google::Protobuf::FileDescriptorProto'
end

def unbuild(messages)

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