Class: Decidim::FriendlySignup::UserAttributeValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/decidim/friendly_signup/user_attribute_validator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attribute:, form:) ⇒ UserAttributeValidator

Returns a new instance of UserAttributeValidator.



6
7
8
9
# File 'lib/decidim/friendly_signup/user_attribute_validator.rb', line 6

def initialize(attribute:, form:)
  @attribute = attribute
  @form = form
end

Instance Attribute Details

#attributeObject (readonly)

Returns the value of attribute attribute.



12
13
14
# File 'lib/decidim/friendly_signup/user_attribute_validator.rb', line 12

def attribute
  @attribute
end

#formObject (readonly)

Returns the value of attribute form.



12
13
14
# File 'lib/decidim/friendly_signup/user_attribute_validator.rb', line 12

def form
  @form
end

Instance Method Details

#errorObject



32
33
34
35
36
37
38
39
40
41
# File 'lib/decidim/friendly_signup/user_attribute_validator.rb', line 32

def error
  return if valid?

  errors.map do |msg|
    key = find_key(msg)
    next if key == :nickname_included_in_password && FriendlySignup.hide_nickname.present?

    custom_error(key).presence || msg.upcase_first
  end.join(".<br>")
end

#errorsObject



28
29
30
# File 'lib/decidim/friendly_signup/user_attribute_validator.rb', line 28

def errors
  @errors ||= valid_attribute? ? form.errors[attribute] : ["Invalid attribute"]
end

#inputObject



24
25
26
# File 'lib/decidim/friendly_signup/user_attribute_validator.rb', line 24

def input
  @input ||= form.public_send(attribute).to_s.dup if valid_attribute?
end

#valid?Boolean

Returns:

  • (Boolean)


14
15
16
17
18
19
20
21
22
# File 'lib/decidim/friendly_signup/user_attribute_validator.rb', line 14

def valid?
  @valid ||= begin
    form.validate
    # Check if the password isn't empty, if it is, add it to form errors
    form.errors.add(:password, :password_blank) if attribute == "password" && form.password.blank?
    # we don't validate the form but the attribute alone
    errors.blank?
  end
end