Module: ActiveEnum::ActsAsEnum::ClassMethods
- Defined in:
- lib/active_enum/acts_as_enum.rb
Instance Method Summary collapse
- #[](index) ⇒ Object
- #get(index, raise_on_not_found: ActiveEnum.raise_on_not_found) ⇒ Object
- #ids ⇒ Object
-
#include?(value) ⇒ Boolean
Enables use as a delimiter in inclusion validation.
-
#meta(index, raise_on_not_found: ActiveEnum.raise_on_not_found) ⇒ Object
Access any meta data defined for a given id or name.
- #names ⇒ Object
- #to_select ⇒ Object
- #values ⇒ Object
Instance Method Details
#[](index) ⇒ Object
35 36 37 |
# File 'lib/active_enum/acts_as_enum.rb', line 35 def [](index) get(index) end |
#get(index, raise_on_not_found: ActiveEnum.raise_on_not_found) ⇒ Object
39 40 41 42 43 |
# File 'lib/active_enum/acts_as_enum.rb', line 39 def get(index, raise_on_not_found: ActiveEnum.raise_on_not_found) row = get_value(index, raise_on_not_found) return if row.nil? index.is_a?(Integer) ? row.send([:name_column]) : row.id end |
#ids ⇒ Object
23 24 25 |
# File 'lib/active_enum/acts_as_enum.rb', line 23 def ids enum_values.map { |v| v.id } end |
#include?(value) ⇒ Boolean
Enables use as a delimiter in inclusion validation
53 54 55 56 57 |
# File 'lib/active_enum/acts_as_enum.rb', line 53 def include?(value) return super if value.is_a?(Module) !self[value].nil? end |
#meta(index, raise_on_not_found: ActiveEnum.raise_on_not_found) ⇒ Object
Access any meta data defined for a given id or name. Returns a hash.
46 47 48 49 50 |
# File 'lib/active_enum/acts_as_enum.rb', line 46 def (index, raise_on_not_found: ActiveEnum.raise_on_not_found) row = lookup_relation(index).unscope(:select).first raise(ActiveEnum::NotFound, "#{self} value for '#{index}' was not found") if raise_on_not_found row&.attributes.except(primary_key.to_s, [:name_column].to_s) end |
#names ⇒ Object
27 28 29 |
# File 'lib/active_enum/acts_as_enum.rb', line 27 def names enum_values.map { |v| v.send([:name_column]) } end |
#to_select ⇒ Object
31 32 33 |
# File 'lib/active_enum/acts_as_enum.rb', line 31 def to_select enum_values.map { |v| [v.send([:name_column]), v.id] } end |
#values ⇒ Object
19 20 21 |
# File 'lib/active_enum/acts_as_enum.rb', line 19 def values enum_values.map { |v| [ v.id, v.send([:name_column]) ] } end |