Module: EncryptAttr::Base

Defined in:
lib/encrypt_attr/base.rb

Defined Under Namespace

Modules: ClassMethods

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.encryptorObject

Define the object that will encrypt/decrypt values. By default, it’s EncryptAttr::Encryptor



10
11
12
# File 'lib/encrypt_attr/base.rb', line 10

def encryptor
  @encryptor
end

Class Method Details

.included(target) ⇒ Object



3
4
5
# File 'lib/encrypt_attr/base.rb', line 3

def self.included(target)
  target.extend(ClassMethods)
end

.secret_tokenObject



13
14
15
# File 'lib/encrypt_attr/base.rb', line 13

def self.secret_token
  @secret_token
end

.secret_token=(secret_token) ⇒ Object



17
18
19
20
# File 'lib/encrypt_attr/base.rb', line 17

def self.secret_token=(secret_token)
  validate_secret_token(secret_token.to_s)
  @secret_token = secret_token.to_s
end

.validate_secret_token(secret_token) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/encrypt_attr/base.rb', line 22

def self.validate_secret_token(secret_token)
  if secret_token.size < 100
    offending_line = caller
                      .reject {|entry| entry.include?(__dir__) || entry.include?('forwardable.rb') }
                      .first[/^(.*?:\d+)/, 1]
    warn "[encrypt_attribute] secret token must have at least 100 characters (called from #{offending_line})"
  end
end