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..