protobuf 2.8.0.beta9 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
- }