- Support enumerized attributes in #update_all on relation objects. (by @lest)
-
Drop support for Ruby older than 2.2. Support only Ruby 2.2+. (by @nashby)
-
Drop support for Rails 4.0 and 4.1. Support only Rails 4.2 and newer. (by @lest)
-
Allow to pass enumerize values to
ActiveRecord#update_all
(by @DmitryTsepelev and @ianwhite)User.update_all(status: :blocked)
- Rescue MissingAttributeError on attribute writing. (by @embs)
- Fix presence validation for multiple attributes when the list contains a blank string. (by @smoriwaki)
- Replace deprecated alias_method_chain with Module#prepend. (by @koenpunt and @akm)
- Make it compatible with
globalize
gem. (by @falm) - Prevent method getter from being called when no default_value is being set. (by @arjan0307)
- Fix exception when using predicate methods and enumerized values have dash in it. (by @nashby)
- Add Sequel support. (by @mrbrdo)
- Add qualifiers to RSpec matcher. (by @maurogeorge)
- Support hash in the RSpec matcher. (by @maurogeorge)
- Add
texts
method for getting an array of text values of the enumerized field with multiple type. (by @huynhquancam) - Drop Rails 3.2 support. (by @nashby)
- Fix conflicts when Active Record and Mongoid are used at the same time. (by @matsu911)
- Add ability to set default value for enumerized field with multiple type. (by @nashby)
- Support Rails 4.2. (by @lest)
- Use Mongoid's
:in
method for generated scopes, fix chained scopes. (by @nashby) - Use
after_initialize
callback to set default value in Mongoid documents. (by @nashby)
- Use method_missing instead of defining singleton class methods to allow Marshal serialization (by @lest)
- Add scopes support to mongoid documents (by @nashby)
- Use underscore.humanize in #text to make use of Inflector acronyms (by @mintuhouse)
- Raise an exception when :scope option is used together with :multiple option (by @maurogeorge)
- Use alias_method_chain instead of overriding Class#inherited (by @yuroyoro)
- Shortcut methods to retrieve enumerize values (by @CyborgMaster)
- Extend equality operator to support comparing with symbols and custom values (e.g. integers) (by @CyborgMaster)
- Add :value_class option (by @lest)
- Use 'defaults' scope in the localization file for the attributes that used across several models. This will help to avoid conflicting keys with model names and attribute names. Example:
en:
enumerize:
defaults:
sex:
male: Male
female: Female
You still can use the old solution without "default" scope:
en:
enumerize:
sex:
male: Male
female: Female
(by @nashby)
- Store values for validation using string keys (by @nagyt234)
- Store custom values for multiple attributes (by @lest)
- Support validations after using AR#becomes (by @lest)
- Do not try to set attribute for not selected attributes (by @dany1468)
- Integration with SimpleForm's
input_field
(by @nashby) - Support multiple attributes in Active Record #becomes method (by @lest)
- Add ability to specify localization scope with
i18n_scope
option (by @dreamfall)
- Fix Rails Admin integration when custom values are used (by @brenes)
- Fix RSpec integration using enumerize with Spring (by @winston)
- Return proper RSpec failure message for enumerized attribute with default value (by @nashby)
- Return proper RSpec description for enumerized attribute without default value (by @andreygerasimchuk)
- Do not try to set default value for not selected attributes (by @nashby)
- Fix uniqueness validation with Active Record (by @lest)
- Fix loading of attributes with multiple: true in mongoid (by glebtv)
- Serialize value as scalar type (by @ka8725)
- Give priority to model specific translation definition. See example here (by @labocho)
- Allow lambda in default value (by @adie)
- Add predicate methods to the multiple attributes (by @nashby)
- Add RSpec matcher (by @nashby)
- Add
*_value
method that returns actual value of the enumerized attribute (useful for attributes with custom values) (by @tkyowa)
- Make validation work when
write_attribute
is using for setting enumerized values (by @nashby) - Validates enumerized values when enumeration is included via module (by @nashby) and (by @lest)
- Don't raise error when enumerized attribute is already defined. (by @lest)
- Use inclusion error message for invalid values (by @lest)
- Add
:only
andexcept
options to theAttribute#options
method. (by @thehappycoder and @randoum) - ActiveRecord scopes. (by @lest, @banyan and @nashby)
- Support for RailsAdmin (by @drewda)
- Return correct default value for enumerized attribute using
default_scope
with generated scope @nashby - Allow either key or value as valid (by aghull and @lest)
- Use default enum value from db column (by @lest)
- Always return Enumerize::Set for multiple attributes (by @nashby)
The previous method of adding enumerize to a class was deprecated. Please use
extend Enumerize
instead of include Enumerize
.
- SimpleForm support for multiple attributes. (by @nashby)
- Formtastic support for multiple attributes. (by @nashby)
- Array-like multiple attributes. (by @lest)
Legacy support was dropped. The following versions are supported:
- Ruby 1.9.3+ (including JRuby and Rubinius)
- Rails 3.2+
- Formtastic 2.2+
- SimpleForm 2+
- Mongoid 3+
- Ability to define predicate methods on enumerized object. (by @lest)
- Accept a values hash to store an attribute using custom values (e.g. integers) (by @lest)
- Correctly assign default value to handle mass assignment in Active Record (by @lest)
- Call super in attribute accessors if available (by @lest)
- Ability to enumerize attributes in a module and then include it into classes (by @lest)
- Add error to a model when attribute value is not included in allowed list (by @lest)
- Return humanized value if there are no translations (by @nashby)
- Integration with SimpleForm (by @nashby)
- Integration with Formtastic (by @lest)
- Make attribute accessors to work with ActiveRecord 3.1.x (by @lest)
- Mongoid support (by @lest)
- Boolean methods (by @Dreamfa11)