Class: EncryptedField::Config

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/encrypted-field/config.rb

Overview

EncryptedField::Config keeps track of all policies and the policy separator

Constant Summary collapse

POLICY_DEFAULT_SEPARATOR =
'.'

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#policy_separatorObject (readonly)

Returns the value of attribute policy_separator.



12
13
14
# File 'lib/encrypted-field/config.rb', line 12

def policy_separator
  @policy_separator
end

Class Method Details

.configure(&block) ⇒ Object



39
40
41
# File 'lib/encrypted-field/config.rb', line 39

def self.configure(&block)
  instance.instance_eval(&block)
end

Instance Method Details

#add_custom_policy(policy_name, policy) ⇒ Object



34
35
36
37
# File 'lib/encrypted-field/config.rb', line 34

def add_custom_policy(policy_name, policy)
  valid_policy_name!(policy_name)
  policies[policy_name.to_s] = policy
end

#add_policy(policy_name, algorithm, secret_key, options = {}) ⇒ Object



26
27
28
# File 'lib/encrypted-field/config.rb', line 26

def add_policy(policy_name, algorithm, secret_key, options = {})
  add_custom_policy(policy_name, PolicyWithIV.new(algorithm, secret_key, options))
end

#add_policy_without_iv(policy_name, algorithm, secret_key, options = {}) ⇒ Object



30
31
32
# File 'lib/encrypted-field/config.rb', line 30

def add_policy_without_iv(policy_name, algorithm, secret_key, options = {})
  add_custom_policy(policy_name, PolicyWithoutIV.new(algorithm, secret_key, options))
end

#policiesObject



14
15
16
# File 'lib/encrypted-field/config.rb', line 14

def policies
  @policies ||= {}
end

#policy_separator_or_defaultObject



22
23
24
# File 'lib/encrypted-field/config.rb', line 22

def policy_separator_or_default
  policy_separator || POLICY_DEFAULT_SEPARATOR
end

#reset!Object



43
44
45
46
# File 'lib/encrypted-field/config.rb', line 43

def reset!
  @policies = nil
  @policy_separator = nil
end

#set_policy_separator(policy_separator) ⇒ Object



18
19
20
# File 'lib/encrypted-field/config.rb', line 18

def set_policy_separator(policy_separator)
  @policy_separator = policy_separator
end

#valid_policy_name!(policy_name) ⇒ Object



48
49
50
51
52
# File 'lib/encrypted-field/config.rb', line 48

def valid_policy_name!(policy_name)
  return unless policy_name.to_s.include?(policy_separator_or_default)

  raise("policy name #{policy_name} can not include \"#{policy_separator_or_default}\"")
end