class Hello::Business::Registration::SignUp

Attributes

user[R]

Public Class Methods

new() click to toggle source
# File lib/hello/business/registration/sign_up.rb, line 7
def initialize
  init_user
end

Public Instance Methods

email_taken?() click to toggle source

errors.added? DOES NOT WORK when the validation was given a custom message :)

# File lib/hello/business/registration/sign_up.rb, line 23
def email_taken?
  @email_credential && @email_credential.errors.added?(:email, :taken)
end
method_missing(method_name, *args, &block) click to toggle source
# File lib/hello/business/registration/sign_up.rb, line 32
def method_missing(method_name, *args, &block)
  user.send(method_name)
end
register(attrs) click to toggle source
# File lib/hello/business/registration/sign_up.rb, line 11
def register(attrs)
  init_user(attrs)

  user.save.tap do
    merge_errors_for(@email_credential)
    merge_errors_for(@password_credential)
    errors.delete(:email_credentials)
    errors.delete(:password_credentials)
  end
end
username_taken?() click to toggle source

errors.added? DOES NOT WORK when the validation was given a custom message :)

# File lib/hello/business/registration/sign_up.rb, line 28
def username_taken?
  errors.added?(:username, :taken)
end

Private Instance Methods

defaults() click to toggle source
# File lib/hello/business/registration/sign_up.rb, line 46
def defaults
  {
    locale:    I18n.locale.to_s,
    time_zone: Time.zone.name,
    email: '',
    password: '',
  }
end
init_user(attrs={}) click to toggle source
# File lib/hello/business/registration/sign_up.rb, line 38
def init_user(attrs={})
  attrs.reverse_merge!(defaults)
  @user = User.new(attrs)
  @email_credential = user.email_credentials.first
  @password_credential = user.password_credentials.first
  @errors = user.errors
end
merge_errors_for(model) click to toggle source
# File lib/hello/business/registration/sign_up.rb, line 55
def merge_errors_for(model)
  if model
    model.valid?
    model.errors.each do |k, v|
      errors.add(k, v)
    end
  end
end