Skip to content

Data persistence support (store enum values in database) for SimpleEnum

License

Notifications You must be signed in to change notification settings

bbtfr/simple_enum-persistence

Repository files navigation

SimpleEnum::Persistence

Travis Gem

SimpleEnum::Persistence is extension of SimpleEnum, which brings data persistence support to SimpleEnum. Sometimes, we need to use one of our Model as enum data source, in order to add/remove enum type dynamically, SimpleEnum::Persistence is built for this!

Why not ActiveRecord association?

  1. SimpleEnum is a great library, which brings a lot of benefits to create enum-like fields;

  2. SimpleEnum::Persistence cache all enums in memory for better performance, and it will reload when database changes (with after_save callback).

ActiveRecord Quick start

Let's say we have a model Tag, we want to use it as enum data, just add this to a model:

class Post
  as_enum :tag, Tag, persistence: true
end

Then SimpleEnum will use Tag.all as enum data, tag.name as enum key and tag.id as enum value, if we want to use a field rather than :name as enum key:

class Post
  as_enum :tag, Tag, persistence: { key: :name, value: :id }
end

License

The gem is available as open source under the terms of the MIT License.

About

Data persistence support (store enum values in database) for SimpleEnum

Resources

License

Stars

Watchers

Forks

Packages

No packages published