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