module CustomFields::Types::Password::Target::ClassMethods

Public Instance Methods

apply_password_custom_field(klass, rule) click to toggle source

Add a password field

@param [ Class ] klass The class to modify @param [ Hash ] rule It contains the name of the field and if it is required or not

# File lib/custom_fields/types/password.rb, line 19
def apply_password_custom_field(klass, rule)
  label = rule['label']
  name = rule['name']

  klass.field :"#{name}_hash"

  klass.send(:define_method, name.to_sym) { '' }
  klass.send(:define_method, :"#{name}=") { |value| _encrypt_password(name, value) }
  klass.send(:define_method, :"#{name}_confirmation") { '' }
  klass.send(:define_method, :"#{name}_confirmation=") { |value| _set_confirmation_password(name, value) }

  klass.validate { _check_password(label, name) }
end
password_attribute_get(_instance, _name) click to toggle source

Build a hash storing the raw value for a string custom field of an instance.

@param [ Object ] instance An instance of the class enhanced by the custom_fields @param [ String ] name The name of the string custom field

@return [ Hash ] field name => raw value

# File lib/custom_fields/types/password.rb, line 41
def password_attribute_get(_instance, _name)
  {}
end
password_attribute_set(instance, name, attributes) click to toggle source

Set the value for the instance and the string field specified by the 2 params.

@param [ Object ] instance An instance of the class enhanced by the custom_fields @param [ String ] name The name of the string custom field @param [ Hash ] attributes The attributes used to fetch the values

# File lib/custom_fields/types/password.rb, line 52
def password_attribute_set(instance, name, attributes)
  instance._encrypt_password(name, attributes[name])
end