All notable changes to this project will be documented in this file.
This format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Remove official support for Rails 6 versions. It still works, but we don't test against it anymore.
- Add support for rails 7.2, but leave out rails 7.1 support. This is because ActionView has a breaking bug in 7.1 that renders the template back as a string instead of an object, like we need for Pbbuilder rails/rails#51023
- Allow literal assignment of protos to fields
- Instead of appending to repeated enum message, we're replacing it to avoid issues in case output will be rendered twice
- If one field was defined twice, only last definition will end up in output
- Fixed CI by locking 3 version or lower of google-protobuf dependency.
- Add support for partial as a first argument , e.g.
pb.friends "racers/racer", as: :racer, collection: @racers
- Add tests to verify that fragment caching is operational
- Deal properly with recursive protobuf messages while using ActiveView::CollectionRenderer
- Added support for new collection rendering, that is backed by ActiveView::CollectionRenderer.
- Refactoring and simplification of #merge! method without a change in functionality.
- #merge! method to handle repeated unintialized message object
- #merge! method was refactored to accomodate caching for all data types (especially those that are :repeated)
- Adding
frozen_string_literal: true
to all files.
- In case ActiveSupport::Cache::FileStore in Rails is used as a cache, File.atomic_write can have a race condition and fail to rename temporary file. We're attempting to recover from that, by catching this specific error and returning a value.
- #merge! to support boolean values
- #merge! method added for PbbuilderTemplate class
- ActiveSupport added as a dependency for gem
- Fragment Caching support added, with #cache! and #cache_if! methods in PbbuilderTemplate class.
- Appraisal is properly configured to run against all rubies and rails combinations.
- Supported ruby version's are 2.7, 3.0, 3.1
- Superclass for pbbuilder is now active_support/proxy_object, with a fallback to active_support/basic_object.
- Library upgrade: All gems are updated to the latest possible version. Most notable upgrades:
rails
from version 6.1.4.4 to 6.1.7, and from version 7.0.1 to 7.0.4google-protobuf
is let loosebundler
from version 2.3.4 to 2.3.22
- TestUnit dependency
A templating language, for protobuf, for Rails, inspired by Jbuilder