From 2a55c2d94d2bc7a56bba2aa745dfee53bb5192c6 Mon Sep 17 00:00:00 2001 From: kikito Date: Mon, 8 Feb 2016 15:25:51 +0100 Subject: [PATCH] refactors debate_links using an attr_accessor refactors debate_links using an attr_accessor --- app/controllers/debate_links_controller.rb | 8 ++++---- app/models/debate.rb | 22 ++++++++-------------- spec/models/debate_spec.rb | 1 + 3 files changed, 13 insertions(+), 18 deletions(-) diff --git a/app/controllers/debate_links_controller.rb b/app/controllers/debate_links_controller.rb index 3de0b9f1b..b3c2f156c 100644 --- a/app/controllers/debate_links_controller.rb +++ b/app/controllers/debate_links_controller.rb @@ -8,11 +8,11 @@ class DebateLinksController < ApplicationController private def create_params - params.require(:debate).permit(:title, :external_link, :tag_list, :terms_of_service, :captcha, :captcha_key) + params.require(:debate).permit(:title, :external_link, :tag_list, :terms_of_service, :captcha, :captcha_key).merge(link_required: true) end def debate_params - params.require(:debate).permit(:title, :external_link, :tag_list, :terms_of_service, :captcha, :captcha_key) + params.require(:debate).permit(:title, :external_link, :tag_list, :terms_of_service, :captcha, :captcha_key).merge(link_required: true) end def after_create_path @@ -21,6 +21,6 @@ class DebateLinksController < ApplicationController def resource_model Debate - end - + end + end diff --git a/app/models/debate.rb b/app/models/debate.rb index fa78f8d7a..83ab5302b 100644 --- a/app/models/debate.rb +++ b/app/models/debate.rb @@ -24,9 +24,9 @@ class Debate < ActiveRecord::Base validates :title, length: { in: 4..Debate.title_max_length } validates :description, length: { in: 10..Debate.description_max_length }, :if => :description_required? - validates :external_link, :presence => true, - length: { in: 10..Debate.external_link_max_length }, - format: { with: /https?:\/\/*/}, + validates :external_link, :presence => true, + length: { in: 10..Debate.external_link_max_length }, + format: { with: /https?:\/\/*/}, :if => :link_required? validates :terms_of_service, acceptance: { allow_nil: false }, on: :create @@ -45,6 +45,8 @@ class Debate < ActiveRecord::Base # Ahoy setup visitable # Ahoy will automatically assign visit_id on create + attr_accessor :link_required + def searchable_values { title => 'A', author.username => 'B', @@ -132,19 +134,11 @@ class Debate < ActiveRecord::Base end def description_required? - if self.external_link == nil - return true - else - return false - end + !link_required? end - + def link_required? - if self.external_link == nil - return false - else - return true - end + link_required end end diff --git a/spec/models/debate_spec.rb b/spec/models/debate_spec.rb index 50241e1f0..e43b18ea5 100644 --- a/spec/models/debate_spec.rb +++ b/spec/models/debate_spec.rb @@ -31,6 +31,7 @@ describe Debate do end describe "#external_link" do + before { debate.link_required = true } it "should not be valid without a url" do debate.external_link = ""