diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 1a98649..257c8ea 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -47,18 +47,12 @@ def destroy end def following - @title = "Following" - @user = User.find(params[:id]) - @users = @user.followed_users.paginate(page: params[:page]) - @subtitle = "You Are Following #{@user.followed_users.size} Bloggers" + @presenter = Users::FollowedUsersPresenter.new(params[:id], params[:page]) render 'show_follow' end def followers - @title = "Followers" - @user = User.find(params[:id]) - @users = @user.followers.paginate(page: params[:page]) - @subtitle = "Your Got #{@user.followers.size} Followers" + @presenter = Users::FollowersPresenter.new(params[:id], params[:page]) render 'show_follow' end diff --git a/app/presenters/users/follow_presenter.rb b/app/presenters/users/follow_presenter.rb new file mode 100644 index 0000000..00050ae --- /dev/null +++ b/app/presenters/users/follow_presenter.rb @@ -0,0 +1,18 @@ +module Users + class FollowPresenter + include Draper::ViewHelpers + + def initialize(user_id, page) + @user_id = user_id + @page = page + end + + def user + @user ||= User.find(@user_id) + end + + def cache_key + [user, title] + end + end +end diff --git a/app/presenters/users/followed_users_presenter.rb b/app/presenters/users/followed_users_presenter.rb new file mode 100644 index 0000000..d5e78c7 --- /dev/null +++ b/app/presenters/users/followed_users_presenter.rb @@ -0,0 +1,15 @@ +module Users + class FollowedUsersPresenter < FollowPresenter + def users + @users ||= user.followed_users.paginate(page: @page) + end + + def title + "Following" + end + + def subtitle + @subtitle ||= "You Are Following #{h.pluralize(user.followed_users.size, "Blogger")}" + end + end +end diff --git a/app/presenters/users/followers_presenter.rb b/app/presenters/users/followers_presenter.rb new file mode 100644 index 0000000..8d9318d --- /dev/null +++ b/app/presenters/users/followers_presenter.rb @@ -0,0 +1,16 @@ +module Users + class FollowersPresenter < FollowPresenter + def users + @users ||= user.followers.paginate(page: @page) + end + + def title + "Followers" + end + + def subtitle + @subtitle ||= "Your Got #{h.pluralize(user.followers.size, "Followers")}" + end + end +end + diff --git a/app/views/users/show_follow.html.erb b/app/views/users/show_follow.html.erb index ecd5303..e1e4ec2 100644 --- a/app/views/users/show_follow.html.erb +++ b/app/views/users/show_follow.html.erb @@ -1,19 +1,19 @@ -<% provide(:title, @title) %> +<% provide(:title, @presenter.title) %> -<% cache [@user, @title] do %> +<% cache @presenter.cache_key do %>