commit: 6e4c7d62118d5d1f2e966950edfdbc80cebd4d7c
parent: d2542dcec0dafa8878efd2bd4fe53bd80256aa60
Author: Matt Jankowski <mjankowski@thoughtbot.com>
Date: Thu, 18 May 2017 21:11:23 -0400
Conditional validations no longer accept strings for if/unless (#3124)
Diffstat:
6 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/app/controllers/remote_follow_controller.rb b/app/controllers/remote_follow_controller.rb
@@ -4,7 +4,7 @@ class RemoteFollowController < ApplicationController
layout 'public'
before_action :set_account
- before_action :gone, if: -> { @account.suspended? }
+ before_action :gone, if: :suspended_account?
def new
@remote_follow = RemoteFollow.new(session_params)
@@ -34,4 +34,8 @@ class RemoteFollowController < ApplicationController
def set_account
@account = Account.find_local!(params[:account_username])
end
+
+ def suspended_account?
+ @account.suspended?
+ end
end
diff --git a/app/lib/application_extension.rb b/app/lib/application_extension.rb
@@ -4,6 +4,6 @@ module ApplicationExtension
extend ActiveSupport::Concern
included do
- validates :website, url: true, unless: 'website.blank?'
+ validates :website, url: true, if: :website?
end
end
diff --git a/app/models/account.rb b/app/models/account.rb
@@ -52,10 +52,10 @@ class Account < ApplicationRecord
has_one :user, inverse_of: :account
validates :username, presence: true
- validates :username, uniqueness: { scope: :domain, case_sensitive: true }, unless: 'local?'
+ validates :username, uniqueness: { scope: :domain, case_sensitive: true }, unless: :local?
# Local user validations
- with_options if: 'local?' do
+ with_options if: :local? do
validates :username, format: { with: /\A[a-z0-9_]+\z/i }, uniqueness: { scope: :domain, case_sensitive: false }, length: { maximum: 30 }
validates :display_name, length: { maximum: 30 }
validates :note, length: { maximum: 160 }
diff --git a/app/models/conversation.rb b/app/models/conversation.rb
@@ -10,7 +10,7 @@
#
class Conversation < ApplicationRecord
- validates :uri, uniqueness: true, if: :uri
+ validates :uri, uniqueness: true, if: :uri?
has_many :statuses
diff --git a/app/models/status.rb b/app/models/status.rb
@@ -50,10 +50,10 @@ class Status < ApplicationRecord
has_one :notification, as: :activity, dependent: :destroy
has_one :preview_card, dependent: :destroy
- validates :uri, uniqueness: true, unless: 'local?'
- validates :text, presence: true, unless: 'reblog?'
+ validates :uri, uniqueness: true, unless: :local?
+ validates :text, presence: true, unless: :reblog?
validates_with StatusLengthValidator
- validates :reblog, uniqueness: { scope: :account }, if: 'reblog?'
+ validates :reblog, uniqueness: { scope: :account }, if: :reblog?
default_scope { order(id: :desc) }
diff --git a/app/models/user.rb b/app/models/user.rb
@@ -45,7 +45,7 @@ class User < ApplicationRecord
belongs_to :account, inverse_of: :user, required: true
accepts_nested_attributes_for :account
- validates :locale, inclusion: I18n.available_locales.map(&:to_s), unless: 'locale.nil?'
+ validates :locale, inclusion: I18n.available_locales.map(&:to_s), if: :locale?
validates :email, email: true
scope :recent, -> { order(id: :desc) }