Build Status

EnumSet

enum_set is a gem for treating integer columns as a compact set of boolean fields. It defines boolean getter methods similar to the standard enum method as well as an array setter.

Installation

  • With bundler:

    $ gem 'enum_set'
    
  • Without bundler:

    $ gem install enum_set
    

Usage

# user.rb
class User < ActiveRecord::Base
  include EnumSet
  enum_set roles: [:admin, :super_user, :kaiser]
end

# elsewhere.rb
user = User.create(roles: [:super_user])

user.super_user? # => true
user.admin? # => false

super_users = User.super_user.all # will include `user`

user.roles <<= :kaiser # Adds `:kaiser` role to `user`
user.roles # => [:super_user, :kaiser]

Notes

The gem currently requires ActiveRecord due to scope creation.