| // Protocol Buffers - Google's data interchange format | |
| // Copyright 2014 Google Inc. All rights reserved. | |
| // | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file or at | |
| // https://developers.google.com/open-source/licenses/bsd | |
| package google; | |
| import com.google.protobuf.jruby.*; | |
| import java.io.IOException; | |
| import org.jruby.Ruby; | |
| import org.jruby.runtime.load.BasicLibraryService; | |
| public class ProtobufJavaService implements BasicLibraryService { | |
| @Override | |
| public boolean basicLoad(Ruby ruby) throws IOException { | |
| ruby.defineModule("Google"); | |
| /* | |
| * The order these happen in is important because we | |
| * save a static reference to some classes and they | |
| * need to exist before we try to save a reference to them | |
| */ | |
| RubyProtobuf.createProtobuf(ruby); | |
| RubyFileDescriptor.createRubyFileDescriptor(ruby); | |
| RubyEnumDescriptor.createRubyEnumDescriptor(ruby); | |
| RubyRepeatedField.createRubyRepeatedField(ruby); | |
| RubyFieldDescriptor.createRubyFieldDescriptor(ruby); | |
| RubyMap.createRubyMap(ruby); | |
| RubyOneofDescriptor.createRubyOneofDescriptor(ruby); | |
| RubyDescriptor.createRubyDescriptor(ruby); | |
| RubyMethodDescriptor.createRubyMethodDescriptor(ruby); | |
| RubyServiceDescriptor.createRubyServiceDescriptor(ruby); | |
| RubyDescriptorPool.createRubyDescriptorPool(ruby); | |
| return true; | |
| } | |
| } |