- Ruby 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| gemfiles | ||
| lib | ||
| script | ||
| test | ||
| .gitignore | ||
| .travis.yml | ||
| init.rb | ||
| LICENSE | ||
| rails_init.rb | ||
| Rakefile | ||
| README.md | ||
| serializable_attributes.gemspec | ||
UNMAINTAINED
This repo is no longer being maintained as of 2015-08-25.
SerializedAttributes
SerializedAttributes allows you to add an encoded hash to an ActiveRecord model.
This is similar to the built-in ActiveRecord serialization, except that the field
is converted to JSON, gzipped, and stored in a BLOB field. This uses the json
gem which is much faster than YAML serialization. However, JSON is not nearly as
flexible, so you're stuck with strings/integers/dates/etc.
Where possible, ActiveRecord compatible methods are generated so that a migration should be pretty simple. See unit tests for examples.
Some of the code and most of the ideas are taken from Heresy, a ruby implementation of how FriendFeed uses MySQL for schema-free storage.
Supports ActiveRecord 2.2 in ruby 1.8.7, and ActiveRecord 2.3-3.1 in ruby 1.9.3. See Travis CI to see if we support your version of ActiveRecord and ruby.
Setup
Install the plugin into your Rails app.
Usage
class Profile < ActiveRecord::Base
# assumes #data serializes to raw_data blob field
serialize_attributes do
string :title, :description
integer :age
float :rank, :percentage
time :birthday
end
# Serializes #data to assumed raw_data blob field
serialize_attributes :data do
string :title, :description
integer :age
float :rank, :percentage
time :birthday
end
# set the blob field
serialize_attributes :data, :blob => :serialized_field do
string :title, :description
integer :age
float :rank, :percentage
time :birthday
end
end