Callback hooks for machinist blueprints
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
.gitignore
Gemfile
Gemfile.lock
MIT-LICENSE
README.rdoc
Rakefile
VERSION
machinist_callbacks.gemspec

README.rdoc

machinist_callbacks

Some record construction rules cannot be expressed with a machinist blueprint, for instance:

  • Creating a record with a has_many association already filled in.

  • Creating a record with interdependencies between associated object, such as having to belong to the same container.

  • Needing to process a delayed_job queue after record construction.

This gem provides before_make and after_make callbacks for machinist blueprints, enabling more freedom in your construction rules.

Example

Movie.blueprint do
  title
  year 2001
  before_make do
    self.producer = Producer.make(:name => director.name)
  end
end
Director.blueprint do
  name
  after_make do
    movies << Movie.make
  end
end

Does it work with make_unsaved?

Yes. Machinist is built in a way that every make in your callback implicitely becomes a make_unsaved when an object graph is created with make_unsaved.

Installation

You can install the gem with

sudo gem install machinist_callbacks

In Rails 2, add the following to your environment.rb:

config.gem 'machinist_callbacks'

In Rails 3, add the following to your Gemfile:

gem 'machinist_callbacks'

Rails 3 compatibility

We cannot guarantee Rails 3 compatibility at this point, but we will upgrade the gem when Rails 3 is released.

Credits

Henning Koch

makandra.com

gem-session.com