diff --git a/.rubocop.yml b/.rubocop.yml index e40ff7c2..aad5509e 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -42,6 +42,12 @@ Metrics/CyclomaticComplexity: Metrics/PerceivedComplexity: Max: 15 +Style/MultipleComparison: + Enabled: false + +Naming/PredicateMethod: + Enabled: false + Layout/LineLength: AllowedPatterns: ['\A\s*#'] diff --git a/app/controllers/api/submissions_controller.rb b/app/controllers/api/submissions_controller.rb index 8388f704..15223276 100644 --- a/app/controllers/api/submissions_controller.rb +++ b/app/controllers/api/submissions_controller.rb @@ -147,7 +147,7 @@ module Api is_send_email = !params[:send_email].in?(['false', false]) if (emails = (params[:emails] || params[:email]).presence) && - (params[:submission].blank? && params[:submitters].blank?) + params[:submission].blank? && params[:submitters].blank? Submissions.create_from_emails(template:, user: current_user, source: :api, diff --git a/app/jobs/generate_preview_images_job.rb b/app/jobs/generate_preview_images_job.rb index ef52c078..289b5fcf 100644 --- a/app/jobs/generate_preview_images_job.rb +++ b/app/jobs/generate_preview_images_job.rb @@ -11,7 +11,7 @@ class GeneratePreviewImagesJob max_page = [attachment.metadata['pdf']['number_of_pages'].to_i - 1, Templates::ProcessDocument::MAX_NUMBER_OF_PAGES_PROCESSED].min - Templates::ProcessDocument.generate_document_preview_images(attachment, attachment.download, (1..max_page), + Templates::ProcessDocument.generate_document_preview_images(attachment, attachment.download, 1..max_page, concurrency: 1) end end diff --git a/app/models/user.rb b/app/models/user.rb index f840ca7d..83e88f08 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -50,7 +50,7 @@ class User < ApplicationRecord EMAIL_REGEXP = /[^@;,<>\s]+@[^@;,<>\s]+/ FULL_EMAIL_REGEXP = - /\A[a-z0-9][\.']?(?:(?:[a-z0-9_-]+[\.\+'])*[a-z0-9_-]+)*@(?:[a-z0-9]+[\.-])*[a-z0-9]+\.[a-z]{2,}\z/i + /\A[a-z0-9][.']?(?:(?:[a-z0-9_-]+[.+'])*[a-z0-9_-]+)*@(?:[a-z0-9]+[.-])*[a-z0-9]+\.[a-z]{2,}\z/i has_one_attached :signature has_one_attached :initials diff --git a/lib/docuseal.rb b/lib/docuseal.rb index e4fee8f7..578d1fcc 100644 --- a/lib/docuseal.rb +++ b/lib/docuseal.rb @@ -78,7 +78,7 @@ module Docuseal @fulltext_search = if SearchEntry.table_exists? - Docuseal.multitenant? ? true : AccountConfig.exists?(key: :fulltext_search, value: true) + Docuseal.multitenant? || AccountConfig.exists?(key: :fulltext_search, value: true) else false end diff --git a/lib/search_entries.rb b/lib/search_entries.rb index 9ebf5897..ba17e254 100644 --- a/lib/search_entries.rb +++ b/lib/search_entries.rb @@ -56,7 +56,7 @@ module SearchEntries end [sql, number, number.length > 1 ? number.delete_prefix('0') : number, keyword] - elsif keyword.match?(/[^\p{L}\d&@.\-]/) || keyword.match?(/\A['"].*['"]\z/) || keyword.match?(/[.\-]{2,}/) + elsif keyword.match?(/[^\p{L}\d&@.-]/) || keyword.match?(/\A['"].*['"]\z/) || keyword.match?(/[.-]{2,}/) ['tsvector @@ plainto_tsquery(?)', TextUtils.transliterate(keyword.downcase)] else keyword = TextUtils.transliterate(keyword.downcase).squish diff --git a/lib/send_webhook_request.rb b/lib/send_webhook_request.rb index 9a8e1598..f9845e16 100644 --- a/lib/send_webhook_request.rb +++ b/lib/send_webhook_request.rb @@ -6,7 +6,7 @@ module SendWebhookRequest LOCALHOSTS = %w[0.0.0.0 127.0.0.1 localhost].freeze MANUAL_ATTEMPT = 99_999 - AUTOMATED_RETRY_RANGE = 1..MANUAL_ATTEMPT - 1 + AUTOMATED_RETRY_RANGE = 1..(MANUAL_ATTEMPT - 1) HttpsError = Class.new(StandardError) LocalhostError = Class.new(StandardError) diff --git a/lib/submissions/generate_audit_trail.rb b/lib/submissions/generate_audit_trail.rb index b63f3c6f..b6505695 100644 --- a/lib/submissions/generate_audit_trail.rb +++ b/lib/submissions/generate_audit_trail.rb @@ -481,7 +481,7 @@ module Submissions def select_attachments(submitter) original_documents = submitter.submission.schema_documents.preload(:blob) - is_more_than_two_images = original_documents.count(&:image?) > 1 + is_more_than_two_images = original_documents.many?(&:image?) submitter.documents.preload(:blob).reject do |attachment| is_more_than_two_images && diff --git a/lib/submissions/generate_result_attachments.rb b/lib/submissions/generate_result_attachments.rb index 54eb694f..3c584c10 100644 --- a/lib/submissions/generate_result_attachments.rb +++ b/lib/submissions/generate_result_attachments.rb @@ -311,8 +311,8 @@ module Submissions timezone = submitter.timezone || submitter.account.timezone if with_submitter_timezone if with_signature_id_reason - "#{reason_value ? "#{I18n.t('reason')}: " : ''}#{reason_value || I18n.t('digitally_signed_by')} " \ - "#{submitter.name}#{submitter.email.present? ? " <#{submitter.email}>" : ''}\n" \ + "#{"#{I18n.t('reason')}: " if reason_value}#{reason_value || I18n.t('digitally_signed_by')} " \ + "#{submitter.name}#{" <#{submitter.email}>" if submitter.email.present?}\n" \ "#{I18n.l(attachment.created_at.in_time_zone(timezone), format: :long)} " \ "#{TimeUtils.timezone_abbr(timezone, attachment.created_at)}" else @@ -833,7 +833,7 @@ module Submissions def find_last_submitter(submission, submitter: nil) submission.submitters .select(&:completed_at?) - .select { |e| submitter.nil? ? true : e.id != submitter.id && e.completed_at <= submitter.completed_at } + .select { |e| submitter.nil? || (e.id != submitter.id && e.completed_at <= submitter.completed_at) } .max_by(&:completed_at) end diff --git a/lib/submitters.rb b/lib/submitters.rb index 5a003419..2c08a09f 100644 --- a/lib/submitters.rb +++ b/lib/submitters.rb @@ -56,7 +56,7 @@ module Submitters end [sql, number, weight, number.length > 1 ? number.delete_prefix('0') : number, weight] - elsif keyword.match?(/[^\p{L}\d&@.\-]/) || keyword.match?(/[.\-]{2,}/) + elsif keyword.match?(/[^\p{L}\d&@.-]/) || keyword.match?(/[.-]{2,}/) terms = TextUtils.transliterate(keyword.downcase).split(/\b/).map(&:squish).compact_blank.uniq if terms.size > 1 @@ -100,7 +100,7 @@ module Submitters end original_documents = submitter.submission.schema_documents.preload(:blob) - is_more_than_two_images = original_documents.count(&:image?) > 1 + is_more_than_two_images = original_documents.many?(&:image?) submitter.documents.preload(:blob).reject do |attachment| is_more_than_two_images && diff --git a/lib/templates/process_document.rb b/lib/templates/process_document.rb index a9192b22..6b40a502 100644 --- a/lib/templates/process_document.rb +++ b/lib/templates/process_document.rb @@ -99,7 +99,7 @@ module Templates max_pages_to_process = data.size < GENERATE_PREVIEW_SIZE_LIMIT ? max_pages : 1 - generate_document_preview_images(attachment, data, (0..[number_of_pages - 1, max_pages_to_process].min)) + generate_document_preview_images(attachment, data, 0..[number_of_pages - 1, max_pages_to_process].min) end def generate_document_preview_images(attachment, data, range, concurrency: CONCURRENCY) diff --git a/lib/text_utils.rb b/lib/text_utils.rb index 38be7f92..e4e7d671 100644 --- a/lib/text_utils.rb +++ b/lib/text_utils.rb @@ -2,7 +2,7 @@ module TextUtils RTL_REGEXP = /[\p{Hebrew}\p{Arabic}]/ - MASK_REGEXP = /[^\s\-_\[\]\(\)\+\?\.\,]/ + MASK_REGEXP = /[^\s\-_\[\]()+?.,]/ MASK_SYMBOL = 'X' TRANSLITERATIONS =