From c362ad00541e4ff7d5e5cf9c1eb18a9bacdf50b4 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Mon, 28 Sep 2015 15:27:09 +0200 Subject: [PATCH 01/13] makes spaces consistent --- app/controllers/debates_controller.rb | 10 ++++------ app/controllers/proposals_controller.rb | 10 +++++----- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/app/controllers/debates_controller.rb b/app/controllers/debates_controller.rb index ded2d2aa0..82bb87fd5 100644 --- a/app/controllers/debates_controller.rb +++ b/app/controllers/debates_controller.rb @@ -5,7 +5,6 @@ class DebatesController < ApplicationController has_orders %w{hot_score confidence_score created_at most_commented random}, only: :index load_and_authorize_resource - respond_to :html, :js def index @@ -31,10 +30,6 @@ class DebatesController < ApplicationController load_featured_tags end - def edit - load_featured_tags - end - def create @debate = Debate.new(debate_params) @debate.author = current_user @@ -48,6 +43,10 @@ class DebatesController < ApplicationController end end + def edit + load_featured_tags + end + def update @debate.assign_attributes(debate_params) if @debate.save_with_captcha @@ -92,5 +91,4 @@ class DebatesController < ApplicationController def parse_search_terms @search_terms = params[:search] if params[:search].present? end - end diff --git a/app/controllers/proposals_controller.rb b/app/controllers/proposals_controller.rb index 55d6fab0e..c9ce897d1 100644 --- a/app/controllers/proposals_controller.rb +++ b/app/controllers/proposals_controller.rb @@ -57,6 +57,11 @@ class ProposalsController < ApplicationController end end + def vote + @proposal.register_vote(current_user, 'yes') + set_proposal_votes(@proposal) + end + def flag Flag.flag(current_user, @proposal) respond_with @proposal, template: 'proposals/_refresh_flag_actions' @@ -67,11 +72,6 @@ class ProposalsController < ApplicationController respond_with @proposal, template: 'proposals/_refresh_flag_actions' end - def vote - @proposal.register_vote(current_user, 'yes') - set_proposal_votes(@proposal) - end - private def proposal_params From e7d1ae63d601e2a6e7c2b881e5f45d58cbe5c15e Mon Sep 17 00:00:00 2001 From: rgarcia Date: Mon, 28 Sep 2015 15:27:49 +0200 Subject: [PATCH 02/13] makes proposal tag filter case insensitive --- app/controllers/proposals_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/proposals_controller.rb b/app/controllers/proposals_controller.rb index c9ce897d1..c5cd8ca71 100644 --- a/app/controllers/proposals_controller.rb +++ b/app/controllers/proposals_controller.rb @@ -84,7 +84,7 @@ class ProposalsController < ApplicationController def parse_tag_filter if params[:tag].present? - @tag_filter = params[:tag] if ActsAsTaggableOn::Tag.where(name: params[:tag]).exists? + @tag_filter = params[:tag] if ActsAsTaggableOn::Tag.named(params[:tag]).exists? end end From 6426bd3a29475196726a2807f87e42558b835f93 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Mon, 28 Sep 2015 16:33:23 +0200 Subject: [PATCH 03/13] refactors debate and proposal flag actions --- app/controllers/concerns/flag_actions.rb | 20 ++++++++++++++++++++ app/controllers/debates_controller.rb | 12 ++---------- app/controllers/proposals_controller.rb | 12 ++---------- 3 files changed, 24 insertions(+), 20 deletions(-) create mode 100644 app/controllers/concerns/flag_actions.rb diff --git a/app/controllers/concerns/flag_actions.rb b/app/controllers/concerns/flag_actions.rb new file mode 100644 index 000000000..ef7ccb3af --- /dev/null +++ b/app/controllers/concerns/flag_actions.rb @@ -0,0 +1,20 @@ +module FlagActions + extend ActiveSupport::Concern + + def flag + Flag.flag(current_user, flagable) + respond_with flagable, template: "#{controller_name}/_refresh_flag_actions" + end + + def unflag + Flag.unflag(current_user, flagable) + respond_with flagable, template: "#{controller_name}/_refresh_flag_actions" + end + + private + + def flagable + instance_variable_get("@#{controller_name.singularize}") + end + +end \ No newline at end of file diff --git a/app/controllers/debates_controller.rb b/app/controllers/debates_controller.rb index 82bb87fd5..b43219d71 100644 --- a/app/controllers/debates_controller.rb +++ b/app/controllers/debates_controller.rb @@ -1,4 +1,6 @@ class DebatesController < ApplicationController + include FlagActions + before_action :parse_tag_filter, only: :index before_action :parse_search_terms, only: :index before_action :authenticate_user!, except: [:index, :show] @@ -62,16 +64,6 @@ class DebatesController < ApplicationController set_debate_votes(@debate) end - def flag - Flag.flag(current_user, @debate) - respond_with @debate, template: 'debates/_refresh_flag_actions' - end - - def unflag - Flag.unflag(current_user, @debate) - respond_with @debate, template: 'debates/_refresh_flag_actions' - end - private def debate_params diff --git a/app/controllers/proposals_controller.rb b/app/controllers/proposals_controller.rb index c5cd8ca71..fc5d954b6 100644 --- a/app/controllers/proposals_controller.rb +++ b/app/controllers/proposals_controller.rb @@ -1,4 +1,6 @@ class ProposalsController < ApplicationController + include FlagActions + before_action :parse_tag_filter, only: :index before_action :parse_search_terms, only: :index before_action :authenticate_user!, except: [:index, :show] @@ -62,16 +64,6 @@ class ProposalsController < ApplicationController set_proposal_votes(@proposal) end - def flag - Flag.flag(current_user, @proposal) - respond_with @proposal, template: 'proposals/_refresh_flag_actions' - end - - def unflag - Flag.unflag(current_user, @proposal) - respond_with @proposal, template: 'proposals/_refresh_flag_actions' - end - private def proposal_params From 708a41ee1c694ec1b79944e8badcfc66db0a5c9e Mon Sep 17 00:00:00 2001 From: rgarcia Date: Mon, 28 Sep 2015 19:23:27 +0200 Subject: [PATCH 04/13] refactors debate and proposal controllers --- app/controllers/concerns/commentable.rb | 105 ++++++++++++++++++++++++ app/controllers/debates_controller.rb | 67 +-------------- app/controllers/proposals_controller.rb | 67 +-------------- 3 files changed, 111 insertions(+), 128 deletions(-) create mode 100644 app/controllers/concerns/commentable.rb diff --git a/app/controllers/concerns/commentable.rb b/app/controllers/concerns/commentable.rb new file mode 100644 index 000000000..82c17ad15 --- /dev/null +++ b/app/controllers/concerns/commentable.rb @@ -0,0 +1,105 @@ +module Commentable + extend ActiveSupport::Concern + + def index + @commentables = @search_terms.present? ? commentable_model.search(@search_terms) : commentable_model.all + @commentables = @commentables.tagged_with(@tag_filter) if @tag_filter + @commentables = @commentables.page(params[:page]).for_render.send("sort_by_#{@current_order}") + @tag_cloud = tag_cloud + + set_commentable_votes(@commentables) + set_commentables_instance + end + + def show + set_commentable_votes(commentable) + @root_comments = commentable.comments.roots.recent.page(params[:page]).per(10).for_render + @comments = @root_comments.inject([]){|all, root| all + Comment.descendants_of(root).for_render} + @all_visible_comments = @root_comments + @comments + + set_comment_flags(@all_visible_comments) + set_commentable_instance + end + + def new + @commentable = commentable_model.new + set_commentable_instance + load_featured_tags + end + + def create + @commentable = commentable_model.new(strong_params) + @commentable.author = current_user + + if @commentable.save_with_captcha + track_event + redirect_to @commentable, notice: t('flash.actions.create.notice', resource_name: "#{controller_name.singularize.capitalize}") + else + load_featured_tags + set_commentable_instance + render :new + end + end + + def edit + load_featured_tags + end + + def update + commentable.assign_attributes(strong_params) + if commentable.save_with_captcha + redirect_to commentable, notice: t('flash.actions.update.notice', resource_name: "#{controller_name.singularize.capitalize}") + else + load_featured_tags + set_commentable_instance + render :edit + end + end + + private + def commentable + @commentable ||= instance_variable_get("@#{controller_name.singularize}") + end + + def commentable_model + @commentable_model ||= controller_name.singularize.capitalize.constantize + end + + def set_commentable_instance + instance_variable_set("@#{controller_name.singularize}", @commentable) + end + + def set_commentables_instance + instance_variable_set("@#{controller_name}", @commentables) + end + + def set_commentable_votes(instance) + send("set_#{controller_name.singularize}_votes", instance) + end + + def strong_params + send("#{controller_name.singularize}_params") + end + + def track_event + ahoy.track "#{controller_name.singularize}_created".to_sym, "#{controller_name.singularize}_id": commentable.id + end + + def tag_cloud + commentable_model.tag_counts.order("#{controller_name}_count": :desc, name: :asc).limit(20) + end + + def load_featured_tags + @featured_tags = ActsAsTaggableOn::Tag.where(featured: true) + end + + def parse_tag_filter + if params[:tag].present? + @tag_filter = params[:tag] if ActsAsTaggableOn::Tag.named(params[:tag]).exists? + end + end + + def parse_search_terms + @search_terms = params[:search] if params[:search].present? + end +end \ No newline at end of file diff --git a/app/controllers/debates_controller.rb b/app/controllers/debates_controller.rb index b43219d71..2bff1f0f8 100644 --- a/app/controllers/debates_controller.rb +++ b/app/controllers/debates_controller.rb @@ -1,64 +1,16 @@ class DebatesController < ApplicationController + include Commentable include FlagActions - before_action :parse_tag_filter, only: :index before_action :parse_search_terms, only: :index + before_action :parse_tag_filter, only: :index before_action :authenticate_user!, except: [:index, :show] + has_orders %w{hot_score confidence_score created_at most_commented random}, only: :index load_and_authorize_resource respond_to :html, :js - def index - @debates = @search_terms.present? ? Debate.search(@search_terms) : Debate.all - @debates = @debates.tagged_with(@tag_filter) if @tag_filter - @debates = @debates.page(params[:page]).for_render.send("sort_by_#{@current_order}") - @tag_cloud = Debate.tag_counts.order(debates_count: :desc, name: :asc).limit(20) - set_debate_votes(@debates) - end - - def show - set_debate_votes(@debate) - @commentable = @debate - @root_comments = @debate.comments.roots.recent.page(params[:page]).per(10).for_render - @comments = @root_comments.inject([]){|all, root| all + Comment.descendants_of(root).for_render} - - @all_visible_comments = @root_comments + @comments - set_comment_flags(@all_visible_comments) - end - - def new - @debate = Debate.new - load_featured_tags - end - - def create - @debate = Debate.new(debate_params) - @debate.author = current_user - - if @debate.save_with_captcha - ahoy.track :debate_created, debate_id: @debate.id - redirect_to @debate, notice: t('flash.actions.create.notice', resource_name: 'Debate') - else - load_featured_tags - render :new - end - end - - def edit - load_featured_tags - end - - def update - @debate.assign_attributes(debate_params) - if @debate.save_with_captcha - redirect_to @debate, notice: t('flash.actions.update.notice', resource_name: 'Debate') - else - load_featured_tags - render :edit - end - end - def vote @debate.register_vote(current_user, params[:value]) set_debate_votes(@debate) @@ -70,17 +22,4 @@ class DebatesController < ApplicationController params.require(:debate).permit(:title, :description, :tag_list, :terms_of_service, :captcha, :captcha_key) end - def load_featured_tags - @featured_tags = ActsAsTaggableOn::Tag.where(featured: true) - end - - def parse_tag_filter - if params[:tag].present? - @tag_filter = params[:tag] if ActsAsTaggableOn::Tag.named(params[:tag]).exists? - end - end - - def parse_search_terms - @search_terms = params[:search] if params[:search].present? - end end diff --git a/app/controllers/proposals_controller.rb b/app/controllers/proposals_controller.rb index fc5d954b6..b5069b184 100644 --- a/app/controllers/proposals_controller.rb +++ b/app/controllers/proposals_controller.rb @@ -1,64 +1,16 @@ class ProposalsController < ApplicationController + include Commentable include FlagActions - before_action :parse_tag_filter, only: :index before_action :parse_search_terms, only: :index + before_action :parse_tag_filter, only: :index before_action :authenticate_user!, except: [:index, :show] + has_orders %w{hot_score confidence_score created_at most_commented random}, only: :index load_and_authorize_resource respond_to :html, :js - def index - @proposals = @search_terms.present? ? Proposal.search(@search_terms) : Proposal.all - @proposals = @proposals.tagged_with(@tag_filter) if @tag_filter - @proposals = @proposals.page(params[:page]).for_render.send("sort_by_#{@current_order}") - @tag_cloud = Proposal.tag_counts.order(proposals_count: :desc, name: :asc).limit(20) - set_proposal_votes(@proposals) - end - - def show - set_proposal_votes(@proposal) - @commentable = @proposal - @root_comments = @proposal.comments.roots.recent.page(params[:page]).per(10).for_render - @comments = @root_comments.inject([]){|all, root| all + Comment.descendants_of(root).for_render} - - @all_visible_comments = @root_comments + @comments - set_comment_flags(@all_visible_comments) - end - - def new - @proposal = Proposal.new - load_featured_tags - end - - def create - @proposal = Proposal.new(proposal_params) - @proposal.author = current_user - - if @proposal.save_with_captcha - ahoy.track :proposal_created, proposal_id: @proposal.id - redirect_to @proposal, notice: t('flash.actions.create.notice', resource_name: 'Proposal') - else - load_featured_tags - render :new - end - end - - def edit - load_featured_tags - end - - def update - @proposal.assign_attributes(proposal_params) - if @proposal.save_with_captcha - redirect_to @proposal, notice: t('flash.actions.update.notice', resource_name: 'Proposal') - else - load_featured_tags - render :edit - end - end - def vote @proposal.register_vote(current_user, 'yes') set_proposal_votes(@proposal) @@ -70,17 +22,4 @@ class ProposalsController < ApplicationController params.require(:proposal).permit(:title, :question, :summary, :description, :external_url, :video_url, :responsible_name, :tag_list, :terms_of_service, :captcha, :captcha_key) end - def load_featured_tags - @featured_tags = ActsAsTaggableOn::Tag.where(featured: true) - end - - def parse_tag_filter - if params[:tag].present? - @tag_filter = params[:tag] if ActsAsTaggableOn::Tag.named(params[:tag]).exists? - end - end - - def parse_search_terms - @search_terms = params[:search] if params[:search].present? - end end From 066606f901f907ed8ffafa3e160e9a12d29a5a7b Mon Sep 17 00:00:00 2001 From: rgarcia Date: Mon, 28 Sep 2015 20:14:38 +0200 Subject: [PATCH 05/13] refactoring commentable concern --- app/controllers/concerns/commentable.rb | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/app/controllers/concerns/commentable.rb b/app/controllers/concerns/commentable.rb index 82c17ad15..d245588fa 100644 --- a/app/controllers/concerns/commentable.rb +++ b/app/controllers/concerns/commentable.rb @@ -33,7 +33,7 @@ module Commentable if @commentable.save_with_captcha track_event - redirect_to @commentable, notice: t('flash.actions.create.notice', resource_name: "#{controller_name.singularize.capitalize}") + redirect_to @commentable, notice: t('flash.actions.create.notice', resource_name: "#{commentable_name.capitalize}") else load_featured_tags set_commentable_instance @@ -48,7 +48,7 @@ module Commentable def update commentable.assign_attributes(strong_params) if commentable.save_with_captcha - redirect_to commentable, notice: t('flash.actions.update.notice', resource_name: "#{controller_name.singularize.capitalize}") + redirect_to commentable, notice: t('flash.actions.update.notice', resource_name: "#{commentable_name.capitalize}") else load_featured_tags set_commentable_instance @@ -58,35 +58,39 @@ module Commentable private def commentable - @commentable ||= instance_variable_get("@#{controller_name.singularize}") + @commentable ||= instance_variable_get("@#{commentable_name}") end def commentable_model - @commentable_model ||= controller_name.singularize.capitalize.constantize + @commentable_model ||= commentable_name.capitalize.constantize + end + + def commentable_name + controller_name.singularize end def set_commentable_instance - instance_variable_set("@#{controller_name.singularize}", @commentable) + instance_variable_set("@#{commentable_name}", @commentable) end def set_commentables_instance - instance_variable_set("@#{controller_name}", @commentables) + instance_variable_set("@#{commentable_name.pluralize}", @commentables) end def set_commentable_votes(instance) - send("set_#{controller_name.singularize}_votes", instance) + send("set_#{commentable_name}_votes", instance) end def strong_params - send("#{controller_name.singularize}_params") + send("#{commentable_name}_params") end def track_event - ahoy.track "#{controller_name.singularize}_created".to_sym, "#{controller_name.singularize}_id": commentable.id + ahoy.track "#{commentable_name}_created".to_sym, "#{commentable_name}_id": commentable.id end def tag_cloud - commentable_model.tag_counts.order("#{controller_name}_count": :desc, name: :asc).limit(20) + commentable_model.tag_counts.order("#{commentable_name.pluralize}_count": :desc, name: :asc).limit(20) end def load_featured_tags From 75181e9cf44c2275c9cc055de4cc9ffb3bd802e7 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Mon, 28 Sep 2015 20:19:24 +0200 Subject: [PATCH 06/13] adds consistency and speed to auxiliary methods --- app/controllers/concerns/commentable.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/concerns/commentable.rb b/app/controllers/concerns/commentable.rb index d245588fa..364a9fdda 100644 --- a/app/controllers/concerns/commentable.rb +++ b/app/controllers/concerns/commentable.rb @@ -61,12 +61,12 @@ module Commentable @commentable ||= instance_variable_get("@#{commentable_name}") end - def commentable_model - @commentable_model ||= commentable_name.capitalize.constantize + def commentable_name + @commentable_name ||= controller_name.singularize end - def commentable_name - controller_name.singularize + def commentable_model + @commentable_model ||= commentable_name.capitalize.constantize end def set_commentable_instance From 007442297712cdfdfc6bcdadc0f71460d0e06140 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Mon, 28 Sep 2015 20:46:18 +0200 Subject: [PATCH 07/13] uses resource_class instead of controller_name --- app/controllers/concerns/commentable.rb | 2 +- app/controllers/debates_controller.rb | 4 ++++ app/controllers/proposals_controller.rb | 3 +++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/controllers/concerns/commentable.rb b/app/controllers/concerns/commentable.rb index 364a9fdda..393ab1cb1 100644 --- a/app/controllers/concerns/commentable.rb +++ b/app/controllers/concerns/commentable.rb @@ -62,7 +62,7 @@ module Commentable end def commentable_name - @commentable_name ||= controller_name.singularize + @commentable_name ||= resource_class.to_s.downcase.singularize end def commentable_model diff --git a/app/controllers/debates_controller.rb b/app/controllers/debates_controller.rb index 2bff1f0f8..f50827120 100644 --- a/app/controllers/debates_controller.rb +++ b/app/controllers/debates_controller.rb @@ -22,4 +22,8 @@ class DebatesController < ApplicationController params.require(:debate).permit(:title, :description, :tag_list, :terms_of_service, :captcha, :captcha_key) end + def resource_class + Debate + end + end diff --git a/app/controllers/proposals_controller.rb b/app/controllers/proposals_controller.rb index b5069b184..7a90773fb 100644 --- a/app/controllers/proposals_controller.rb +++ b/app/controllers/proposals_controller.rb @@ -22,4 +22,7 @@ class ProposalsController < ApplicationController params.require(:proposal).permit(:title, :question, :summary, :description, :external_url, :video_url, :responsible_name, :tag_list, :terms_of_service, :captcha, :captcha_key) end + def resource_class + Proposal + end end From 22222bcf4c6e7f94130482d3cd69546f2869cb45 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Mon, 28 Sep 2015 21:16:47 +0200 Subject: [PATCH 08/13] uses resource instead of commentable --- app/controllers/concerns/commentable.rb | 69 +++++++++++++------------ 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/app/controllers/concerns/commentable.rb b/app/controllers/concerns/commentable.rb index 393ab1cb1..ac8b40460 100644 --- a/app/controllers/concerns/commentable.rb +++ b/app/controllers/concerns/commentable.rb @@ -2,41 +2,42 @@ module Commentable extend ActiveSupport::Concern def index - @commentables = @search_terms.present? ? commentable_model.search(@search_terms) : commentable_model.all - @commentables = @commentables.tagged_with(@tag_filter) if @tag_filter - @commentables = @commentables.page(params[:page]).for_render.send("sort_by_#{@current_order}") + @resources = @search_terms.present? ? resource_model.search(@search_terms) : resource_model.all + @resources = @resources.tagged_with(@tag_filter) if @tag_filter + @resources = @resources.page(params[:page]).for_render.send("sort_by_#{@current_order}") @tag_cloud = tag_cloud - set_commentable_votes(@commentables) - set_commentables_instance + set_resource_votes(@resources) + set_resources_instance end def show - set_commentable_votes(commentable) - @root_comments = commentable.comments.roots.recent.page(params[:page]).per(10).for_render + set_resource_votes(resource) + @commentable = resource + @root_comments = resource.comments.roots.recent.page(params[:page]).per(10).for_render @comments = @root_comments.inject([]){|all, root| all + Comment.descendants_of(root).for_render} @all_visible_comments = @root_comments + @comments set_comment_flags(@all_visible_comments) - set_commentable_instance + set_resource_instance end def new - @commentable = commentable_model.new - set_commentable_instance + @resource = resource_model.new + set_resource_instance load_featured_tags end def create - @commentable = commentable_model.new(strong_params) - @commentable.author = current_user + @resource = resource_model.new(strong_params) + @resource.author = current_user - if @commentable.save_with_captcha + if @resource.save_with_captcha track_event - redirect_to @commentable, notice: t('flash.actions.create.notice', resource_name: "#{commentable_name.capitalize}") + redirect_to @resource, notice: t('flash.actions.create.notice', resource_name: "#{resource_name.capitalize}") else load_featured_tags - set_commentable_instance + set_resource_instance render :new end end @@ -46,51 +47,51 @@ module Commentable end def update - commentable.assign_attributes(strong_params) - if commentable.save_with_captcha - redirect_to commentable, notice: t('flash.actions.update.notice', resource_name: "#{commentable_name.capitalize}") + resource.assign_attributes(strong_params) + if resource.save_with_captcha + redirect_to resource, notice: t('flash.actions.update.notice', resource_name: "#{resource_name.capitalize}") else load_featured_tags - set_commentable_instance + set_resource_instance render :edit end end private - def commentable - @commentable ||= instance_variable_get("@#{commentable_name}") + def resource + @resource ||= instance_variable_get("@#{resource_name}") end - def commentable_name - @commentable_name ||= resource_class.to_s.downcase.singularize + def resource_name + @resource_name ||= resource_class.to_s.downcase.singularize end - def commentable_model - @commentable_model ||= commentable_name.capitalize.constantize + def resource_model + @resource_model ||= resource_name.capitalize.constantize end - def set_commentable_instance - instance_variable_set("@#{commentable_name}", @commentable) + def set_resource_instance + instance_variable_set("@#{resource_name}", @resource) end - def set_commentables_instance - instance_variable_set("@#{commentable_name.pluralize}", @commentables) + def set_resources_instance + instance_variable_set("@#{resource_name.pluralize}", @resources) end - def set_commentable_votes(instance) - send("set_#{commentable_name}_votes", instance) + def set_resource_votes(instance) + send("set_#{resource_name}_votes", instance) end def strong_params - send("#{commentable_name}_params") + send("#{resource_name}_params") end def track_event - ahoy.track "#{commentable_name}_created".to_sym, "#{commentable_name}_id": commentable.id + ahoy.track "#{resource_name}_created".to_sym, "#{resource_name}_id": resource.id end def tag_cloud - commentable_model.tag_counts.order("#{commentable_name.pluralize}_count": :desc, name: :asc).limit(20) + resource_model.tag_counts.order("#{resource_name.pluralize}_count": :desc, name: :asc).limit(20) end def load_featured_tags From ac88ea98e9506f0a668ad612e83f4b0e69382219 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Tue, 29 Sep 2015 11:58:29 +0200 Subject: [PATCH 09/13] fixes typo --- app/controllers/concerns/flag_actions.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/controllers/concerns/flag_actions.rb b/app/controllers/concerns/flag_actions.rb index ef7ccb3af..6bb0b61d6 100644 --- a/app/controllers/concerns/flag_actions.rb +++ b/app/controllers/concerns/flag_actions.rb @@ -2,18 +2,18 @@ module FlagActions extend ActiveSupport::Concern def flag - Flag.flag(current_user, flagable) - respond_with flagable, template: "#{controller_name}/_refresh_flag_actions" + Flag.flag(current_user, flaggable) + respond_with flaggable, template: "#{controller_name}/_refresh_flag_actions" end def unflag - Flag.unflag(current_user, flagable) - respond_with flagable, template: "#{controller_name}/_refresh_flag_actions" + Flag.unflag(current_user, flaggable) + respond_with flaggable, template: "#{controller_name}/_refresh_flag_actions" end private - def flagable + def flaggable instance_variable_get("@#{controller_name.singularize}") end From 25c38f942e32a162cae89d3486ca7e8411eef563 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Tue, 29 Sep 2015 12:01:46 +0200 Subject: [PATCH 10/13] refactors resource_class into resource_model --- app/controllers/concerns/commentable.rb | 6 +----- app/controllers/debates_controller.rb | 2 +- app/controllers/proposals_controller.rb | 2 +- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/app/controllers/concerns/commentable.rb b/app/controllers/concerns/commentable.rb index ac8b40460..699ae9412 100644 --- a/app/controllers/concerns/commentable.rb +++ b/app/controllers/concerns/commentable.rb @@ -63,11 +63,7 @@ module Commentable end def resource_name - @resource_name ||= resource_class.to_s.downcase.singularize - end - - def resource_model - @resource_model ||= resource_name.capitalize.constantize + @resource_name ||= resource_model.to_s.downcase.singularize end def set_resource_instance diff --git a/app/controllers/debates_controller.rb b/app/controllers/debates_controller.rb index f50827120..52d588248 100644 --- a/app/controllers/debates_controller.rb +++ b/app/controllers/debates_controller.rb @@ -22,7 +22,7 @@ class DebatesController < ApplicationController params.require(:debate).permit(:title, :description, :tag_list, :terms_of_service, :captcha, :captcha_key) end - def resource_class + def resource_model Debate end diff --git a/app/controllers/proposals_controller.rb b/app/controllers/proposals_controller.rb index 7a90773fb..c491b55ba 100644 --- a/app/controllers/proposals_controller.rb +++ b/app/controllers/proposals_controller.rb @@ -22,7 +22,7 @@ class ProposalsController < ApplicationController params.require(:proposal).permit(:title, :question, :summary, :description, :external_url, :video_url, :responsible_name, :tag_list, :terms_of_service, :captcha, :captcha_key) end - def resource_class + def resource_model Proposal end end From b7f115b710df66aec915ee03bf87f7947ce10a43 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Tue, 29 Sep 2015 12:03:19 +0200 Subject: [PATCH 11/13] users resource_model instead of controller_name --- app/controllers/concerns/flag_actions.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/concerns/flag_actions.rb b/app/controllers/concerns/flag_actions.rb index 6bb0b61d6..3f5d0b2c7 100644 --- a/app/controllers/concerns/flag_actions.rb +++ b/app/controllers/concerns/flag_actions.rb @@ -14,7 +14,7 @@ module FlagActions private def flaggable - instance_variable_get("@#{controller_name.singularize}") + instance_variable_get("@#{resource_model.to_s.downcase}") end end \ No newline at end of file From 1360d07df1947fad1d36c8446b4ba6ea9add73d8 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Tue, 29 Sep 2015 12:03:37 +0200 Subject: [PATCH 12/13] removes unnecessary singularize call --- app/controllers/concerns/commentable.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/concerns/commentable.rb b/app/controllers/concerns/commentable.rb index 699ae9412..431b36592 100644 --- a/app/controllers/concerns/commentable.rb +++ b/app/controllers/concerns/commentable.rb @@ -63,7 +63,7 @@ module Commentable end def resource_name - @resource_name ||= resource_model.to_s.downcase.singularize + @resource_name ||= resource_model.to_s.downcase end def set_resource_instance From e1a2c0f523279bebc07aa55bac688b6e409dae96 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Tue, 29 Sep 2015 15:56:55 +0200 Subject: [PATCH 13/13] changes commentable concern for commentable_actions concern --- .../concerns/{commentable.rb => commentable_actions.rb} | 2 +- app/controllers/debates_controller.rb | 2 +- app/controllers/proposals_controller.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename app/controllers/concerns/{commentable.rb => commentable_actions.rb} (98%) diff --git a/app/controllers/concerns/commentable.rb b/app/controllers/concerns/commentable_actions.rb similarity index 98% rename from app/controllers/concerns/commentable.rb rename to app/controllers/concerns/commentable_actions.rb index 431b36592..d59c67906 100644 --- a/app/controllers/concerns/commentable.rb +++ b/app/controllers/concerns/commentable_actions.rb @@ -1,4 +1,4 @@ -module Commentable +module CommentableActions extend ActiveSupport::Concern def index diff --git a/app/controllers/debates_controller.rb b/app/controllers/debates_controller.rb index 52d588248..7981fb121 100644 --- a/app/controllers/debates_controller.rb +++ b/app/controllers/debates_controller.rb @@ -1,5 +1,5 @@ class DebatesController < ApplicationController - include Commentable + include CommentableActions include FlagActions before_action :parse_search_terms, only: :index diff --git a/app/controllers/proposals_controller.rb b/app/controllers/proposals_controller.rb index c491b55ba..14dce9de1 100644 --- a/app/controllers/proposals_controller.rb +++ b/app/controllers/proposals_controller.rb @@ -1,5 +1,5 @@ class ProposalsController < ApplicationController - include Commentable + include CommentableActions include FlagActions before_action :parse_search_terms, only: :index