mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Update to lastest rubocop-discourse
This commit is contained in:
committed by
Loïc Guitaut
parent
3b6d4c830f
commit
2a28cda15c
@@ -27,7 +27,7 @@ class Archetype
|
||||
end
|
||||
|
||||
def self.list
|
||||
return [] unless @archetypes.present?
|
||||
return [] if @archetypes.blank?
|
||||
@archetypes.values
|
||||
end
|
||||
|
||||
|
||||
@@ -161,8 +161,8 @@ class Auth::ManagedAuthenticator < Auth::Authenticator
|
||||
|
||||
if bio || location
|
||||
profile = user.user_profile
|
||||
profile.bio_raw = bio unless profile.bio_raw.present?
|
||||
profile.location = location unless profile.location.present?
|
||||
profile.bio_raw = bio if profile.bio_raw.blank?
|
||||
profile.location = location if profile.location.blank?
|
||||
profile.save
|
||||
end
|
||||
end
|
||||
|
||||
@@ -317,7 +317,7 @@ class Autospec::Manager
|
||||
if @queue.first && @queue.first[0] == "focus"
|
||||
focus = @queue.shift
|
||||
@queue.unshift([file, spec, runner])
|
||||
unless spec.include?(":") && focus[1].include?(spec.split(":")[0])
|
||||
if spec.exclude?(":") || focus[1].exclude?(spec.split(":")[0])
|
||||
@queue.unshift(focus) if focus[1].include?(spec) || file != spec
|
||||
end
|
||||
else
|
||||
|
||||
@@ -153,7 +153,7 @@ module BackupRestore
|
||||
RailsMultisite::ConnectionManagement.establish_connection(db: @current_db)
|
||||
while pg_dump_running
|
||||
message = logs.pop.strip
|
||||
log(message) unless message.blank?
|
||||
log(message) if message.present?
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ class BookmarksBulkAction
|
||||
end
|
||||
|
||||
def perform!
|
||||
unless BookmarksBulkAction.operations.include?(@operation[:type])
|
||||
if BookmarksBulkAction.operations.exclude?(@operation[:type])
|
||||
raise Discourse::InvalidParameters.new(:operation)
|
||||
end
|
||||
# careful these are private methods, we need send
|
||||
|
||||
@@ -18,7 +18,7 @@ class CommonPasswords
|
||||
@mutex = Mutex.new
|
||||
|
||||
def self.common_password?(password)
|
||||
return false unless password.present?
|
||||
return false if password.blank?
|
||||
password_list.include?(password)
|
||||
end
|
||||
|
||||
|
||||
@@ -183,7 +183,7 @@ class ComposerMessagesFinder
|
||||
def check_get_a_room(min_users_posted: 5)
|
||||
return unless @user.guardian.can_send_private_messages?
|
||||
return unless educate_reply?(:notified_about_get_a_room)
|
||||
return unless @details[:post_id].present?
|
||||
return if @details[:post_id].blank?
|
||||
return if @topic.category&.read_restricted
|
||||
|
||||
reply_to_user_id = Post.where(id: @details[:post_id]).pluck(:user_id)[0]
|
||||
|
||||
@@ -155,7 +155,7 @@ module CookedProcessorMixin
|
||||
end
|
||||
|
||||
def get_size_from_image_sizes(src, image_sizes)
|
||||
return unless image_sizes.present?
|
||||
return if image_sizes.blank?
|
||||
image_sizes.each do |image_size|
|
||||
url, size = image_size[0], image_size[1]
|
||||
if url && src && url.include?(src) && size && size["width"].to_i > 0 &&
|
||||
|
||||
@@ -4,7 +4,7 @@ module DirectoryHelper
|
||||
def tmp_directory(prefix)
|
||||
directory_cache[prefix] ||= begin
|
||||
f = File.join(Rails.root, "tmp", Time.now.strftime("#{prefix}%Y%m%d%H%M%S"))
|
||||
FileUtils.mkdir_p(f) unless Dir[f].present?
|
||||
FileUtils.mkdir_p(f) if Dir[f].blank?
|
||||
f
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1182,7 +1182,7 @@ module Discourse
|
||||
CDN_REQUEST_METHODS ||= %w[GET HEAD OPTIONS]
|
||||
|
||||
def self.is_cdn_request?(env, request_method)
|
||||
return unless CDN_REQUEST_METHODS.include?(request_method)
|
||||
return if CDN_REQUEST_METHODS.exclude?(request_method)
|
||||
|
||||
cdn_hostnames = GlobalSetting.cdn_hostnames
|
||||
return if cdn_hostnames.blank?
|
||||
|
||||
@@ -159,7 +159,7 @@ module DiscourseTagging
|
||||
parent_tag = tags.select { |t| t.id == parent_tag_ids.first }.first
|
||||
original_child_tag = tags.select { |t| t.id == tag_id }.first
|
||||
|
||||
next unless parent_tag.present? && original_child_tag.present?
|
||||
next if parent_tag.blank? || original_child_tag.blank?
|
||||
parent_child_names_map[parent_tag.name] = original_child_tag.name
|
||||
end
|
||||
|
||||
|
||||
@@ -300,7 +300,7 @@ module Email
|
||||
|
||||
def reply_by_email_address
|
||||
return @reply_by_email_address if @reply_by_email_address
|
||||
return nil unless SiteSetting.reply_by_email_address.present?
|
||||
return nil if SiteSetting.reply_by_email_address.blank?
|
||||
|
||||
@reply_by_email_address = SiteSetting.reply_by_email_address.dup
|
||||
|
||||
|
||||
@@ -445,7 +445,7 @@ module Email
|
||||
text_content_type = @mail.content_type
|
||||
end
|
||||
|
||||
return unless text.present? || html.present?
|
||||
return if text.blank? && html.blank?
|
||||
|
||||
if text.present?
|
||||
text = trim_discourse_markers(text)
|
||||
|
||||
@@ -423,7 +423,7 @@ module Email
|
||||
.css("a")
|
||||
.each do |link|
|
||||
begin
|
||||
link["href"] = "#{site_uri}#{link["href"]}" unless URI(link["href"].to_s).host.present?
|
||||
link["href"] = "#{site_uri}#{link["href"]}" if URI(link["href"].to_s).host.blank?
|
||||
rescue URI::Error
|
||||
# leave it
|
||||
end
|
||||
|
||||
@@ -20,7 +20,7 @@ module EmailControllerHelper
|
||||
take_next: false,
|
||||
) do |memo, v|
|
||||
memo[:current] = v[:name] if v[:value] == frequency_in_minutes && email_digests
|
||||
next(memo) unless allowed_frequencies.include?(v[:name])
|
||||
next(memo) if allowed_frequencies.exclude?(v[:name])
|
||||
|
||||
memo.tap do |m|
|
||||
m[:selected] = v[:value] if m[:take_next] && email_digests
|
||||
|
||||
@@ -26,7 +26,7 @@ module Encodings
|
||||
end
|
||||
|
||||
def self.delete_bom!(string)
|
||||
string.sub!(/\A\xEF\xBB\xBF/, "") unless string.blank?
|
||||
string.sub!(/\A\xEF\xBB\xBF/, "") if string.present?
|
||||
string
|
||||
end
|
||||
end
|
||||
|
||||
@@ -407,7 +407,7 @@ class FinalDestination
|
||||
|
||||
def validate_uri_format
|
||||
return false unless @uri && @uri.host
|
||||
return false unless %w[https http].include?(@uri.scheme)
|
||||
return false if %w[https http].exclude?(@uri.scheme)
|
||||
|
||||
# In some cases (like local/test environments) we may want to allow http URLs
|
||||
# to be used for internal hosts, but only if it's the case that the host is
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
class FinalDestination::HTTP < Net::HTTP
|
||||
def connect
|
||||
raise ArgumentError.new("address cannot be nil or empty") unless @address.present?
|
||||
raise ArgumentError.new("address cannot be nil or empty") if @address.blank?
|
||||
|
||||
original_open_timeout = @open_timeout
|
||||
return super if @ipaddr
|
||||
|
||||
@@ -73,7 +73,7 @@ module I18n
|
||||
execute_reload if @requires_reload
|
||||
|
||||
locale = (opts[:locale] || config.locale).to_sym
|
||||
load_locale(locale) unless @loaded_locales.include?(locale)
|
||||
load_locale(locale) if @loaded_locales.exclude?(locale)
|
||||
|
||||
results = {}
|
||||
regexp = I18n::Backend::DiscourseI18n.create_search_regexp(query)
|
||||
@@ -99,7 +99,7 @@ module I18n
|
||||
def ensure_loaded!(locale)
|
||||
locale = locale.to_sym
|
||||
@loaded_locales ||= []
|
||||
load_locale(locale) unless @loaded_locales.include?(locale)
|
||||
load_locale(locale) if @loaded_locales.exclude?(locale)
|
||||
end
|
||||
|
||||
# In some environments such as migrations we don't want to use overrides.
|
||||
@@ -198,7 +198,7 @@ module I18n
|
||||
key = args.shift
|
||||
locale = (options[:locale] || config.locale).to_sym
|
||||
|
||||
load_locale(locale) unless @loaded_locales.include?(locale)
|
||||
load_locale(locale) if @loaded_locales.exclude?(locale)
|
||||
|
||||
if @overrides_enabled
|
||||
overrides = {}
|
||||
@@ -234,7 +234,7 @@ module I18n
|
||||
|
||||
locale ||= config.locale
|
||||
locale = locale.to_sym
|
||||
load_locale(locale) unless @loaded_locales.include?(locale)
|
||||
load_locale(locale) if @loaded_locales.exclude?(locale)
|
||||
exists_no_cache?(key, locale)
|
||||
end
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ module HasErrors
|
||||
end
|
||||
|
||||
def add_error(msg)
|
||||
errors.add(:base, msg) unless errors[:base].include?(msg)
|
||||
errors.add(:base, msg) if errors[:base].exclude?(msg)
|
||||
end
|
||||
|
||||
def add_errors_from(obj)
|
||||
|
||||
@@ -125,7 +125,7 @@ module ImportExport
|
||||
|
||||
@export_data[:categories].each do |c|
|
||||
c[:permissions_params].each do |group_name, _|
|
||||
group_names << group_name unless auto_group_names.include?(group_name.to_s)
|
||||
group_names << group_name if auto_group_names.exclude?(group_name.to_s)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ class NewPostManager
|
||||
|
||||
pattern = SiteSetting.auto_silence_first_post_regex
|
||||
|
||||
return false unless pattern.present?
|
||||
return false if pattern.blank?
|
||||
return false unless is_first_post?(manager)
|
||||
|
||||
begin
|
||||
|
||||
@@ -29,7 +29,7 @@ class NewPostResult
|
||||
if arr.empty?
|
||||
@success = true
|
||||
else
|
||||
arr.each { |e| errors.add(:base, e) unless errors[:base].include?(e) }
|
||||
arr.each { |e| errors.add(:base, e) if errors[:base].exclude?(e) }
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -182,7 +182,7 @@ module Onebox
|
||||
)
|
||||
|
||||
response = http.head(uri.path)
|
||||
unless %w[200 301 302].include?(response.code)
|
||||
if %w[200 301 302].exclude?(response.code)
|
||||
raise "unexpected response code #{response.code}"
|
||||
end
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ module Onebox
|
||||
end
|
||||
|
||||
def data
|
||||
return nil unless %w[story comment].include?(raw["type"])
|
||||
return nil if %w[story comment].exclude?(raw["type"])
|
||||
|
||||
html_entities = HTMLEntities.new
|
||||
data = {
|
||||
|
||||
@@ -124,7 +124,7 @@ module Onebox
|
||||
|
||||
code = response.code.to_i
|
||||
unless code === 200
|
||||
response.error! unless [301, 302, 303, 307, 308].include?(code)
|
||||
response.error! if [301, 302, 303, 307, 308].exclude?(code)
|
||||
|
||||
return(
|
||||
fetch_response(
|
||||
|
||||
@@ -753,7 +753,7 @@ class Plugin::Instance
|
||||
assets.concat(auto_assets)
|
||||
end
|
||||
|
||||
register_assets! unless assets.blank?
|
||||
register_assets! if assets.present?
|
||||
register_locales!
|
||||
register_service_workers!
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ module PluginGem
|
||||
|
||||
spec_file = spec_path + "/#{name}-#{version}"
|
||||
|
||||
unless platform_variants(spec_file).find(&File.method(:exist?)).present?
|
||||
if platform_variants(spec_file).find(&File.method(:exist?)).blank?
|
||||
command =
|
||||
"gem install #{name} -v #{version} -i #{gems_path} --no-document --ignore-dependencies --no-user-install"
|
||||
command += " --source #{opts[:source]}" if opts[:source]
|
||||
|
||||
@@ -299,7 +299,7 @@ class PostCreator
|
||||
end
|
||||
|
||||
def self.set_reply_info(post)
|
||||
return unless post.reply_to_post_number.present?
|
||||
return if post.reply_to_post_number.blank?
|
||||
|
||||
# Before the locking here was added, replying to a post and liking a post
|
||||
# at roughly the same time could cause a deadlock.
|
||||
@@ -396,7 +396,7 @@ class PostCreator
|
||||
end
|
||||
|
||||
def create_embedded_topic
|
||||
return unless @opts[:embed_url].present?
|
||||
return if @opts[:embed_url].blank?
|
||||
|
||||
original_uri = URI.parse(@opts[:embed_url])
|
||||
raise Discourse::InvalidParameters.new(:embed_url) unless original_uri.is_a?(URI::HTTP)
|
||||
|
||||
@@ -61,7 +61,7 @@ class PostRevisor
|
||||
tracked_topic_fields[field] = block
|
||||
|
||||
# Define it in the serializer unless it already has been defined
|
||||
unless PostRevisionSerializer.instance_methods(false).include?("#{field}_changes".to_sym)
|
||||
if PostRevisionSerializer.instance_methods(false).exclude?("#{field}_changes".to_sym)
|
||||
PostRevisionSerializer.add_compared_field(field)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -18,7 +18,7 @@ module PrettyText
|
||||
def avatar_template(username)
|
||||
return "" unless username
|
||||
user = User.find_by(username_lower: username.downcase)
|
||||
return "" unless user.present?
|
||||
return "" if user.blank?
|
||||
|
||||
# TODO: Add support for ES6 and call `avatar-template` directly
|
||||
UrlHelper.schemaless(UrlHelper.absolute(user.avatar_template))
|
||||
@@ -27,7 +27,7 @@ module PrettyText
|
||||
def lookup_primary_user_group(username)
|
||||
return "" unless username
|
||||
user = User.find_by(username_lower: username.downcase)
|
||||
return "" unless user.present?
|
||||
return "" if user.blank?
|
||||
|
||||
user.primary_group.try(:name) || ""
|
||||
end
|
||||
|
||||
@@ -919,7 +919,7 @@ class Search
|
||||
|
||||
def find_grouped_results
|
||||
if @results.type_filter.present?
|
||||
unless Search.facets.include?(@results.type_filter)
|
||||
if Search.facets.exclude?(@results.type_filter)
|
||||
raise Discourse::InvalidAccess.new("invalid type filter")
|
||||
end
|
||||
# calling protected methods
|
||||
|
||||
@@ -259,7 +259,7 @@ class SiteSettings::TypeSupervisor
|
||||
raise Discourse::InvalidParameters.new(name)
|
||||
end
|
||||
|
||||
raise Discourse::InvalidParameters.new(:value) unless choice.include?(val)
|
||||
raise Discourse::InvalidParameters.new(:value) if choice.exclude?(val)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
task "assets:precompile:prereqs" do
|
||||
unless %w[profile production].include? Rails.env
|
||||
if %w[profile production].exclude? Rails.env
|
||||
raise "rake assets:precompile should only be run in RAILS_ENV=production, you are risking unminified assets"
|
||||
end
|
||||
end
|
||||
@@ -214,7 +214,7 @@ end
|
||||
def max_compress?(path, locales)
|
||||
return false if Rails.configuration.assets.skip_minification.include? path
|
||||
return false if EmberCli.is_ember_cli_asset?(path)
|
||||
return true unless path.include? "locales/"
|
||||
return true if path.exclude? "locales/"
|
||||
|
||||
path_locale = path.delete_prefix("locales/").delete_suffix(".js")
|
||||
return true if locales.include? path_locale
|
||||
|
||||
@@ -37,7 +37,7 @@ task "avatars:clean" => :environment do
|
||||
optimized_image_ids.each do |id|
|
||||
begin
|
||||
optimized_image = OptimizedImage.find_by(id: id)
|
||||
next unless optimized_image.present?
|
||||
next if optimized_image.blank?
|
||||
optimized_image.destroy!
|
||||
rescue => e
|
||||
puts "", "Failed to cleanup avatar (optimized_image id: #{id})", e, e.backtrace.join("\n")
|
||||
|
||||
@@ -238,7 +238,7 @@ task "emails:fix_mailman_users" => :environment do
|
||||
.includes(:user, :post)
|
||||
.where("raw LIKE '%X-Mailman-Version: %'")
|
||||
.find_each do |ie|
|
||||
next unless ie.post.present?
|
||||
next if ie.post.blank?
|
||||
|
||||
mail = Mail.new(ie.raw)
|
||||
email, name = Email::Receiver.extract_email_address_and_name_from_mailman(mail)
|
||||
|
||||
@@ -279,7 +279,7 @@ task "javascript:clean_up" do
|
||||
next if processed.include?(package_dir_name)
|
||||
|
||||
versions = Dir["#{File.join(public_js, package_dir_name)}/*"].collect { |p| p.split("/").last }
|
||||
next unless versions.present?
|
||||
next if versions.blank?
|
||||
|
||||
versions = versions.sort { |a, b| Gem::Version.new(a) <=> Gem::Version.new(b) }
|
||||
puts "Keeping #{package_dir_name} version: #{versions[-1]}"
|
||||
|
||||
@@ -338,7 +338,7 @@ desc <<~DESC
|
||||
DESC
|
||||
task "version_bump:major_stable_merge", [:version_bump_ref] do |t, args|
|
||||
merge_ref = args[:version_bump_ref]
|
||||
raise "Must pass version_bump_ref" unless merge_ref.present?
|
||||
raise "Must pass version_bump_ref" if merge_ref.blank?
|
||||
|
||||
git "fetch", "origin", merge_ref
|
||||
raise "Unknown version_bump_ref: #{merge_ref.inspect}" unless ref_exists?(merge_ref)
|
||||
@@ -395,7 +395,7 @@ desc <<~DESC
|
||||
DESC
|
||||
task "version_bump:stage_security_fixes", [:base] do |t, args|
|
||||
base = args[:base]
|
||||
raise "Unknown base: #{base.inspect}" unless %w[stable main].include?(base)
|
||||
raise "Unknown base: #{base.inspect}" if %w[stable main].exclude?(base)
|
||||
|
||||
fix_refs = ENV["SECURITY_FIX_REFS"]&.split(",")&.map(&:strip)
|
||||
raise "No branches specified in SECURITY_FIX_REFS env" if fix_refs.nil? || fix_refs.empty?
|
||||
|
||||
@@ -28,7 +28,7 @@ class ThemeSettingsParser
|
||||
if type == @types[:enum]
|
||||
choices = raw_opts[:choices]
|
||||
choices = [] unless choices.is_a?(Array)
|
||||
choices << default unless choices.include?(default)
|
||||
choices << default if choices.exclude?(default)
|
||||
opts[:choices] = choices
|
||||
end
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ class ThemeSettingsValidator
|
||||
|
||||
case type
|
||||
when types[:enum]
|
||||
unless opts[:choices].include?(value) || opts[:choices].map(&:to_s).include?(value)
|
||||
if opts[:choices].exclude?(value) && opts[:choices].map(&:to_s).exclude?(value)
|
||||
errors << I18n.t(
|
||||
"themes.settings_errors.enum_value_not_valid",
|
||||
choices: opts[:choices].join(", "),
|
||||
|
||||
@@ -111,7 +111,7 @@ class ThemeStore::GitImporter < ThemeStore::BaseImporter
|
||||
def clone_http!
|
||||
uri = redirected_uri
|
||||
|
||||
raise_import_error! unless %w[http https].include?(@uri.scheme)
|
||||
raise_import_error! if %w[http https].exclude?(@uri.scheme)
|
||||
|
||||
addresses = FinalDestination::SSRFDetector.lookup_and_filter_ips(uri.host)
|
||||
|
||||
@@ -133,7 +133,7 @@ class ThemeStore::GitImporter < ThemeStore::BaseImporter
|
||||
end
|
||||
|
||||
def clone_ssh!
|
||||
raise_import_error! unless @private_key.present?
|
||||
raise_import_error! if @private_key.blank?
|
||||
|
||||
with_ssh_private_key do |ssh_folder|
|
||||
# Use only the specified SSH key
|
||||
|
||||
@@ -206,7 +206,7 @@ class TopicCreator
|
||||
end
|
||||
|
||||
def setup_auto_close_time(topic)
|
||||
return unless @opts[:auto_close_time].present?
|
||||
return if @opts[:auto_close_time].blank?
|
||||
return unless @guardian.can_moderate?(topic)
|
||||
topic.set_auto_close(@opts[:auto_close_time], by_user: @user)
|
||||
end
|
||||
@@ -215,8 +215,8 @@ class TopicCreator
|
||||
return unless @opts[:archetype] == Archetype.private_message
|
||||
topic.subtype = TopicSubtype.user_to_user unless topic.subtype
|
||||
|
||||
unless @opts[:target_usernames].present? || @opts[:target_emails].present? ||
|
||||
@opts[:target_group_names].present?
|
||||
if @opts[:target_usernames].blank? && @opts[:target_emails].blank? &&
|
||||
@opts[:target_group_names].blank?
|
||||
rollback_with!(topic, :no_user_selected)
|
||||
end
|
||||
|
||||
|
||||
@@ -721,7 +721,7 @@ class TopicQuery
|
||||
end
|
||||
|
||||
def get_category_id(category_id_or_slug)
|
||||
return nil unless category_id_or_slug.present?
|
||||
return nil if category_id_or_slug.blank?
|
||||
category_id = category_id_or_slug.to_i
|
||||
|
||||
if category_id == 0
|
||||
|
||||
@@ -15,7 +15,7 @@ class TopicSubtype
|
||||
end
|
||||
|
||||
def self.list
|
||||
return [] unless @archetypes.present?
|
||||
return [] if @archetypes.blank?
|
||||
@archetypes.values
|
||||
end
|
||||
|
||||
|
||||
@@ -758,8 +758,8 @@ class TopicView
|
||||
@read_posts_set ||=
|
||||
begin
|
||||
result = Set.new
|
||||
return result unless @user.present?
|
||||
return result unless topic_user.present?
|
||||
return result if @user.blank?
|
||||
return result if topic_user.blank?
|
||||
|
||||
post_numbers =
|
||||
PostTiming
|
||||
|
||||
@@ -37,7 +37,7 @@ class TopicsBulkAction
|
||||
end
|
||||
|
||||
def perform!
|
||||
unless TopicsBulkAction.operations.include?(@operation[:type])
|
||||
if TopicsBulkAction.operations.exclude?(@operation[:type])
|
||||
raise Discourse::InvalidParameters.new(:operation)
|
||||
end
|
||||
# careful these are private methods, we need send
|
||||
|
||||
@@ -69,6 +69,6 @@ class FormTemplateYamlValidator < ActiveModel::Validator
|
||||
record.errors.add(:template, I18n.t("form_templates.errors.duplicate_ids"))
|
||||
end
|
||||
|
||||
existing_ids << field["id"] unless field["id"].blank?
|
||||
existing_ids << field["id"] if field["id"].present?
|
||||
end
|
||||
end
|
||||
|
||||
@@ -39,7 +39,7 @@ class PostValidator < ActiveModel::Validator
|
||||
if private_message?(post)
|
||||
SiteSetting.private_message_post_length
|
||||
elsif post.is_first_post? || (post.topic.present? && post.topic.posts_count == 0)
|
||||
if post.topic&.featured_link&.present?
|
||||
if post.topic&.featured_link.present?
|
||||
(0..SiteSetting.max_post_length)
|
||||
else
|
||||
SiteSetting.first_post_length
|
||||
|
||||
@@ -78,7 +78,7 @@ class UploadValidator < ActiveModel::Validator
|
||||
.gsub(/[\s\.]+/, "")
|
||||
.downcase
|
||||
.split("|")
|
||||
.each { |extension| extensions << extension unless extension.include?("*") }
|
||||
.each { |extension| extensions << extension if extension.exclude?("*") }
|
||||
|
||||
extensions
|
||||
end
|
||||
|
||||
@@ -37,7 +37,7 @@ module Discourse
|
||||
# 2.4.4.beta6: some-other-branch-ref
|
||||
# 2.4.2.beta1: v1-tag
|
||||
def self.find_compatible_resource(version_list, target_version = ::Discourse::VERSION::STRING)
|
||||
return unless version_list.present?
|
||||
return if version_list.blank?
|
||||
|
||||
begin
|
||||
version_list = YAML.safe_load(version_list)
|
||||
|
||||
@@ -89,7 +89,7 @@ class Wizard
|
||||
.pluck(:context)
|
||||
|
||||
# First uncompleted step
|
||||
steps_with_fields.each { |s| return s unless completed.include?(s.id) }
|
||||
steps_with_fields.each { |s| return s if completed.exclude?(s.id) }
|
||||
|
||||
@first_step
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user