aboutsummaryrefslogtreecommitdiff
path: root/ruby/ext/google/protobuf_c/protobuf.h
Commit message (Collapse)AuthorAgeFilesLines
* Adds support for proto2 syntax for Ruby gem.Harshit Chopra2018-09-271-1/+58
| | | | | | | | | | | | | | | | | | | | | This change only adds basic proto2 support without advanced features like extensions, custom options, maps, etc. The protoc binary now generates ruby code for proto2 syntax. However, for now, it is restricted to proto2 files without advanced features like extensions, in which case it still errors out. This change also modifies the DSL to add proto messages to the DescriptorPool. There is a new DSL Builder#add_file to create a new FileDescriptor. With this, the generated ruby DSL looks something like: Google::Protobuf::DescriptorPool.generated_pool.build do add_file "test.proto" do add_message "foo" do optional :val, :int32, 1 end end end
* Adds a base class for all explicitly raised TypeErrors (#4255)Erik Benoist2018-06-261-0/+1
| | | | | | | | | * This allows for ruby code to catch and handle Protobuf TypeErrors separately from the standard Ruby TypeError * Maintains backwards compatibility by having the new Google::Protobuf::TypeError inherit from the base TypeError. Any code that was catching TypeError should continue to work.
* Add discard unknown API in ruby. (#3990)Paul Yang2017-12-071-0/+1
| | | | | | | | | | | | * Add discard unknown API in ruby. * Add test for oneof message field. * Add TestUnknown to represent unknown field data clearly. * Only serialize the message with unknown fields itself in test. * Move discard_unknown from Message to Google.Protobuf
* Reserve unknown in Ruby (#3763)Paul Yang2017-10-261-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | * Reserve unknown in ruby * Revert ruby tests. Wait for cpp impl for conformance test * Add conformance test for preserving unknown * Add unknown field conformance test to csharp failure list. * Fix comments * Fix comment * Fix comments * Fix typo * Use stringsink_string directly * Mark hd unused * Remove unused encodeunknown_handlerfunc
* Fix ruby segment fault (#3708)Paul Yang2017-10-031-4/+1
| | | | | | | | | | | | | | | | * Fix ruby segment fault 1) rb_ary_new cannot be called during allocate function. During allocate fucntion, the containing object hasn't been marked and rb_ary_new may invoke gc to collect containing object. 2) The global map should be marked before allocating it. Otherwise it may be garbage collected. * Add test * Remove commented code * Fix grammer error
* Storing the frame on the map means we don't need the arrayAaron Patterson2017-08-301-3/+2
|
* Move parse frame array to the Map objectAaron Patterson2017-08-301-2/+3
| | | | This makes the frame stack per-parser, and per-thread. Fixes #3250
* Ruby: fixed Message#to_h for map fields.Josh Haberman2017-03-141-0/+2
|
* Ruby: make sure map parsing frames are GC-rooted.Josh Haberman2016-08-261-0/+2
|
* Ruby: encode and freeze strings when the are assigned or decoded.Josh Haberman2016-07-211-1/+2
|
* Ruby JSON: always accept both camelCase and original field names.Josh Haberman2016-04-141-1/+2
| | | | | | | | For JSON encoding we provide a new option to decide at encode time whether to use camelCase or original proto field names: json = MapMessage.encode_json(m, :preserve_proto_fieldnames => true)
* Changed Ruby to properly camelCase its JSON by default.Josh Haberman2016-02-181-0/+1
|
* Added Ruby to conformance tests.Josh Haberman2015-07-161-0/+3
| | | | | | | | | | | | | This involved fixing a few important bugs in the Ruby implementation -- mostly cases of mixing upb field types and descriptor types (upb field types do not distinguish between int/sint/fixed/sfixed like descriptor types do). Also added protobuf-specific exceptions so parse errors can be caught specifically. Change-Id: Ib49d3db976900b2c6f3455c8b88af52cfb86e036
* Ruby C extension speedup: don't re-intern constant string needlessly.Chris Fallin2015-05-191-2/+2
| | | | Also fixed lines with > 80 char length.
* Merge pull request #387 from cfallin/ruby-upb-updateJoshua Haberman2015-05-181-0/+4
|\ | | | | Update MRI C Ruby extension to use new version of upb (with upb_env).
| * Update MRI C Ruby extension to use new version of upb.Chris Fallin2015-05-151-0/+4
| | | | | | | | | | | | | | | | | | - Alter encode/decode paths to use the `upb_env` (environment) abstraction. - Update upb amalgamation to upstream `93791bfe`. - Fix a compilation warning (void*->char* cast). - Modify build flags so that upb doesn't produce warnings -- the Travis build logs were pretty cluttered previously.
* | Merge pull request #338 from skippy/encode-decode-helpersChris Fallin2015-05-151-5/+1
|\ \ | |/ |/| ruby: Encode decode cleanup and behavior normalization
| * adding and simplifying encoders/decodersAdam Greene2015-05-131-5/+1
| | | | | | | | | | | | * make consistent between mri and jruby * create a #to_h and have it use symbols for keys * add #to_json and #to_proto helpers on the Google::Protobuf message classes
* | make repeated_field quack like an arrayAdam Greene2015-05-141-2/+2
|/
* Updated based on code-review comments.Chris Fallin2015-02-021-0/+14
|
* Addressed code-review comments.Chris Fallin2015-01-141-1/+1
|
* Support oneofs in MRI Ruby C extension.Chris Fallin2015-01-141-2/+47
|
* Addressed code-review comments.Chris Fallin2015-01-091-2/+6
|
* Addressed code-review comments.Chris Fallin2015-01-061-0/+9
|
* Support for maps in the MRI C Ruby extension.Chris Fallin2015-01-061-2/+67
| | | | | | | | This adds the Map container and support for parsing and serializing maps in the protobuf wire format (as defined by the C++ implementation, with MapEntry submessages in a repeated field). JSON map serialization/parsing are not yet supported as these will require some changes to upb as well.
* Rename protobuf Ruby module to google/protobuf and rework its buildChris Fallin2014-12-121-0/+396
system. The Ruby module build now uses an amalgamated distribution of upb, and successfully builds a Ruby gem called 'google-protobuf' with module 'google/protobuf'.