SerializeYAML2JSON
ActiveRecord::Coder to transparently transition serialized attributes from YAML to JSON. In a recent test creating/reading serialized records JSON outperfoms YAML by a wide margin.
Serializing the entire contents of the ENV
hash 50,000 times:
user system total real
yaml: 77.390000 9.220000 86.610000 (117.776747)
json: 52.870000 8.240000 61.110000 ( 89.297786)
Deserializing those same 50,000 records:
user system total real
yaml: 10.120000 0.380000 10.500000 ( 15.818386)
json: 2.840000 0.100000 2.940000 ( 7.896888)
More information available here.
Installation
Add this line to your application's Gemfile:
gem 'serialize_yaml2json'
And then execute:
$ bundle
Or install it yourself as:
$ gem install serialize_yaml2json
Usage
Update your models to use this Coder.
class Widget < ActiveRecord::Base
# serialize :data
serialize :data, SerializeYAML2JSON::Coder
end
# NOTE: 'data' will now be a hash with indifferent access.
# This is because JSON doesn't understand symbols and stringifies
# all keys. YAML could do either. This is necessary to support
# existing access to the attributes.
Contributing
- Fork it ( https://github.com/supremegolf/serialize_yaml2json/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request