class Hello::Business::Management::UpdateProfile

Public Class Methods

new(user) click to toggle source
# File lib/hello/business/management/update_profile.rb, line 5
def initialize(user)
  @user = user
  self.class.send :attr_accessor, *permitted_column_names
end

Public Instance Methods

errors() click to toggle source

def update(attrs)

@user.update(clear_attrs(attrs))

end

# File lib/hello/business/management/update_profile.rb, line 23
def errors
  @user.errors
end
update(attrs) click to toggle source
# File lib/hello/business/management/update_profile.rb, line 10
def update(attrs)
  # puts "update(#{attrs})".blue
  clear_attrs(attrs).each do |k, v|
    # puts "@user.send('#{k}=', '#{v}')".blue
    @user.send("#{k}=", v)
  end
  @user.save
end

Private Instance Methods

clear_attrs(attrs) click to toggle source
# File lib/hello/business/management/update_profile.rb, line 29
def clear_attrs(attrs)
  attrs.slice(*permitted_column_names)
end
permitted_column_names() click to toggle source
# File lib/hello/business/management/update_profile.rb, line 33
def permitted_column_names
  ignore_columns = %w(id created_at updated_at role)
  the_columns = ::User.column_names
  the_columns -= ignore_columns
  the_columns.reject! { |column| column.ends_with? '_count' }
  the_columns.reject! { |column| column.starts_with? 'password_' }
  the_columns
end