Class: ActiveEnquo::Type::Text
- Inherits:
-
ActiveEnquo::Type
- Object
- ActiveRecord::Type::Value
- ActiveEnquo::Type
- ActiveEnquo::Type::Text
- Defined in:
- lib/active_enquo.rb
Instance Method Summary collapse
- #decrypt(value, context, field) ⇒ Object
- #encrypt(value, context, field, enable_reduced_security_operations: false, no_query: false, enable_ordering: false) ⇒ Object
- #encrypt_metadata_value(name, value, field) ⇒ Object
- #type ⇒ Object
Instance Method Details
#decrypt(value, context, field) ⇒ Object
367 368 369 370 371 372 373 |
# File 'lib/active_enquo.rb', line 367 def decrypt(value, context, field) if value.nil? nil else field.decrypt_text(value, context) end end |
#encrypt(value, context, field, enable_reduced_security_operations: false, no_query: false, enable_ordering: false) ⇒ Object
338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 |
# File 'lib/active_enquo.rb', line 338 def encrypt(value, context, field, enable_reduced_security_operations: false, no_query: false, enable_ordering: false) if enable_ordering && !enable_reduced_security_operations raise ArgumentError, "Cannot enable ordering on an Enquo attribute unless Reduced Security Operations are enabled" end if value.nil? || value.is_a?(::ActiveRecord::StatementCache::Substitute) value else opts = { unsafe: enable_reduced_security_operations, no_query: no_query, } if enable_ordering opts[:order_prefix_length] = 8 end field.encrypt_text(value.respond_to?(:encode) ? value.encode("UTF-8") : value, context, **opts) end end |
#encrypt_metadata_value(name, value, field) ⇒ Object
358 359 360 361 362 363 364 365 |
# File 'lib/active_enquo.rb', line 358 def (name, value, field) case name when :length field.encrypt_text_length_query(value) else raise ArgumentError, "Unknown metadata name for Text field: #{name.inspect}" end end |
#type ⇒ Object
334 335 336 |
# File 'lib/active_enquo.rb', line 334 def type :enquo_text end |