Module: ConcernsOnRails::Models::Encryptable::ClassMethods
- Includes:
- Support::ColumnGuard
- Defined in:
- lib/concerns_on_rails/models/encryptable.rb
Instance Method Summary collapse
-
#encryptable(*fields, type: :string, key: nil) ⇒ Object
Declare one or more encrypted fields.
Methods included from Support::ColumnGuard
Instance Method Details
#encryptable(*fields, type: :string, key: nil) ⇒ Object
Declare one or more encrypted fields. Repeatable; per-field options.
214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 |
# File 'lib/concerns_on_rails/models/encryptable.rb', line 214 def encryptable(*fields, type: :string, key: nil) raise ArgumentError, "#{LABEL}: at least one field is required" if fields.empty? type = type.to_sym raise ArgumentError, "#{LABEL}: unknown type ':#{type}' (valid: #{VALID_TYPES.join(', ')})" unless VALID_TYPES.include?(type) ensure_columns!(LABEL, *fields) fields.each do |field| field = field.to_sym encryptable_guard_auditable!(field) self.encryptable_rules = encryptable_rules.merge(field => { type: type, key: key }) attribute field, EncryptedType.new(type: type, key: key) encryptable_define_helpers(field) encryptable_register_filter_parameter(field) end end |