Fixturator is a Rails plugin that generates fixtures from your ActiveRecord
models. It requires you to whitelist models in your config/fixturator.yml
QUIRKS
I've made created_at
and updated_at
always output the same time. The reason
this is part of the gem is that git diffs get really messy otherwise.
You can also exclude timestamps entirely by using the exclude_timestamps
setting
There are two ways to use Fixturator. There's a rake task that it comes with, but you can also call it yourself with a model.
This gem ships with a rake task that can read a file located at
config/fixturator.yml
bin/rake db:fixtures:generate
Here's an example configuration with all valid attributes:
# Excludes created_at and updated_at on all models
exclude_timestamps: false
# The models for which fixtures are generated
models:
- name: Driver
- name: User
# excluded attributes for that model
exclude:
- secret_attribute
- ssn
Fixturator.generate!
# Uses the config/fixturator.yml
# generates a bunch of fixtures in your configured fixture directory
Fixturator.call(User, excluded_attributes: ["created_at"])
# generates a User fixture at your configured fixture directory
# by default it's at test/fixtures/users.yml
If you want to create fixtures for all of your models, you can check out this
issue on more details of how
to get a complete list. You can use a locator in conjunction with
Fixturator.call(model)
to do so.
Add this line to your application's Gemfile:
gem 'fixturator'
And then execute:
$ bundle
Or install it yourself as:
$ gem install fixturator
Please submit specific issue reports if you see this working in a way you wouldn't expect. PRs and discussion is welcomed and appreciated!
The gem is available as open source under the terms of the MIT License.