Materializer
Persist serialization in the model by front-loading the serialization and storing in the database as a string.
Usage
Using Materializer is easy!
How to include an enable it?
It’s easy. First, add the gem:
gem 'materializer'
Enable materializer in the models you which to maintain rendered views in.
include Materializer
Then, define one or more materialization profiles:
materialize :into => FIELD_NAME, :using => METHOD_NAME
You’ll also need to make a migration to add the column:
t.string FIELD_NAME_json
Voila!
FIELD_NAME will be populated with the JSON generated from METHOD_NAME on save. METHOD_NAME should be implemented as a serializable_hash method returning a hash.
Examples
Some examples on usage:
Materialize data into name_json using the name_as_json method.
materialize :into => :name, :using => :name_as_json
Materialize data into all_json using the as_json method.
materialize :into => :all, :using => :as_json
Pull in objects from other models
materialize :into => :all, :using => :all_as_json
def all_as_json
{ :field1 => field1, :association1 => association1.as_json }
end
License
Materializer is Copyright © 2011 Christopher Meiklejohn. It is free software, and may be redistributed under the terms specified in the LICENSE file.
About
The materializer gem was written by Christopher Meiklejohn from Swipely, Inc..