Treant
A small helper for your Seeds file.
Installation
Add this line to your application's Gemfile:
gem "treant"
And then execute:
$ bundle
Or install it yourself as:
$ gem install treant
Usage
Generate seed data for given Active Record model:
class User < ApplicationRecord
end
# `email` has an unique index. This is used to upsert the data.
UserSeeder = Treant.new(User, :email)
# Now, create a new record:
UserSeeder.seed do |u|
u.email = 'user@example.com'
u.name = 'Bob'
end
User.count # => 1
User.first.name # => 'Bob'
# If the seed data is changed (except for the `keys` values),
# the record will be updated:
UserSeeder.seed do |u|
u.email = 'user@example.com'
u.name = 'Alice'
end
User.count # => 1
User.first.name # => 'Alice'
License
The gem is available as open source under the terms of the MIT License.