protobuf 2.8.0.beta9 → 2.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (204) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +0 -1
  3. data/{UPGRADING.md → CHANGES.md} +20 -12
  4. data/LICENSE.txt +14 -0
  5. data/README.md +60 -74
  6. data/bin/protoc-gen-ruby +26 -0
  7. data/bin/rprotoc +4 -58
  8. data/lib/protobuf.rb +15 -13
  9. data/lib/protobuf/code_generator.rb +41 -0
  10. data/lib/protobuf/descriptors/google/protobuf/compiler/plugin.pb.rb +51 -0
  11. data/lib/protobuf/descriptors/google/protobuf/descriptor.pb.rb +248 -0
  12. data/lib/protobuf/field/base_field.rb +0 -1
  13. data/lib/protobuf/field/bytes_field.rb +1 -1
  14. data/lib/protobuf/field/message_field.rb +2 -4
  15. data/lib/protobuf/field/varint_field.rb +4 -7
  16. data/lib/protobuf/generators/base.rb +71 -0
  17. data/lib/protobuf/generators/enum_generator.rb +31 -0
  18. data/lib/protobuf/generators/extension_generator.rb +28 -0
  19. data/lib/protobuf/generators/field_generator.rb +132 -0
  20. data/lib/protobuf/generators/file_generator.rb +140 -0
  21. data/lib/protobuf/generators/group_generator.rb +113 -0
  22. data/lib/protobuf/generators/message_generator.rb +99 -0
  23. data/lib/protobuf/generators/printable.rb +161 -0
  24. data/lib/protobuf/generators/service_generator.rb +27 -0
  25. data/lib/protobuf/lifecycle.rb +7 -3
  26. data/lib/protobuf/message.rb +51 -34
  27. data/lib/protobuf/rpc/connectors/common.rb +4 -6
  28. data/lib/protobuf/rpc/server.rb +1 -1
  29. data/lib/protobuf/rpc/servers/zmq/server.rb +2 -2
  30. data/lib/protobuf/rpc/servers/zmq/worker.rb +2 -2
  31. data/lib/protobuf/rpc/service.rb +3 -3
  32. data/lib/protobuf/rpc/service_directory.rb +24 -12
  33. data/lib/protobuf/version.rb +1 -1
  34. data/proto/google/protobuf/compiler/plugin.proto +147 -0
  35. data/proto/google/protobuf/descriptor.proto +620 -0
  36. data/protobuf.gemspec +12 -21
  37. data/spec/bin/protoc-gen-ruby_spec.rb +18 -0
  38. data/spec/data/data.bin +3 -0
  39. data/{test/data/unk.png → spec/data/types.bin} +0 -0
  40. data/spec/encoding/all_types_spec.rb +91 -0
  41. data/spec/encoding/extreme_values_spec.rb +0 -0
  42. data/spec/lib/protobuf/code_generator_spec.rb +60 -0
  43. data/spec/lib/protobuf/generators/base_spec.rb +87 -0
  44. data/spec/lib/protobuf/generators/enum_generator_spec.rb +45 -0
  45. data/spec/lib/protobuf/generators/extension_generator_spec.rb +43 -0
  46. data/spec/lib/protobuf/generators/field_generator_spec.rb +99 -0
  47. data/spec/lib/protobuf/generators/file_generator_spec.rb +29 -0
  48. data/spec/lib/protobuf/generators/message_generator_spec.rb +0 -0
  49. data/spec/lib/protobuf/generators/service_generator_spec.rb +43 -0
  50. data/spec/lib/protobuf/lifecycle_spec.rb +31 -1
  51. data/spec/lib/protobuf/logger_spec.rb +5 -0
  52. data/spec/lib/protobuf/message_spec.rb +22 -8
  53. data/spec/lib/protobuf/rpc/connectors/common_spec.rb +1 -1
  54. data/spec/lib/protobuf/rpc/service_directory_spec.rb +45 -7
  55. data/spec/lib/protobuf/rpc/service_spec.rb +3 -3
  56. data/spec/spec_helper.rb +15 -16
  57. data/spec/support/test/all_types.data.bin +0 -0
  58. data/spec/support/test/all_types.data.txt +119 -0
  59. data/spec/support/test/defaults.pb.rb +25 -0
  60. data/spec/support/test/defaults.proto +9 -0
  61. data/spec/support/test/enum.pb.rb +10 -8
  62. data/spec/support/test/extended.pb.rb +5 -3
  63. data/spec/support/test/extreme_values.data.bin +0 -0
  64. data/spec/support/test/google_unittest.pb.rb +543 -0
  65. data/spec/support/test/google_unittest.proto +713 -0
  66. data/spec/support/test/google_unittest_import.pb.rb +37 -0
  67. data/{ext/protobuf-2.4.1/src/google/protobuf/io/package_info.h → spec/support/test/google_unittest_import.proto} +27 -17
  68. data/spec/support/test/google_unittest_import_public.pb.rb +8 -0
  69. data/{ext/protobuf-2.4.1/src/google/protobuf/io/coded_stream_inl.h → spec/support/test/google_unittest_import_public.proto} +5 -31
  70. data/spec/support/test/multi_field_extensions.pb.rb +29 -7
  71. data/spec/support/test/multi_field_extensions.proto +12 -2
  72. data/spec/support/test/resource.pb.rb +20 -16
  73. metadata +149 -236
  74. data/examples/addressbook.pb.rb +0 -55
  75. data/examples/addressbook.proto +0 -24
  76. data/examples/reading_a_message.rb +0 -32
  77. data/examples/writing_a_message.rb +0 -46
  78. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/code_generator.h +0 -142
  79. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/command_line_interface.h +0 -318
  80. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_enum.h +0 -99
  81. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_enum_field.h +0 -103
  82. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_extension.h +0 -85
  83. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_field.h +0 -167
  84. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_file.h +0 -98
  85. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_generator.h +0 -72
  86. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_helpers.h +0 -159
  87. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_message.h +0 -170
  88. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_message_field.h +0 -102
  89. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_primitive_field.h +0 -103
  90. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_service.h +0 -118
  91. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_string_field.h +0 -104
  92. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_test_bad_identifiers.pb.h +0 -2721
  93. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/importer.h +0 -303
  94. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_enum.h +0 -84
  95. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_enum_field.h +0 -121
  96. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_extension.h +0 -77
  97. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_field.h +0 -108
  98. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_file.h +0 -101
  99. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_generator.h +0 -72
  100. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_helpers.h +0 -213
  101. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_message.h +0 -109
  102. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_message_field.h +0 -134
  103. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_primitive_field.h +0 -121
  104. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_service.h +0 -113
  105. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_string_field.h +0 -120
  106. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/mock_code_generator.h +0 -113
  107. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/package_info.h +0 -64
  108. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/parser.h +0 -434
  109. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/plugin.h +0 -73
  110. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/plugin.pb.h +0 -790
  111. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/python/python_generator.h +0 -156
  112. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/subprocess.h +0 -108
  113. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/zip_writer.h +0 -93
  114. data/ext/protobuf-2.4.1/src/google/protobuf/descriptor.h +0 -1367
  115. data/ext/protobuf-2.4.1/src/google/protobuf/descriptor.pb.h +0 -5223
  116. data/ext/protobuf-2.4.1/src/google/protobuf/descriptor_database.h +0 -366
  117. data/ext/protobuf-2.4.1/src/google/protobuf/dynamic_message.h +0 -136
  118. data/ext/protobuf-2.4.1/src/google/protobuf/extension_set.h +0 -904
  119. data/ext/protobuf-2.4.1/src/google/protobuf/generated_message_reflection.h +0 -424
  120. data/ext/protobuf-2.4.1/src/google/protobuf/generated_message_util.h +0 -82
  121. data/ext/protobuf-2.4.1/src/google/protobuf/io/coded_stream.h +0 -1102
  122. data/ext/protobuf-2.4.1/src/google/protobuf/io/gzip_stream.h +0 -207
  123. data/ext/protobuf-2.4.1/src/google/protobuf/io/printer.h +0 -136
  124. data/ext/protobuf-2.4.1/src/google/protobuf/io/tokenizer.h +0 -313
  125. data/ext/protobuf-2.4.1/src/google/protobuf/io/zero_copy_stream.h +0 -238
  126. data/ext/protobuf-2.4.1/src/google/protobuf/io/zero_copy_stream_impl.h +0 -357
  127. data/ext/protobuf-2.4.1/src/google/protobuf/io/zero_copy_stream_impl_lite.h +0 -340
  128. data/ext/protobuf-2.4.1/src/google/protobuf/message.h +0 -692
  129. data/ext/protobuf-2.4.1/src/google/protobuf/message_lite.h +0 -239
  130. data/ext/protobuf-2.4.1/src/google/protobuf/package_info.h +0 -64
  131. data/ext/protobuf-2.4.1/src/google/protobuf/reflection_ops.h +0 -80
  132. data/ext/protobuf-2.4.1/src/google/protobuf/repeated_field.h +0 -1295
  133. data/ext/protobuf-2.4.1/src/google/protobuf/service.h +0 -291
  134. data/ext/protobuf-2.4.1/src/google/protobuf/stubs/common.h +0 -1211
  135. data/ext/protobuf-2.4.1/src/google/protobuf/stubs/hash.h +0 -220
  136. data/ext/protobuf-2.4.1/src/google/protobuf/stubs/map-util.h +0 -119
  137. data/ext/protobuf-2.4.1/src/google/protobuf/stubs/once.h +0 -123
  138. data/ext/protobuf-2.4.1/src/google/protobuf/stubs/stl_util-inl.h +0 -121
  139. data/ext/protobuf-2.4.1/src/google/protobuf/stubs/strutil.h +0 -457
  140. data/ext/protobuf-2.4.1/src/google/protobuf/stubs/substitute.h +0 -170
  141. data/ext/protobuf-2.4.1/src/google/protobuf/test_util.h +0 -174
  142. data/ext/protobuf-2.4.1/src/google/protobuf/test_util_lite.h +0 -101
  143. data/ext/protobuf-2.4.1/src/google/protobuf/testing/file.h +0 -83
  144. data/ext/protobuf-2.4.1/src/google/protobuf/testing/googletest.h +0 -98
  145. data/ext/protobuf-2.4.1/src/google/protobuf/text_format.h +0 -285
  146. data/ext/protobuf-2.4.1/src/google/protobuf/unittest.pb.h +0 -11915
  147. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_custom_options.pb.h +0 -2895
  148. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_embed_optimize_for.pb.h +0 -211
  149. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_empty.pb.h +0 -56
  150. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_import.pb.h +0 -188
  151. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_import_lite.pb.h +0 -151
  152. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_lite.pb.h +0 -4752
  153. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_lite_imports_nonlite.pb.h +0 -150
  154. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_mset.pb.h +0 -816
  155. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_no_generic_services.pb.h +0 -197
  156. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_optimize_for.pb.h +0 -403
  157. data/ext/protobuf-2.4.1/src/google/protobuf/unknown_field_set.h +0 -268
  158. data/ext/protobuf-2.4.1/src/google/protobuf/wire_format.h +0 -304
  159. data/ext/protobuf-2.4.1/src/google/protobuf/wire_format_lite.h +0 -620
  160. data/ext/protobuf-2.4.1/src/google/protobuf/wire_format_lite_inl.h +0 -774
  161. data/ext/ruby_generator/Makefile +0 -10
  162. data/ext/ruby_generator/RubyGenerator.cpp +0 -544
  163. data/ext/ruby_generator/RubyGenerator.h +0 -206
  164. data/ext/ruby_generator/extconf.rb +0 -35
  165. data/test/data/data_source.py +0 -14
  166. data/test/data/types_source.py +0 -22
  167. data/test/proto/addressbook.pb.rb +0 -66
  168. data/test/proto/addressbook.proto +0 -33
  169. data/test/proto/addressbook_base.pb.rb +0 -58
  170. data/test/proto/addressbook_base.proto +0 -26
  171. data/test/proto/addressbook_ext.pb.rb +0 -20
  172. data/test/proto/addressbook_ext.proto +0 -6
  173. data/test/proto/collision.pb.rb +0 -17
  174. data/test/proto/collision.proto +0 -5
  175. data/test/proto/ext_collision.pb.rb +0 -24
  176. data/test/proto/ext_collision.proto +0 -8
  177. data/test/proto/ext_range.pb.rb +0 -22
  178. data/test/proto/ext_range.proto +0 -7
  179. data/test/proto/float_default.proto +0 -10
  180. data/test/proto/lowercase.pb.rb +0 -30
  181. data/test/proto/lowercase.proto +0 -9
  182. data/test/proto/merge.pb.rb +0 -39
  183. data/test/proto/merge.proto +0 -15
  184. data/test/proto/nested.pb.rb +0 -30
  185. data/test/proto/nested.proto +0 -9
  186. data/test/proto/optional_field.pb.rb +0 -35
  187. data/test/proto/optional_field.proto +0 -12
  188. data/test/proto/packed.pb.rb +0 -22
  189. data/test/proto/packed.proto +0 -6
  190. data/test/proto/rpc.proto +0 -6
  191. data/test/proto/types.pb.rb +0 -84
  192. data/test/proto/types.proto +0 -37
  193. data/test/test_addressbook.rb +0 -56
  194. data/test/test_enum_value.rb +0 -41
  195. data/test/test_extension.rb +0 -36
  196. data/test/test_lowercase.rb +0 -11
  197. data/test/test_message.rb +0 -128
  198. data/test/test_optional_field.rb +0 -103
  199. data/test/test_packed_field.rb +0 -40
  200. data/test/test_parse.rb +0 -15
  201. data/test/test_repeated_types.rb +0 -132
  202. data/test/test_serialize.rb +0 -61
  203. data/test/test_standard_message.rb +0 -96
  204. data/test/test_types.rb +0 -226
