instance method
assert_valid_enum_definition_values
Ruby on Rails 8.1.2
Since v6.0.6 PrivateSignature
assert_valid_enum_definition_values(values)
No documentation comment.
Parameters
-
valuesreq
Source
# File activerecord/lib/active_record/enum.rb, line 335
def assert_valid_enum_definition_values(values)
case values
when Hash
if values.empty?
raise ArgumentError, "Enum values #{values} must not be empty."
end
if values.keys.any?(&:blank?)
raise ArgumentError, "Enum values #{values} must not contain a blank name."
end
values = values.transform_values do |value|
value.is_a?(Symbol) ? value.name : value
end
values.each_value do |value|
case value
when String, Integer, Float, true, false, nil
# noop
else
raise ArgumentError, "Enum values #{values} must be only booleans, integers, floats, symbols or strings, got: #{value.class}"
end
end
when Array
if values.empty?
raise ArgumentError, "Enum values #{values} must not be empty."
end
unless values.all?(Symbol) || values.all?(String)
raise ArgumentError, "Enum values #{values} must only contain symbols or strings."
end
if values.any?(&:blank?)
raise ArgumentError, "Enum values #{values} must not contain a blank name."
end
else
raise ArgumentError, "Enum values #{values} must be either a non-empty hash or an array."
end
values
end
Defined in activerecord/lib/active_record/enum.rb line 335
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::Enum