module StringEnumerate::Models

Protected Instance Methods

enumerate_fields() click to toggle source
# File lib/string_enumerate/models.rb, line 87
def enumerate_fields
  self.class.class_variable_get(:@@enumerate_fields)
rescue NameError
  Rails.logger 'no enumerate fields'
  nil
end
set_enum_changed_at(field) click to toggle source
# File lib/string_enumerate/models.rb, line 73
def set_enum_changed_at(field) # rubocop:disable Naming/AccessorMethodName
  return if changes[field].blank? || !attribute_names.include?("#{field}_changed_at")

  send("#{field}_changed_at=", Time.zone.now)
end
set_enum_default(field, values) click to toggle source
# File lib/string_enumerate/models.rb, line 79
def set_enum_default(field, values)
  return if enumerate_fields[self.class.name.underscore][field][:set_default] == false

  return if send(field).present?

  send("#{field}=", values.to_a.first.first)
end
set_enum_fields() click to toggle source
# File lib/string_enumerate/models.rb, line 94
def set_enum_fields
  return unless enumerate_fields

  defined_enums.each do |field, values|
    set_enum_default(field, values)

    set_enum_changed_at(field)
  end
end