@@ -1,206 +0,0 @@
1
- #ifndef GOOGLE_PROTOBUF_COMPILER_RUBY_GENERATOR_H
2
- #define GOOGLE_PROTOBUF_COMPILER_RUBY_GENERATOR_H
3
-
4
- #include <string>
5
- #include <iostream>
6
- #include <sstream>
7
- #include <vector>
8
- #include <tr1/unordered_map>
9
-
10
- #include <google/protobuf/compiler/command_line_interface.h>
11
- #include <google/protobuf/compiler/code_generator.h>
12
- #include <google/protobuf/descriptor.h>
13
- #include <google/protobuf/descriptor.pb.h>
14
- #include <google/protobuf/io/zero_copy_stream.h>
15
- #include <google/protobuf/io/printer.h>
16
- #include <google/protobuf/stubs/substitute.h>
17
- #include <google/protobuf/stubs/strutil.h>
18
-
19
- namespace google {
20
- namespace protobuf {
21
- namespace compiler {
22
- namespace ruby {
23
-
24
- class LIBPROTOC_EXPORT RubyGenerator : public CodeGenerator {
25
- public:
26
- RubyGenerator();
27
- ~RubyGenerator();
28
-
29
- // implemented Generate method from parent
30
- bool Generate(const FileDescriptor* file,
31
- const string& parameter,
32
- GeneratorContext* context,
33
- string* error) const;
34
-
35
- private:
36
- mutable GeneratorContext* context_;
37
- mutable io::Printer* printer_;
38
- mutable const FileDescriptor* file_;
39
- mutable string filename;
40
- mutable vector<string> ns_vector;
41
- mutable tr1::unordered_map<string, vector<const FieldDescriptor*> > extended_messages;
42
-
43
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RubyGenerator);
44
-
45
- bool DescriptorHasExtensions(const Descriptor* descriptor) const;
46
- void PrintDanglingExtendedMessages() const;
47
- void PrintExtensionRangesForDescriptor(const Descriptor* descriptor) const;
48
-
49
- void PrintEnclosingNamespaceModules() const;
50
- void PrintEnclosingNamespaceModuleEnds() const;
51
-
52
- void PrintMessagesForDescriptor(const Descriptor* descriptor, bool print_fields) const;
53
- void PrintMessagesForFileDescriptor(const FileDescriptor* descriptor, bool print_fields) const;
54
- void PrintMessage(const Descriptor* descriptor, bool print_fields) const;
55
- void PrintMessageField(const FieldDescriptor* descriptor) const;
56
- void PrintMessageExtensionFields(const string full_name) const;
57
-
58
- void PrintEnumsForDescriptor(const Descriptor* descriptor, bool print_values) const;
59
- void PrintEnumsForFileDescriptor(const FileDescriptor* descriptor, bool print_values) const;
60
- void PrintEnum(const EnumDescriptor* descriptor) const;
61
- void PrintEnumValue(const EnumValueDescriptor* descriptor) const;
62
-
63
- void PrintServices() const;
64
- void PrintService(const ServiceDescriptor* descriptor) const;
65
- void PrintServiceMethod(const MethodDescriptor* descriptor) const;
66
-
67
- void PrintGeneratedFileComment() const;
68
- void PrintGenericRequires() const;
69
- void PrintImportRequires() const;
70
- void PrintComment(string comment) const;
71
- void PrintComment(string comment, bool as_header) const;
72
- void PrintRequire(string lib_name) const;
73
- void PrintNewLine() const;
74
-
75
- void StoreExtensionFields(const FileDescriptor* descriptor) const;
76
- void StoreExtensionFields(const Descriptor* descriptor) const;
77
-
78
- // Take the proto file name, strip ".proto"
79
- // from the end and add ".pb.rb"
80
- static string CreateRubyFileName(const string proto_filename) {
81
- return CreateRubyFileName(proto_filename, false);
82
- }
83
-
84
- static string CreateRubyFileName(const string proto_filename, bool for_require) {
85
- string replacement = for_require ? ".pb" : ".pb.rb";
86
- return StringReplace(proto_filename, ".proto", replacement, false);
87
- }
88
-
89
- static string ConvertIntToString(int number) {
90
- stringstream stream;
91
- stream << number;
92
- return stream.str();
93
- }
94
-
95
- static string ConvertDoubleToString(double number) {
96
- stringstream stream;
97
- stream << number;
98
- return stream.str();
99
- }
100
-
101
- static string ConvertFloatToString(float number) {
102
- stringstream stream;
103
- stream << number;
104
- return stream.str();
105
- }
106
-
107
- static string Constantize(string full_path) {
108
- return Constantize(full_path, true);
109
- }
110
-
111
- static string Constantize(string full_path, bool is_top_level) {
112
- stringstream constantized;
113
-
114
- if (is_top_level) {
115
- constantized << "::";
116
- }
117
-
118
- string::iterator i;
119
- bool segment_end = true;
120
- for (i = full_path.begin(); i < full_path.end(); i++) {
121
- char c = *i;
122
- if (c == 46) { // period char
123
- constantized << ':' << ':';
124
- segment_end = true;
125
- continue;
126
- }
127
- else if (c == 95) { // underscore char
128
- segment_end = true;
129
- }
130
- else if (segment_end) {
131
- if (c >= 97 && c <= 122) { // a-z chars
132
- c -= 32;
133
- }
134
- segment_end = false;
135
- }
136
- constantized << c;
137
- }
138
-
139
- return constantized.str();
140
- }
141
-
142
- static string Underscore(string name) {
143
- stringstream underscored;
144
-
145
- string::iterator i;
146
- for (i = name.begin(); i < name.end(); i++) {
147
- char c = *i;
148
- if (c >= 65 && c <= 90) { // a-z chars
149
- if (i != name.begin()) {
150
- underscored << '_';
151
- }
152
- c += 32;
153
- }
154
- underscored << c;
155
- }
156
-
157
- return underscored.str();
158
- }
159
-
160
- static string FullEnumNamespace(const EnumValueDescriptor* descriptor) {
161
- string parent_enum_type = Constantize(descriptor->type()->full_name());
162
- string enum_name = descriptor->name();
163
-
164
- return strings::Substitute("$0::$1", parent_enum_type, enum_name);
165
- }
166
-
167
- static bool DescriptorHasNestedTypes(const Descriptor* descriptor) {
168
- return (descriptor->enum_type_count() > 0 || descriptor->nested_type_count() > 0);
169
- }
170
-
171
- }; // class RubyGenerator
172
-
173
- } // namespace ruby
174
- } // namespace compiler
175
- } // namespace protobuf
176
- } // namespace google
177
-
178
- #ifdef __cplusplus
179
- extern "C" {
180
- #endif
181
-
182
- int _rprotoc_extern(int argc, char* argv[]) {
183
- google::protobuf::compiler::CommandLineInterface cli;
184
-
185
- google::protobuf::compiler::ruby::RubyGenerator ruby_generator;
186
- cli.RegisterGenerator("--ruby_out", &ruby_generator,
187
- "Generate Ruby-compatible protobuf message and service classes.");
188
-
189
- return cli.Run(argc, argv);
190
- }
191
-
192
- /*
193
-
194
- Use for testing:
195
-
196
- int main(int argc, char* argv[]) {
197
- return _rprotoc_extern(argc, argv);
198
- }
199
-
200
- */
201
-
202
- #ifdef __cplusplus
203
- }
204
- #endif
205
-
206
- #endif // GOOGLE_PROTOBUF_COMPILER_RUBY_GENERATOR_H
@@ -1,35 +0,0 @@
1
- unless defined?(JRUBY_VERSION)
2
- begin
3
- require 'mkmf'
4
- include_directory = File.expand_path(ENV['PROTOC_SRC'] || File.join(File.dirname(__FILE__), "..", "protobuf-2.4.1", "src"))
5
-
6
- $CPPFLAGS << " -I#{include_directory}"
7
- $CPPFLAGS << " -Wall "
8
-
9
- have_library("pthread")
10
- have_library("protoc")
11
- have_library("protobuf")
12
-
13
- create_makefile('ruby_generator')
14
- rescue ::Gem::Installer::ExtensionBuildError => ex
15
- $stdout << <<-WARNING
16
- Cannot compile native extension.
17
-
18
- If you are running on Jruby or Windows you should compile protocol buffer
19
- definitions on another computer and then use those definitions locally.
20
-
21
- Only the compiler is restricted by this. The definitions should work without issue.
22
- WARNING
23
- $stdout << $/
24
- end
25
- else
26
- $stdout << <<-WARNING
27
- Cannot compile native extension.
28
-
29
- If you are running on Jruby or Windows you should compile protocol buffer
30
- definitions on another computer and then use those definitions locally.
31
-
32
- Only the compiler is restricted by this. The definitions should work without issue.
33
- WARNING
34
- $stdout << $/
35
- end
@@ -1,14 +0,0 @@
1
- import addressbook_pb2
2
- import sys
3
-
4
- person = addressbook_pb2.Person()
5
- person.id = 1234
6
- person.name = "John Doe"
7
- person.email = "jdoe@example.com"
8
- phone = person.phone.add()
9
- phone.number = "555-4321"
10
- phone.type = addressbook_pb2.Person.HOME
11
-
12
- f = open('data.bin', 'wb')
13
- f.write(person.SerializeToString())
14
- f.close()
@@ -1,22 +0,0 @@
1
- import types_pb2
2
- import sys
3
-
4
- types = types_pb2.TestTypes()
5
- types.type1 = 0.01
6
- types.type2 = 0.1
7
- types.type3 = 1
8
- types.type4 = 10
9
- types.type5 = 100
10
- types.type6 = 1000
11
- types.type7 = -1
12
- types.type8 = -10
13
- types.type9 = 10000
14
- types.type10 = 100000
15
- types.type11 = False
16
- types.type12 = 'hello all types'
17
- # TODO test type13
18
- #types.type13 =
19
-
20
- f = open('types.bin', 'wb')
21
- f.write(types.SerializeToString())
22
- f.close()
@@ -1,66 +0,0 @@
1
- ### Generated by rprotoc. DO NOT EDIT!
2
- ### <proto file: test/proto/addressbook.proto>
3
- # package tutorial;
4
- #
5
- # message Person {
6
- # required string name = 1;
7
- # required int32 id = 2;
8
- # optional string email = 3;
9
- #
10
- # enum PhoneType {
11
- # MOBILE = 0;
12
- # HOME = 1;
13
- # WORK = 2;
14
- # }
15
- #
16
- # message PhoneNumber {
17
- # required string number = 1;
18
- # optional PhoneType type = 2 [default = HOME];
19
- # }
20
- #
21
- # repeated PhoneNumber phone = 4;
22
- # optional uint32 age = 5 [default = 20];
23
- #
24
- # extensions 100 to 200;
25
- # }
26
- #
27
- # /*
28
- # extend Person {
29
- # optional int32 age = 100;
30
- # }
31
- # */
32
- #
33
- # message AddressBook {
34
- # repeated Person person = 1;
35
- # }
36
-
37
- require 'protobuf/message/message'
38
- require 'protobuf/message/enum'
39
- require 'protobuf/message/extend'
40
-
41
- module Tutorial
42
- class Person < ::Protobuf::Message
43
- defined_in __FILE__
44
- required :string, :name, 1
45
- required :int32, :id, 2
46
- optional :string, :email, 3
47
- class PhoneType < ::Protobuf::Enum
48
- defined_in __FILE__
49
- define :MOBILE, 0
50
- define :HOME, 1
51
- define :WORK, 2
52
- end
53
- class PhoneNumber < ::Protobuf::Message
54
- defined_in __FILE__
55
- required :string, :number, 1
56
- optional :PhoneType, :type, 2, :default => :HOME
57
- end
58
- repeated :PhoneNumber, :phone, 4
59
- optional :uint32, :age, 5, :default => 20
60
- extensions 100..200
61
- end
62
- class AddressBook < ::Protobuf::Message
63
- defined_in __FILE__
64
- repeated :Person, :person, 1
65
- end
66
- end
@@ -1,33 +0,0 @@
1
- package tutorial;
2
-
3
- message Person {
4
- required string name = 1;
5
- required int32 id = 2;
6
- optional string email = 3;
7
-
8
- enum PhoneType {
9
- MOBILE = 0;
10
- HOME = 1;
11
- WORK = 2;
12
- }
13
-
14
- message PhoneNumber {
15
- required string number = 1;
16
- optional PhoneType type = 2 [default = HOME];
17
- }
18
-
19
- repeated PhoneNumber phone = 4;
20
- optional uint32 age = 5 [default = 20];
21
-
22
- extensions 100 to 200;
23
- }
24
-
25
- /*
26
- extend Person {
27
- optional int32 age = 100;
28
- }
29
- */
30
-
31
- message AddressBook {
32
- repeated Person person = 1;
33
- }
@@ -1,58 +0,0 @@
1
- ### Generated by rprotoc. DO NOT EDIT!
2
- ### <proto file: test/proto/addressbook_base.proto>
3
- # package tutorial_ext;
4
- #
5
- # message Person {
6
- # required string name = 1;
7
- # required int32 id = 2;
8
- # optional string email = 3;
9
- #
10
- # enum PhoneType {
11
- # MOBILE = 0;
12
- # HOME = 1;
13
- # WORK = 2;
14
- # }
15
- #
16
- # message PhoneNumber {
17
- # required string number = 1;
18
- # optional PhoneType type = 2 [default = HOME];
19
- # }
20
- #
21
- # repeated PhoneNumber phone = 4;
22
- #
23
- # extensions 100 to 200;
24
- # }
25
- #
26
- # message AddressBook {
27
- # repeated Person person = 1;
28
- # }
29
-
30
- require 'protobuf/message/message'
31
- require 'protobuf/message/enum'
32
- require 'protobuf/message/extend'
33
-
34
- module TutorialExt
35
- class Person < ::Protobuf::Message
36
- defined_in __FILE__
37
- required :string, :name, 1
38
- required :int32, :id, 2
39
- optional :string, :email, 3
40
- class PhoneType < ::Protobuf::Enum
41
- defined_in __FILE__
42
- define :MOBILE, 0
43
- define :HOME, 1
44
- define :WORK, 2
45
- end
46
- class PhoneNumber < ::Protobuf::Message
47
- defined_in __FILE__
48
- required :string, :number, 1
49
- optional :PhoneType, :type, 2, :default => :HOME
50
- end
51
- repeated :PhoneNumber, :phone, 4
52
- extensions 100..200
53
- end
54
- class AddressBook < ::Protobuf::Message
55
- defined_in __FILE__
56
- repeated :Person, :person, 1
57
- end
58
- end
@@ -1,26 +0,0 @@
1
- package tutorial_ext;
2
-
3
- message Person {
4
- required string name = 1;
5
- required int32 id = 2;
6
- optional string email = 3;
7
-
8
- enum PhoneType {
9
- MOBILE = 0;
10
- HOME = 1;
11
- WORK = 2;
12
- }
13
-
14
- message PhoneNumber {
15
- required string number = 1;
16
- optional PhoneType type = 2 [default = HOME];
17
- }
18
-
19
- repeated PhoneNumber phone = 4;
20
-
21
- extensions 100 to 200;
22
- }
23
-
24
- message AddressBook {
25
- repeated Person person = 1;
26
- }