class UsernameChanger def initialize(user, new_username, actor = nil) @user = user @new_username = new_username @actor = actor end def self.change(user, new_username, actor = nil) self.new(user, new_username, actor).change end def change if @actor && @user.username != @new_username StaffActionLogger.new(@actor).log_username_change(@user, @user.username, @new_username) end # future work: update mentions and quotes @user.username = @new_username @user.save end end