class EncryptedField::Encoder

EncryptedField::Encoder prepends the policy name to the encrypted string

Attributes

encoder[W]

Public Class Methods

encoder() click to toggle source
# File lib/encrypted-field/encoder.rb, line 9
def encoder
  @encoder ||= Encoder.new
end

Public Instance Methods

decrypt(encrypted_str_with_policy_name, fallback_policy_name = nil) click to toggle source
# File lib/encrypted-field/encoder.rb, line 24
def decrypt(encrypted_str_with_policy_name, fallback_policy_name = nil)
  policy_name, encrypted_str = encrypted_str_with_policy_name.split(policy_separator, 2)
  policy_name =
    if policy?(policy_name) || fallback_policy_name.nil?
      policy_name
    else
      encrypted_str = encrypted_str_with_policy_name
      fallback_policy_name
    end

  get_policy(policy_name).decrypt(encrypted_str)
end
encrypt(str, policy_name) click to toggle source
# File lib/encrypted-field/encoder.rb, line 14
def encrypt(str, policy_name)
  policy = get_policy(policy_name)

  if policy.prefix_with_policy_name?
    policy_name.dup << policy_separator << policy.encrypt(str)
  else
    policy.encrypt(str)
  end
end

Private Instance Methods

config() click to toggle source
# File lib/encrypted-field/encoder.rb, line 39
def config
  Config.instance
end
get_policy(policy_name) click to toggle source
# File lib/encrypted-field/encoder.rb, line 47
def get_policy(policy_name)
  config.policies[policy_name] || raise("missing policy #{policy_name}")
end
policy?(policy_name) click to toggle source
# File lib/encrypted-field/encoder.rb, line 51
def policy?(policy_name)
  config.policies.key?(policy_name)
end
policy_separator() click to toggle source
# File lib/encrypted-field/encoder.rb, line 43
def policy_separator
  config.policy_separator_or_default
end