Skip to content

Repository files navigation

Defaults

TestsGemGem

Instalation

Add this line to your application's Gemfile:

gem"defaults"

And then execute:

$ bundle

Or install it yourself as:

$ gem install defaults

Usage

Here are the rules:

  1. Assigned attributes have precedence over default values
  2. Default values have precedence over database defaults.

Add the method call defaults to your model.

classPage < ActiveRecord::Basedefaultstitle: "New page",body: "Put your text here"end

Attributes will be set only if it's a new record and the attribute is blank.

Retrieve the default attribute with the default_for instance method:

@page.default_for(:title)

You can pass callables (any objects that respond to .call() or .call(record)) as attribute:

classExpirationdefself.callTime.nowendendclassChecksumdefself.call(user)Digest::SHA1.hexdigest(user.name.to_s,user.email.to_s)endendclassUser < ApplicationRecorddefaultschecksum: Checksum,expires_at: ->{Time.now}end

You can override the default attributes as follow:

Page.default_values={title: "Here's your new page",body: "Write your page text"}

Maintainer

Contributors

Contributing

For more details about how to contribute, please read https://github.com/fnando/defaults/blob/main/CONTRIBUTING.md.

License

The gem is available as open source under the terms of the MIT License. A copy of the license can be found at https://github.com/fnando/defaults/blob/main/LICENSE.md.

Code of Conduct

Everyone interacting in the defaults project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.

About

Add default value for ActiveRecord attributes

Topics

Resources

Code of conduct

Contributing

Stars

18 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages