Sha256: f07cfee8202dc9dbdfcda0dd3b4c1d7ea34a9dfb3d3c76b17b1c8020b2ad56a0

Contents?: true

Size: 1.71 KB

Versions: 1

Compression:

Stored size: 1.71 KB

Contents

# symbolic_enum

`symbolic_enum` is an alternate implementation of [Rails enums](http://api.rubyonrails.org/classes/ActiveRecord/Enum.html), which changes the following:

* The getters return symbols instead of strings.
* Option to mark the field as an array. This assumes that the underlying database column is an integer array.
* Option to disable scopes and/or setters.

## Installation

Add this line to your application's Gemfile:

```ruby
gem 'symbolic_enum'
```

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install symbolic_enum

## Usage

`symbolic_enum` is used similar to `enum`. For example,

```ruby
class Car < ApplicationRecord
  include SymbolicEnum

  symbolic_enum category: {
    sedan:     0,
    hatchback: 1,
    suv:       2,
    other:     3,
  }
end

# Usage
c = Car.create!
c.sedan!

c.sedan? # true

c.hatchback? # false

c.category = :suv

c.category # :suv
c.save!

Car.suv.pluck(:id).include?(c.id) # true

```

## Development

After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).

## Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/symbolic_enum.

## License

The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
symbolic_enum-1.1.5 README.md