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, blind_index: nil) ⇒ Object
Declare one or more encrypted fields.
Methods included from Support::ColumnGuard
#ensure_columns!, #ensure_columns_on!, #schema_reachable?
Instance Method Details
#encryptable(*fields, type: :string, key: nil, blind_index: nil) ⇒ Object
Declare one or more encrypted fields. Repeatable; per-field options.
232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 |
# File 'lib/concerns_on_rails/models/encryptable.rb', line 232 def encryptable(*fields, type: :string, key: nil, blind_index: nil) type = type.to_sym encryptable_validate!(fields, type, blind_index) ensure_columns!(LABEL, *fields) fields.each do |field| field = field.to_sym encryptable_guard_auditable!(field) bi = encryptable_normalize_blind_index(field, blind_index) ensure_columns!(LABEL, bi[:column]) if bi self.encryptable_rules = encryptable_rules.merge(field => { type: type, key: key, blind_index: bi }) attribute field, EncryptedType.new(type: type, key: key) encryptable_define_helpers(field) encryptable_define_blind_index(field, bi) if bi encryptable_register_filter_parameter(field) end end |