From e49c9e9061567b4c92509d234f44c07983136753 Mon Sep 17 00:00:00 2001 From: Neal Chambers Date: Tue, 1 Aug 2023 09:56:23 +0900 Subject: [PATCH 1/5] Regenerate Rubocop's TODO file --- .rubocop_todo.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 09ca46100a..8430cc0b46 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1108,7 +1108,7 @@ Style/HashLikeCase: Exclude: - 'app/models/enterprise.rb' -# Offense count: 1781 +# Offense count: 1792 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: EnforcedStyle, EnforcedShorthandSyntax, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols. # SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys From a1560263a1698f20bae1ebd1aea89669b5f97bc5 Mon Sep 17 00:00:00 2001 From: Neal Chambers Date: Tue, 1 Aug 2023 09:59:03 +0900 Subject: [PATCH 2/5] Safely autocorrect Rails/ActionOrder Inspecting 1481 files .........................................C.................C.........................................................CC........C..........C.C.........C.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. Offenses: app/controllers/admin/resource_controller.rb:39:5: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 0. def update ^^^^^^^^^^ app/controllers/admin/resource_controller.rb:39:5: C: [Corrected] Rails/ActionOrder: Action create should appear before update. def create ... ^^^^^^^^^^ app/controllers/admin/resource_controller.rb:51:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/controllers/admin/resource_controller.rb:52:5: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 2. def update_positions ^^^^^^^^^^^^^^^^^^^^ app/controllers/api/v0/orders_controller.rb:13:7: C: [Corrected] Rails/ActionOrder: Action index should appear before show. def index ... ^^^^^^^^^ app/controllers/api/v0/orders_controller.rb:23:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 0. def show ^^^^^^^^ app/controllers/api/v0/orders_controller.rb:28:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/controllers/api/v0/orders_controller.rb:29:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 2. def update ^^^^^^^^^^ app/controllers/spree/admin/images_controller.rb:26:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 0. def create ^^^^^^^^^^ app/controllers/spree/admin/images_controller.rb:37:7: C: [Corrected] Rails/ActionOrder: Action edit should appear before create. def edit ... ^^^^^^^^ app/controllers/spree/admin/images_controller.rb:40:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/controllers/spree/admin/images_controller.rb:41:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 2. def update ^^^^^^^^^^ app/controllers/spree/admin/invoices_controller.rb:19:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 0. def create ^^^^^^^^^^ app/controllers/spree/admin/invoices_controller.rb:43:7: C: [Corrected] Rails/ActionOrder: Action show should appear before create. def show ... ^^^^^^^^ app/controllers/spree/admin/invoices_controller.rb:49:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/controllers/spree/admin/invoices_controller.rb:50:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 2. def poll ^^^^^^^^ app/controllers/spree/admin/products_controller.rb:23:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 0. def new ^^^^^^^ app/controllers/spree/admin/products_controller.rb:23:7: C: [Corrected] Rails/ActionOrder: Action show should appear before new. def show ... ^^^^^^^^ app/controllers/spree/admin/products_controller.rb:24:7: C: [Corrected] Rails/ActionOrder: Action index should appear before show. def index ... ^^^^^^^^^ app/controllers/spree/admin/products_controller.rb:27:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/controllers/spree/admin/products_controller.rb:27:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 0. def create ^^^^^^^^^^ app/controllers/spree/admin/products_controller.rb:28:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/controllers/spree/admin/products_controller.rb:28:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 0. def new ^^^^^^^ app/controllers/spree/admin/products_controller.rb:28:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 2. def index ^^^^^^^^^ app/controllers/spree/admin/products_controller.rb:28:7: C: [Corrected] Rails/ActionOrder: Action index should appear before new. def index ... ^^^^^^^^^ app/controllers/spree/admin/products_controller.rb:29:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 2. def new ^^^^^^^ app/controllers/spree/admin/products_controller.rb:32:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/controllers/spree/admin/products_controller.rb:32:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 0. def create ^^^^^^^^^^ app/controllers/spree/admin/products_controller.rb:33:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 2. def edit ^^^^^^^^ app/controllers/spree/admin/products_controller.rb:36:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 0. def create ^^^^^^^^^^ app/controllers/spree/admin/products_controller.rb:38:7: C: [Corrected] Rails/ActionOrder: Action show should appear before create. def show ... ^^^^^^^^ app/controllers/spree/admin/products_controller.rb:42:7: C: [Corrected] Rails/ActionOrder: Action index should appear before create. def index ... ^^^^^^^^^ app/controllers/spree/admin/products_controller.rb:43:7: C: [Corrected] Rails/ActionOrder: Action index should appear before create. def index ... ^^^^^^^^^ app/controllers/spree/admin/products_controller.rb:43:7: C: [Corrected] Rails/ActionOrder: Action index should appear before show. def index ... ^^^^^^^^^ app/controllers/spree/admin/products_controller.rb:47:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/controllers/spree/admin/products_controller.rb:48:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 2. def edit ^^^^^^^^ app/controllers/spree/admin/products_controller.rb:48:7: C: [Corrected] Rails/ActionOrder: Action edit should appear before create. def edit ... ^^^^^^^^ app/controllers/spree/admin/products_controller.rb:51:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/controllers/spree/admin/products_controller.rb:52:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 2. def update ^^^^^^^^^^ app/controllers/spree/admin/taxons_controller.rb:13:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 0. def create ^^^^^^^^^^ app/controllers/spree/admin/taxons_controller.rb:29:7: C: [Corrected] Rails/ActionOrder: Action edit should appear before create. def edit ... ^^^^^^^^ app/controllers/spree/admin/taxons_controller.rb:34:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/controllers/spree/admin/taxons_controller.rb:35:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 2. def update ^^^^^^^^^^ app/controllers/spree/admin/variants_controller.rb:17:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 0. def edit ^^^^^^^^ app/controllers/spree/admin/variants_controller.rb:18:7: C: [Corrected] Rails/ActionOrder: Action new should appear before edit. def new ... ^^^^^^^ app/controllers/spree/admin/variants_controller.rb:21:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/controllers/spree/admin/variants_controller.rb:21:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 0. def update ^^^^^^^^^^ app/controllers/spree/admin/variants_controller.rb:22:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 2. def create ^^^^^^^^^^ app/controllers/spree/admin/variants_controller.rb:31:7: C: [Corrected] Rails/ActionOrder: Action new should appear before update. def new ... ^^^^^^^ app/controllers/spree/admin/variants_controller.rb:34:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/controllers/spree/admin/variants_controller.rb:35:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 2. def create ^^^^^^^^^^ app/controllers/spree/admin/variants_controller.rb:35:7: C: [Corrected] Rails/ActionOrder: Action create should appear before update. def create ... ^^^^^^^^^^ app/controllers/spree/admin/variants_controller.rb:42:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 0. def update ^^^^^^^^^^ app/controllers/spree/admin/variants_controller.rb:55:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/controllers/spree/admin/variants_controller.rb:56:7: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 2. def search ^^^^^^^^^^ app/controllers/user_confirmations_controller.rb:14:3: C: [Corrected] Rails/ActionOrder: Action show should appear before new. def show ... ^^^^^^^^ app/controllers/user_confirmations_controller.rb:15:3: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 0. def new ^^^^^^^ app/controllers/user_confirmations_controller.rb:19:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/controllers/user_confirmations_controller.rb:20:3: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 0. def create ^^^^^^^^^^ app/controllers/user_confirmations_controller.rb:21:3: C: [Corrected] Layout/EmptyLineBetweenDefs: Expected 1 empty line between method definitions; found 2. def create ^^^^^^^^^^ app/controllers/user_confirmations_controller.rb:37:3: C: [Corrected] Rails/ActionOrder: Action show should appear before create. def show ... ^^^^^^^^ app/controllers/user_confirmations_controller.rb:42:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/controllers/user_confirmations_controller.rb:43:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. 1481 files inspected, 63 offenses detected, 63 offenses corrected --- .rubocop_todo.yml | 16 --------- app/controllers/admin/resource_controller.rb | 14 ++++---- app/controllers/api/v0/orders_controller.rb | 10 +++--- .../spree/admin/images_controller.rb | 8 ++--- .../spree/admin/invoices_controller.rb | 14 ++++---- .../spree/admin/products_controller.rb | 28 +++++++-------- .../spree/admin/taxons_controller.rb | 12 +++---- .../spree/admin/variants_controller.rb | 34 +++++++++---------- .../user_confirmations_controller.rb | 14 ++++---- 9 files changed, 67 insertions(+), 83 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 8430cc0b46..91b958b867 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -443,22 +443,6 @@ Naming/VariableNumber: - 'spec/models/spree/tax_rate_spec.rb' - 'spec/requests/api/orders_spec.rb' -# Offense count: 9 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: ExpectedOrder, Include. -# ExpectedOrder: index, show, new, edit, create, update, destroy -# Include: app/controllers/**/*.rb -Rails/ActionOrder: - Exclude: - - 'app/controllers/admin/resource_controller.rb' - - 'app/controllers/api/v0/orders_controller.rb' - - 'app/controllers/spree/admin/images_controller.rb' - - 'app/controllers/spree/admin/invoices_controller.rb' - - 'app/controllers/spree/admin/products_controller.rb' - - 'app/controllers/spree/admin/taxons_controller.rb' - - 'app/controllers/spree/admin/variants_controller.rb' - - 'app/controllers/user_confirmations_controller.rb' - # Offense count: 12 # This cop supports safe autocorrection (--autocorrect). # Configuration parameters: Include. diff --git a/app/controllers/admin/resource_controller.rb b/app/controllers/admin/resource_controller.rb index 56fa7c5a5f..753b7d130a 100644 --- a/app/controllers/admin/resource_controller.rb +++ b/app/controllers/admin/resource_controller.rb @@ -24,9 +24,10 @@ module Admin end end - def update - if @object.update(permitted_resource_params) - flash[:success] = flash_message_for(@object, :successfully_updated) + def create + @object.attributes = permitted_resource_params + if @object.save + flash[:success] = flash_message_for(@object, :successfully_created) respond_with(@object) do |format| format.html { redirect_to location_after_save } format.js { render layout: false } @@ -36,10 +37,9 @@ module Admin end end - def create - @object.attributes = permitted_resource_params - if @object.save - flash[:success] = flash_message_for(@object, :successfully_created) + def update + if @object.update(permitted_resource_params) + flash[:success] = flash_message_for(@object, :successfully_updated) respond_with(@object) do |format| format.html { redirect_to location_after_save } format.js { render layout: false } diff --git a/app/controllers/api/v0/orders_controller.rb b/app/controllers/api/v0/orders_controller.rb index f36157db21..8570ac3db5 100644 --- a/app/controllers/api/v0/orders_controller.rb +++ b/app/controllers/api/v0/orders_controller.rb @@ -5,11 +5,6 @@ module Api class OrdersController < Api::V0::BaseController include PaginationData - def show - authorize! :read, order - render json: order, serializer: Api::OrderDetailedSerializer, current_order: order - end - def index authorize! :admin, Spree::Order @@ -26,6 +21,11 @@ module Api } end + def show + authorize! :read, order + render json: order, serializer: Api::OrderDetailedSerializer, current_order: order + end + def update authorize! :admin, order diff --git a/app/controllers/spree/admin/images_controller.rb b/app/controllers/spree/admin/images_controller.rb index ae160523b4..4fed1aba31 100644 --- a/app/controllers/spree/admin/images_controller.rb +++ b/app/controllers/spree/admin/images_controller.rb @@ -20,6 +20,10 @@ module Spree render layout: !request.xhr? end + def edit + @url_filters = ::ProductFilters.new.extract(request.query_parameters) + end + def create @url_filters = ::ProductFilters.new.extract(request.query_parameters) set_viewable @@ -34,10 +38,6 @@ module Spree end end - def edit - @url_filters = ::ProductFilters.new.extract(request.query_parameters) - end - def update @url_filters = ::ProductFilters.new.extract(request.query_parameters) set_viewable diff --git a/app/controllers/spree/admin/invoices_controller.rb b/app/controllers/spree/admin/invoices_controller.rb index c304a63697..b2035b9826 100644 --- a/app/controllers/spree/admin/invoices_controller.rb +++ b/app/controllers/spree/admin/invoices_controller.rb @@ -10,6 +10,13 @@ module Spree authorize! :invoice, @order end + def show + invoice_id = params[:id] + invoice_pdf = BulkInvoiceService.new.filepath(invoice_id) + + send_file(invoice_pdf, type: 'application/pdf', disposition: :inline) + end + def create Spree::Order.where(id: params[:order_ids]).find_each do |order| authorize! :invoice, order @@ -40,13 +47,6 @@ module Spree redirect_back(fallback_location: spree.admin_dashboard_path) end - def show - invoice_id = params[:id] - invoice_pdf = BulkInvoiceService.new.filepath(invoice_id) - - send_file(invoice_pdf, type: 'application/pdf', disposition: :inline) - end - def poll invoice_id = params[:invoice_id] diff --git a/app/controllers/spree/admin/products_controller.rb b/app/controllers/spree/admin/products_controller.rb index fb4726f7a5..4a7f954a7c 100644 --- a/app/controllers/spree/admin/products_controller.rb +++ b/app/controllers/spree/admin/products_controller.rb @@ -16,10 +16,24 @@ module Spree before_action :load_spree_api_key, only: [:index, :variant_overrides] before_action :strip_new_properties, only: [:create, :update] + def index + @current_user = spree_current_user + @show_latest_import = params[:latest_import] || false + end + + def show + session[:return_to] ||= request.referer + redirect_to( action: :edit ) + end + def new @object.shipping_category = DefaultShippingCategory.find_or_create end + def edit + @url_filters = ::ProductFilters.new.extract(request.query_parameters) + end + def create delete_stock_params_and_set_after do @object.attributes = permitted_resource_params @@ -35,20 +49,6 @@ module Spree end end - def show - session[:return_to] ||= request.referer - redirect_to( action: :edit ) - end - - def index - @current_user = spree_current_user - @show_latest_import = params[:latest_import] || false - end - - def edit - @url_filters = ::ProductFilters.new.extract(request.query_parameters) - end - def update @url_filters = ::ProductFilters.new.extract(request.query_parameters) diff --git a/app/controllers/spree/admin/taxons_controller.rb b/app/controllers/spree/admin/taxons_controller.rb index ae625e9da6..b586866110 100644 --- a/app/controllers/spree/admin/taxons_controller.rb +++ b/app/controllers/spree/admin/taxons_controller.rb @@ -5,6 +5,12 @@ module Spree class TaxonsController < Spree::Admin::BaseController respond_to :html, :json, :js + def edit + @taxonomy = Taxonomy.find(params[:taxonomy_id]) + @taxon = @taxonomy.taxons.find(params[:id]) + @permalink_part = @taxon.permalink.split("/").last + end + def create @taxonomy = Taxonomy.find(params[:taxonomy_id]) @taxon = @taxonomy.taxons.build(params[:taxon]) @@ -26,12 +32,6 @@ module Spree end end - def edit - @taxonomy = Taxonomy.find(params[:taxonomy_id]) - @taxon = @taxonomy.taxons.find(params[:id]) - @permalink_part = @taxon.permalink.split("/").last - end - def update @taxonomy = Taxonomy.find(params[:taxonomy_id]) @taxon = @taxonomy.taxons.find(params[:id]) diff --git a/app/controllers/spree/admin/variants_controller.rb b/app/controllers/spree/admin/variants_controller.rb index 6ccdd7f0f0..b7dbd0ddb4 100644 --- a/app/controllers/spree/admin/variants_controller.rb +++ b/app/controllers/spree/admin/variants_controller.rb @@ -11,27 +11,14 @@ module Spree @url_filters = ::ProductFilters.new.extract(request.query_parameters) end - def edit - @url_filters = ::ProductFilters.new.extract(request.query_parameters) - end - - def update - @url_filters = ::ProductFilters.new.extract(request.query_parameters) - - if @object.update(permitted_resource_params) - flash[:success] = flash_message_for(@object, :successfully_updated) - redirect_to spree.admin_product_variants_url(params[:product_id], @url_filters) - else - redirect_to spree.edit_admin_product_variant_url(params[:product_id], - @object, - @url_filters) - end - end - def new @url_filters = ::ProductFilters.new.extract(request.query_parameters) end + def edit + @url_filters = ::ProductFilters.new.extract(request.query_parameters) + end + def create @url_filters = ::ProductFilters.new.extract(request.query_parameters) @@ -53,6 +40,19 @@ module Spree @object.on_hand = on_hand.to_i if on_hand.present? end + def update + @url_filters = ::ProductFilters.new.extract(request.query_parameters) + + if @object.update(permitted_resource_params) + flash[:success] = flash_message_for(@object, :successfully_updated) + redirect_to spree.admin_product_variants_url(params[:product_id], @url_filters) + else + redirect_to spree.edit_admin_product_variant_url(params[:product_id], + @object, + @url_filters) + end + end + def search scoper = OpenFoodNetwork::ScopeVariantsForSearch.new(variant_search_params) @variants = scoper.search diff --git a/app/controllers/user_confirmations_controller.rb b/app/controllers/user_confirmations_controller.rb index c0634d49e7..d8b6b221fe 100644 --- a/app/controllers/user_confirmations_controller.rb +++ b/app/controllers/user_confirmations_controller.rb @@ -5,6 +5,13 @@ class UserConfirmationsController < DeviseController include Spree::Core::ControllerHelpers::Auth include CablecarResponses + # GET /resource/confirmation?confirmation_token=abcdef + def show + self.resource = resource_class.confirm_by_token(params[:confirmation_token]) + + respond_with_navigational(resource){ redirect_to after_confirmation_path_for(resource) } + end + # GET /resource/confirmation/new def new build_resource({}) @@ -33,13 +40,6 @@ class UserConfirmationsController < DeviseController respond_with_navigational(resource){ redirect_to login_path } end - # GET /resource/confirmation?confirmation_token=abcdef - def show - self.resource = resource_class.confirm_by_token(params[:confirmation_token]) - - respond_with_navigational(resource){ redirect_to after_confirmation_path_for(resource) } - end - protected def set_return_url From 44cf2faa1e623224f9ee30db2b6b6f7945d75dfc Mon Sep 17 00:00:00 2001 From: Neal Chambers Date: Tue, 1 Aug 2023 10:00:24 +0900 Subject: [PATCH 3/5] Safely autocorrect Rails/ActiveRecordCallbacksOrder Inspecting 1481 files ...........................................................................................................................................................................................................................................................C..C.CC........................................................................C...C..........C..C..................CC........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ Offenses: app/models/customer.rb:32:3: C: [Corrected] Rails/ActiveRecordCallbacksOrder: before_validation is supposed to appear before before_destroy. before_validation :downcase_email ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/customer.rb:33:3: C: [Corrected] Rails/ActiveRecordCallbacksOrder: before_validation is supposed to appear before before_destroy. before_validation :empty_code ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/customer.rb:34:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/models/customer.rb:49:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/models/customer.rb:49:3: C: [Corrected] Rails/ActiveRecordCallbacksOrder: before_create is supposed to appear before before_destroy. before_create :associate_user ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/enterprise.rb:129:3: C: [Corrected] Rails/ActiveRecordCallbacksOrder: after_create is supposed to appear before after_touch. after_create :set_default_contact ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/enterprise.rb:130:3: C: [Corrected] Rails/ActiveRecordCallbacksOrder: after_create is supposed to appear before after_touch. after_create :relate_to_owners_enterprises ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/enterprise.rb:133:3: C: [Corrected] Rails/ActiveRecordCallbacksOrder: after_rollback is supposed to appear before after_touch. after_rollback :restore_permalink ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/enterprise.rb:134:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/models/enterprise_group.rb:18:3: C: [Corrected] Rails/ActiveRecordCallbacksOrder: after_save is supposed to appear before after_find. after_save :unset_undefined_address_fields ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/enterprise_group.rb:18:3: C: [Corrected] Rails/ActiveRecordCallbacksOrder: before_validation is supposed to appear before after_save. before_validation :sanitize_permalink ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/enterprise_group.rb:19:3: C: [Corrected] Rails/ActiveRecordCallbacksOrder: before_validation is supposed to appear before after_find. before_validation :sanitize_permalink ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/enterprise_group.rb:23:3: C: [Corrected] Rails/ActiveRecordCallbacksOrder: before_validation is supposed to appear before after_save. before_validation :sanitize_permalink ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/enterprise_relationship.rb:15:3: C: [Corrected] Rails/ActiveRecordCallbacksOrder: before_destroy is supposed to appear before after_save. before_destroy :revoke_all_child_variant_overrides ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/enterprise_relationship.rb:16:3: C: [Corrected] Rails/ActiveRecordCallbacksOrder: before_destroy is supposed to appear before after_save. before_destroy :destroy_related_exchanges ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/spree/order.rb:108:5: C: [Corrected] Rails/ActiveRecordCallbacksOrder: before_save is supposed to appear before before_create. before_save :update_shipping_fees!, if: :complete? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/spree/order.rb:109:5: C: [Corrected] Rails/ActiveRecordCallbacksOrder: before_save is supposed to appear before before_create. before_save :update_payment_fees!, if: :complete? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/spree/payment.rb:30:5: C: [Corrected] Rails/ActiveRecordCallbacksOrder: after_initialize is supposed to appear before before_create. after_initialize :build_source ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/spree/payment.rb:32:5: C: [Corrected] Rails/ActiveRecordCallbacksOrder: after_initialize is supposed to appear before after_create. after_initialize :build_source ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/spree/payment.rb:33:5: C: [Corrected] Rails/ActiveRecordCallbacksOrder: after_create is supposed to appear before after_save. after_create :invalidate_old_payments ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/spree/payment.rb:34:5: C: [Corrected] Rails/ActiveRecordCallbacksOrder: after_initialize is supposed to appear before after_save. after_initialize :build_source ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/spree/payment.rb:35:5: C: [Corrected] Rails/ActiveRecordCallbacksOrder: after_create is supposed to appear before after_save. after_create :invalidate_old_payments ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/spree/payment.rb:36:5: C: [Corrected] Rails/ActiveRecordCallbacksOrder: after_initialize is supposed to appear before after_save. after_initialize :build_source ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/spree/payment.rb:46:5: C: [Corrected] Rails/ActiveRecordCallbacksOrder: after_initialize is supposed to appear before after_create. after_initialize :build_source ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/spree/payment.rb:47:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/models/spree/product.rb:87:5: C: [Corrected] Rails/ActiveRecordCallbacksOrder: after_create is supposed to appear before after_save. after_create :ensure_standard_variant ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/spree/return_authorization.rb:12:5: C: [Corrected] Rails/ActiveRecordCallbacksOrder: before_save is supposed to appear before before_create. before_save :force_positive_amount ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/spree/user.rb:49:5: C: [Corrected] Rails/ActiveRecordCallbacksOrder: after_create is supposed to appear before before_destroy. after_create :associate_customers, :associate_orders ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/spree/user.rb:50:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/models/spree/variant.rb:88:5: C: [Corrected] Rails/ActiveRecordCallbacksOrder: after_create is supposed to appear before after_save. after_create :create_stock_items ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/spree/variant.rb:89:5: C: [Corrected] Rails/ActiveRecordCallbacksOrder: after_create is supposed to appear before after_save. after_create :set_position ^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/spree/variant.rb:90:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/models/spree/variant.rb:91:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. app/models/spree/variant.rb:91:5: C: [Corrected] Rails/ActiveRecordCallbacksOrder: around_destroy is supposed to appear before after_save. around_destroy :destruction ^^^^^^^^^^^^^^^^^^^^^^^^^^^ app/models/spree/variant.rb:92:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected. 1481 files inspected, 35 offenses detected, 35 offenses corrected --- .rubocop_todo.yml | 17 ----------------- app/models/customer.rb | 8 +++----- app/models/enterprise.rb | 5 ++--- app/models/enterprise_group.rb | 4 ++-- app/models/enterprise_relationship.rb | 2 +- app/models/spree/order.rb | 2 +- app/models/spree/payment.rb | 7 +++---- app/models/spree/product.rb | 2 +- app/models/spree/return_authorization.rb | 2 +- app/models/spree/user.rb | 3 +-- app/models/spree/variant.rb | 4 +--- 11 files changed, 16 insertions(+), 40 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 91b958b867..9fd43b1e0a 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -443,23 +443,6 @@ Naming/VariableNumber: - 'spec/models/spree/tax_rate_spec.rb' - 'spec/requests/api/orders_spec.rb' -# Offense count: 12 -# This cop supports safe autocorrection (--autocorrect). -# Configuration parameters: Include. -# Include: app/models/**/*.rb -Rails/ActiveRecordCallbacksOrder: - Exclude: - - 'app/models/customer.rb' - - 'app/models/enterprise.rb' - - 'app/models/enterprise_group.rb' - - 'app/models/enterprise_relationship.rb' - - 'app/models/spree/order.rb' - - 'app/models/spree/payment.rb' - - 'app/models/spree/product.rb' - - 'app/models/spree/return_authorization.rb' - - 'app/models/spree/user.rb' - - 'app/models/spree/variant.rb' - # Offense count: 1 # Configuration parameters: Severity, Include. # Include: app/models/**/*.rb diff --git a/app/models/customer.rb b/app/models/customer.rb index 8157681269..d06162366f 100644 --- a/app/models/customer.rb +++ b/app/models/customer.rb @@ -19,6 +19,9 @@ class Customer < ApplicationRecord belongs_to :enterprise belongs_to :user, class_name: "Spree::User", optional: true has_many :orders, class_name: "Spree::Order" + before_validation :downcase_email + before_validation :empty_code + before_create :associate_user before_destroy :update_orders_and_delete_canceled_subscriptions belongs_to :bill_address, class_name: "Spree::Address", optional: true @@ -29,9 +32,6 @@ class Customer < ApplicationRecord alias_attribute :shipping_address, :ship_address accepts_nested_attributes_for :ship_address - before_validation :downcase_email - before_validation :empty_code - validates :code, uniqueness: { scope: :enterprise_id, allow_nil: true } validates :email, presence: true, 'valid_email_2/email': true, uniqueness: { @@ -46,8 +46,6 @@ class Customer < ApplicationRecord scope :created_manually, -> { where(created_manually: true) } scope :visible, -> { where(id: Spree::Order.complete.select(:customer_id)).or(created_manually) } - before_create :associate_user - attr_accessor :gateway_recurring_payment_client_secret, :gateway_shop_id def full_name diff --git a/app/models/enterprise.rb b/app/models/enterprise.rb index 99ce5c85c7..71a3152585 100644 --- a/app/models/enterprise.rb +++ b/app/models/enterprise.rb @@ -125,12 +125,11 @@ class Enterprise < ApplicationRecord before_validation :set_unused_address_fields after_validation :ensure_owner_is_manager, if: lambda { owner_id_changed? && !owner_id.nil? } - after_touch :touch_distributors after_create :set_default_contact after_create :relate_to_owners_enterprises - after_create_commit :send_welcome_email - after_rollback :restore_permalink + after_touch :touch_distributors + after_create_commit :send_welcome_email scope :by_name, -> { order('name') } scope :visible, -> { where(visible: "public") } diff --git a/app/models/enterprise_group.rb b/app/models/enterprise_group.rb index 4221776554..38b7458aa2 100644 --- a/app/models/enterprise_group.rb +++ b/app/models/enterprise_group.rb @@ -14,13 +14,13 @@ class EnterpriseGroup < ApplicationRecord validates :address, presence: true, associated: true before_validation :set_undefined_address_fields before_validation :set_unused_address_fields - after_find :unset_undefined_address_fields + before_validation :sanitize_permalink after_save :unset_undefined_address_fields + after_find :unset_undefined_address_fields validates :name, presence: true validates :description, presence: true - before_validation :sanitize_permalink validates :permalink, uniqueness: true, presence: true delegate :phone, :address1, :address2, :city, :zipcode, :state, :country, to: :address diff --git a/app/models/enterprise_relationship.rb b/app/models/enterprise_relationship.rb index e8590215fa..30bddcc31d 100644 --- a/app/models/enterprise_relationship.rb +++ b/app/models/enterprise_relationship.rb @@ -11,9 +11,9 @@ class EnterpriseRelationship < ApplicationRecord message: I18n.t('validation_msg_relationship_already_established') } - after_save :update_permissions_of_child_variant_overrides before_destroy :revoke_all_child_variant_overrides before_destroy :destroy_related_exchanges + after_save :update_permissions_of_child_variant_overrides scope :with_enterprises, -> { joins(" diff --git a/app/models/spree/order.rb b/app/models/spree/order.rb index dead0129fc..38189703cf 100644 --- a/app/models/spree/order.rb +++ b/app/models/spree/order.rb @@ -104,9 +104,9 @@ module Spree before_validation :clone_billing_address, if: :use_billing? before_validation :ensure_customer - before_create :link_by_email before_save :update_shipping_fees!, if: :complete? before_save :update_payment_fees!, if: :complete? + before_create :link_by_email after_create :create_tax_charge! after_save :reapply_tax_on_changed_address diff --git a/app/models/spree/payment.rb b/app/models/spree/payment.rb index 8b4baeac05..21d5a55166 100644 --- a/app/models/spree/payment.rb +++ b/app/models/spree/payment.rb @@ -25,14 +25,15 @@ module Spree has_one :adjustment, as: :adjustable, dependent: :destroy validate :validate_source + after_initialize :build_source before_create :set_unique_identifier + # invalidate previously entered payments + after_create :invalidate_old_payments after_save :create_payment_profile, if: :profiles_supported? # update the order totals, etc. after_save :ensure_correct_adjustment, :update_order - # invalidate previously entered payments - after_create :invalidate_old_payments # Skips the validation of the source (for example, credit card) of the payment. # @@ -43,8 +44,6 @@ module Spree attr_accessor :skip_source_validation attr_accessor :source_attributes - after_initialize :build_source - scope :from_credit_card, -> { where(source_type: 'Spree::CreditCard') } scope :with_state, ->(s) { where(state: s.to_s) } scope :completed, -> { with_state('completed') } diff --git a/app/models/spree/product.rb b/app/models/spree/product.rb index b0b65b956a..4af85b6cd1 100755 --- a/app/models/spree/product.rb +++ b/app/models/spree/product.rb @@ -83,8 +83,8 @@ module Spree before_save :add_primary_taxon_to_taxons - after_save :remove_previous_primary_taxon_from_taxons after_create :ensure_standard_variant + after_save :remove_previous_primary_taxon_from_taxons after_save :update_units scope :with_properties, ->(*property_ids) { diff --git a/app/models/spree/return_authorization.rb b/app/models/spree/return_authorization.rb index 9f353cd2fd..b173e7c679 100644 --- a/app/models/spree/return_authorization.rb +++ b/app/models/spree/return_authorization.rb @@ -8,8 +8,8 @@ module Spree has_many :inventory_units, inverse_of: :return_authorization has_one :stock_location - before_create :generate_number before_save :force_positive_amount + before_create :generate_number validates :order, presence: true validates :amount, numericality: true diff --git a/app/models/spree/user.rb b/app/models/spree/user.rb index c11de4b4b9..1932542edc 100644 --- a/app/models/spree/user.rb +++ b/app/models/spree/user.rb @@ -23,6 +23,7 @@ module Spree has_many :spree_orders, class_name: "Spree::Order" before_validation :set_login + after_create :associate_customers, :associate_orders before_destroy :check_completed_orders roles_table_name = Role.table_name @@ -46,8 +47,6 @@ module Spree accepts_nested_attributes_for :bill_address accepts_nested_attributes_for :ship_address - after_create :associate_customers, :associate_orders - validates :email, 'valid_email_2/email': { mx: true }, if: :email_changed? validate :limit_owned_enterprises validates :uid, uniqueness: true, if: lambda { uid.present? } diff --git a/app/models/spree/variant.rb b/app/models/spree/variant.rb index 0c98ba005d..cb2e1df5e9 100644 --- a/app/models/spree/variant.rb +++ b/app/models/spree/variant.rb @@ -83,12 +83,10 @@ module Spree variant.new_record? || variant.changed_attributes.keys.intersection(NAME_FIELDS).any? } - after_save :save_default_price - after_create :create_stock_items after_create :set_position - around_destroy :destruction + after_save :save_default_price # default variant scope only lists non-deleted variants scope :deleted, lambda { where('deleted_at IS NOT NULL') } From a263110799c420982030fffdef2e044a826cad89 Mon Sep 17 00:00:00 2001 From: Neal Chambers Date: Tue, 1 Aug 2023 10:01:40 +0900 Subject: [PATCH 4/5] Safely autocorrect Rails/DotSeparatedKeys Inspecting 1481 files ........................................................................C................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ Offenses: app/controllers/api/v1/base_controller.rb:72:66: C: [Corrected] Rails/DotSeparatedKeys: Use the dot-separated keys instead of specifying the :scope option. message = I18n.t(:missing_parameter, param: error.param, scope: :api) ^^^^^^^^^^^ app/controllers/api/v1/base_controller.rb:79:84: C: [Corrected] Rails/DotSeparatedKeys: Use the dot-separated keys instead of specifying the :scope option. message = I18n.t(:unpermitted_parameters, params: error.params.join(", "), scope: :api) ^^^^^^^^^^^ 1481 files inspected, 2 offenses detected, 2 offenses corrected --- .rubocop_todo.yml | 6 ------ app/controllers/api/v1/base_controller.rb | 4 ++-- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 9fd43b1e0a..ab39868802 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -478,12 +478,6 @@ Rails/CompactBlank: - 'lib/reporting/report_ruler.rb' - 'lib/reporting/reports/enterprise_fee_summary/parameters.rb' -# Offense count: 2 -# This cop supports safe autocorrection (--autocorrect). -Rails/DotSeparatedKeys: - Exclude: - - 'app/controllers/api/v1/base_controller.rb' - # Offense count: 27 # This cop supports safe autocorrection (--autocorrect). Rails/DurationArithmetic: diff --git a/app/controllers/api/v1/base_controller.rb b/app/controllers/api/v1/base_controller.rb index cc62b6978f..2cf59888fb 100644 --- a/app/controllers/api/v1/base_controller.rb +++ b/app/controllers/api/v1/base_controller.rb @@ -69,14 +69,14 @@ module Api end def missing_parameter(error) - message = I18n.t(:missing_parameter, param: error.param, scope: :api) + message = I18n.t('api.missing_parameter', param: error.param) render status: :unprocessable_entity, json: json_api_error(message) end def unpermitted_parameters(error) - message = I18n.t(:unpermitted_parameters, params: error.params.join(", "), scope: :api) + message = I18n.t('api.unpermitted_parameters', params: error.params.join(", ")) render status: :unprocessable_entity, json: json_api_error(message) From f47f6efcd029a4a8d0b46c75350b93044a387b02 Mon Sep 17 00:00:00 2001 From: Neal Chambers Date: Tue, 1 Aug 2023 10:04:46 +0900 Subject: [PATCH 5/5] Safely autocorrect Rails/DurationArithmetic Inspecting 1481 files ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................C.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................C.C.................................................................................................................................................................................................................................................................................C..............C..........................................................C...............................C....C..........CC................................................................ Offenses: app/services/create_order_cycle.rb:41:24: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. orders_close_at: Time.zone.now + 1.month ^^^^^^^^^^^^^^^^^^^^^^^ spec/jobs/order_cycle_closing_job_spec.rb:7:74: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. create(:order_cycle, automatic_notifications: true, orders_close_at: Time.zone.now - 1.minute) ^^^^^^^^^^^^^^^^^^^^^^^^ spec/jobs/order_cycle_closing_job_spec.rb:10:74: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. create(:order_cycle, automatic_notifications: true, orders_close_at: Time.zone.now + 1.minute) ^^^^^^^^^^^^^^^^^^^^^^^^ spec/jobs/order_cycle_closing_job_spec.rb:13:75: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. create(:order_cycle, automatic_notifications: false, orders_close_at: Time.zone.now - 1.minute) ^^^^^^^^^^^^^^^^^^^^^^^^ spec/jobs/order_cycle_opened_job_spec.rb:7:42: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. create(:order_cycle, orders_open_at: Time.zone.now - 1.hour) ^^^^^^^^^^^^^^^^^^^^^^ spec/jobs/order_cycle_opened_job_spec.rb:13:42: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. create(:order_cycle, orders_open_at: Time.zone.now + 1.minute) ^^^^^^^^^^^^^^^^^^^^^^^^ spec/services/permissions/order_spec.rb:26:58: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. completed_at: Time.zone.now - 1.year) ^^^^^^^^^^^^^^^^^^^^^^ spec/services/terms_of_service_spec.rb:21:71: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. allow(customer).to receive(:terms_and_conditions_accepted_at) { Time.zone.now - 1.week } ^^^^^^^^^^^^^^^^^^^^^^ spec/services/terms_of_service_spec.rb:22:59: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. allow(TermsOfServiceFile).to receive(:updated_at) { Time.zone.now - 2.weeks } ^^^^^^^^^^^^^^^^^^^^^^^ spec/services/terms_of_service_spec.rb:36:71: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. allow(customer).to receive(:terms_and_conditions_accepted_at) { Time.zone.now - 1.week } ^^^^^^^^^^^^^^^^^^^^^^ spec/services/terms_of_service_spec.rb:38:45: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. ActiveStorage::Blob.new(created_at: Time.zone.now - 2.weeks) ^^^^^^^^^^^^^^^^^^^^^^^ spec/system/admin/bulk_order_management_spec.rb:647:57: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. completed_at: Time.zone.now + 1.week, ^^^^^^^^^^^^^^^^^^^^^^ spec/system/admin/bulk_order_management_spec.rb:652:57: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. completed_at: Time.zone.now + 2.weeks, ^^^^^^^^^^^^^^^^^^^^^^^ spec/system/admin/bulk_order_management_spec.rb:661:40: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. oc3.update!(orders_close_at: Time.zone.now + 2.weeks) ^^^^^^^^^^^^^^^^^^^^^^^ spec/system/admin/bulk_order_management_spec.rb:662:39: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. oc3.update!(orders_open_at: Time.zone.now + 1.week) ^^^^^^^^^^^^^^^^^^^^^^ spec/system/admin/order_cycles/list_spec.rb:128:18: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. oc_open_at = Time.zone.now - 2.weeks ^^^^^^^^^^^^^^^^^^^^^^^ spec/system/admin/order_cycles/list_spec.rb:129:19: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. oc_close_at = Time.zone.now + 2.weeks ^^^^^^^^^^^^^^^^^^^^^^^ spec/system/admin/orders_spec.rb:289:40: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. order2.update!(completed_at: Time.zone.now - 2.weeks) ^^^^^^^^^^^^^^^^^^^^^^^ spec/system/admin/orders_spec.rb:290:40: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. order3.update!(completed_at: Time.zone.now - 3.weeks) ^^^^^^^^^^^^^^^^^^^^^^^ spec/system/admin/orders_spec.rb:291:40: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. order4.update!(completed_at: Time.zone.now - 4.weeks) ^^^^^^^^^^^^^^^^^^^^^^^ spec/system/admin/orders_spec.rb:292:40: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. order5.update!(completed_at: Time.zone.now - 5.weeks) ^^^^^^^^^^^^^^^^^^^^^^^ spec/system/admin/reports/orders_and_fulfillment_spec.rb:113:31: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. let(:completed_at1) { Time.zone.now - 1500.hours } # 1500 hours in the past ^^^^^^^^^^^^^^^^^^^^^^^^^^ spec/system/admin/reports/orders_and_fulfillment_spec.rb:114:31: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. let(:completed_at2) { Time.zone.now - 1700.hours } # 1700 hours in the past ^^^^^^^^^^^^^^^^^^^^^^^^^^ spec/system/admin/reports/orders_and_fulfillment_spec.rb:115:33: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. let(:datetime_start1) { Time.zone.now - 1600.hours } # 1600 hours in the past ^^^^^^^^^^^^^^^^^^^^^^^^^^ spec/system/admin/reports/orders_and_fulfillment_spec.rb:116:33: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. let(:datetime_start2) { Time.zone.now - 1800.hours } # 1600 hours in the past ^^^^^^^^^^^^^^^^^^^^^^^^^^ spec/system/admin/reports/orders_and_fulfillment_spec.rb:117:30: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. let(:datetime_end) { Time.zone.now - 1400.hours } # 1400 hours in the past ^^^^^^^^^^^^^^^^^^^^^^^^^^ spec/system/admin/reports/packing_report_spec.rb:13:26: C: [Corrected] Style/RedundantParentheses: Don't use parentheses around a method call. let!(:open_datetime) { (1.month.ago).strftime("%Y-%m-%d 00:00") } ^^^^^^^^^^^^^ spec/system/admin/reports/packing_report_spec.rb:13:27: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration. let!(:open_datetime) { (Time.zone.now - 1.month).strftime("%Y-%m-%d 00:00") } ^^^^^^^^^^^^^^^^^^^^^^^ 1481 files inspected, 28 offenses detected, 28 offenses corrected --- .rubocop_todo.yml | 15 --------------- app/services/create_order_cycle.rb | 2 +- spec/jobs/order_cycle_closing_job_spec.rb | 6 +++--- spec/jobs/order_cycle_opened_job_spec.rb | 4 ++-- spec/services/permissions/order_spec.rb | 2 +- spec/services/terms_of_service_spec.rb | 8 ++++---- spec/system/admin/bulk_order_management_spec.rb | 8 ++++---- spec/system/admin/order_cycles/list_spec.rb | 4 ++-- spec/system/admin/orders_spec.rb | 8 ++++---- .../admin/reports/orders_and_fulfillment_spec.rb | 10 +++++----- spec/system/admin/reports/packing_report_spec.rb | 2 +- 11 files changed, 27 insertions(+), 42 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index ab39868802..b9fe1e8e41 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -478,21 +478,6 @@ Rails/CompactBlank: - 'lib/reporting/report_ruler.rb' - 'lib/reporting/reports/enterprise_fee_summary/parameters.rb' -# Offense count: 27 -# This cop supports safe autocorrection (--autocorrect). -Rails/DurationArithmetic: - Exclude: - - 'app/services/create_order_cycle.rb' - - 'spec/jobs/order_cycle_closing_job_spec.rb' - - 'spec/jobs/order_cycle_opened_job_spec.rb' - - 'spec/services/permissions/order_spec.rb' - - 'spec/services/terms_of_service_spec.rb' - - 'spec/system/admin/bulk_order_management_spec.rb' - - 'spec/system/admin/order_cycles/list_spec.rb' - - 'spec/system/admin/orders_spec.rb' - - 'spec/system/admin/reports/orders_and_fulfillment_spec.rb' - - 'spec/system/admin/reports/packing_report_spec.rb' - # Offense count: 1 # This cop supports safe autocorrection (--autocorrect). Rails/ExpandedDateRange: diff --git a/app/services/create_order_cycle.rb b/app/services/create_order_cycle.rb index c8f9ce1b18..50900f1c88 100644 --- a/app/services/create_order_cycle.rb +++ b/app/services/create_order_cycle.rb @@ -38,7 +38,7 @@ class CreateOrderCycle coordinator_id: enterprise.id, name: 'Monthly order cycle', orders_open_at: Time.zone.now, - orders_close_at: Time.zone.now + 1.month + orders_close_at: 1.month.from_now ) end diff --git a/spec/jobs/order_cycle_closing_job_spec.rb b/spec/jobs/order_cycle_closing_job_spec.rb index 1e4ebcf61a..1495fd2111 100644 --- a/spec/jobs/order_cycle_closing_job_spec.rb +++ b/spec/jobs/order_cycle_closing_job_spec.rb @@ -4,13 +4,13 @@ require 'spec_helper' describe OrderCycleClosingJob do let(:order_cycle1) { - create(:order_cycle, automatic_notifications: true, orders_close_at: Time.zone.now - 1.minute) + create(:order_cycle, automatic_notifications: true, orders_close_at: 1.minute.ago) } let(:order_cycle2) { - create(:order_cycle, automatic_notifications: true, orders_close_at: Time.zone.now + 1.minute) + create(:order_cycle, automatic_notifications: true, orders_close_at: 1.minute.from_now) } let(:order_cycle3) { - create(:order_cycle, automatic_notifications: false, orders_close_at: Time.zone.now - 1.minute) + create(:order_cycle, automatic_notifications: false, orders_close_at: 1.minute.ago) } it "sends notifications for recently closed order cycles with automatic notifications enabled" do diff --git a/spec/jobs/order_cycle_opened_job_spec.rb b/spec/jobs/order_cycle_opened_job_spec.rb index 142cc01b0e..948abf5029 100644 --- a/spec/jobs/order_cycle_opened_job_spec.rb +++ b/spec/jobs/order_cycle_opened_job_spec.rb @@ -4,13 +4,13 @@ require 'spec_helper' describe OrderCycleOpenedJob do let(:oc_opened_before) { - create(:order_cycle, orders_open_at: Time.zone.now - 1.hour) + create(:order_cycle, orders_open_at: 1.hour.ago) } let(:oc_opened_now) { create(:order_cycle, orders_open_at: Time.zone.now) } let(:oc_opening_soon) { - create(:order_cycle, orders_open_at: Time.zone.now + 1.minute) + create(:order_cycle, orders_open_at: 1.minute.from_now) } it "enqueues jobs for recently opened order cycles only" do diff --git a/spec/services/permissions/order_spec.rb b/spec/services/permissions/order_spec.rb index bd664d9140..7eec197dbe 100644 --- a/spec/services/permissions/order_spec.rb +++ b/spec/services/permissions/order_spec.rb @@ -23,7 +23,7 @@ module Permissions } let(:order_from_last_year) { create(:completed_order_with_totals, order_cycle: order_cycle, distributor: distributor, - completed_at: Time.zone.now - 1.year) + completed_at: 1.year.ago) } before { allow(OpenFoodNetwork::Permissions).to receive(:new) { basic_permissions } } diff --git a/spec/services/terms_of_service_spec.rb b/spec/services/terms_of_service_spec.rb index 514f9dfb50..e6e78e4101 100644 --- a/spec/services/terms_of_service_spec.rb +++ b/spec/services/terms_of_service_spec.rb @@ -18,8 +18,8 @@ describe TermsOfService do context "a customer has accepted the platform terms of service" do before do - allow(customer).to receive(:terms_and_conditions_accepted_at) { Time.zone.now - 1.week } - allow(TermsOfServiceFile).to receive(:updated_at) { Time.zone.now - 2.weeks } + allow(customer).to receive(:terms_and_conditions_accepted_at) { 1.week.ago } + allow(TermsOfServiceFile).to receive(:updated_at) { 2.weeks.ago } end it "should reflect whether the platform TOS have been accepted since the last update" do @@ -33,9 +33,9 @@ describe TermsOfService do context "a customer has accepted the distributor terms of service" do before do - allow(customer).to receive(:terms_and_conditions_accepted_at) { Time.zone.now - 1.week } + allow(customer).to receive(:terms_and_conditions_accepted_at) { 1.week.ago } allow(distributor).to receive(:terms_and_conditions_blob) { - ActiveStorage::Blob.new(created_at: Time.zone.now - 2.weeks) + ActiveStorage::Blob.new(created_at: 2.weeks.ago) } end diff --git a/spec/system/admin/bulk_order_management_spec.rb b/spec/system/admin/bulk_order_management_spec.rb index 3abeaa61ed..e2f6940ee9 100644 --- a/spec/system/admin/bulk_order_management_spec.rb +++ b/spec/system/admin/bulk_order_management_spec.rb @@ -644,12 +644,12 @@ describe ' } let!(:o3) { create(:order_with_distributor, state: 'complete', shipment_state: 'ready', - completed_at: Time.zone.now + 1.week, + completed_at: 1.week.from_now, order_cycle: oc3 ) } let!(:o4) { create(:order_with_distributor, state: 'complete', shipment_state: 'ready', - completed_at: Time.zone.now + 2.weeks, + completed_at: 2.weeks.from_now, order_cycle: oc3 ) } let!(:li1) { create(:line_item_with_shipment, order: o1 ) } @@ -658,8 +658,8 @@ describe ' let!(:li4) { create(:line_item_with_shipment, order: o4 ) } before do - oc3.update!(orders_close_at: Time.zone.now + 2.weeks) - oc3.update!(orders_open_at: Time.zone.now + 1.week) + oc3.update!(orders_close_at: 2.weeks.from_now) + oc3.update!(orders_open_at: 1.week.from_now) visit_bulk_order_management end diff --git a/spec/system/admin/order_cycles/list_spec.rb b/spec/system/admin/order_cycles/list_spec.rb index 0db9266341..027cbb2ebc 100644 --- a/spec/system/admin/order_cycles/list_spec.rb +++ b/spec/system/admin/order_cycles/list_spec.rb @@ -125,8 +125,8 @@ describe ' end describe 'listing order cycles with other locales' do - oc_open_at = Time.zone.now - 2.weeks - oc_close_at = Time.zone.now + 2.weeks + oc_open_at = 2.weeks.ago + oc_close_at = 2.weeks.from_now let!(:oc_pt) { create(:simple_order_cycle, name: 'oc', orders_open_at: oc_open_at, orders_close_at: oc_close_at) diff --git a/spec/system/admin/orders_spec.rb b/spec/system/admin/orders_spec.rb index 2696a84687..f0fa036cbd 100644 --- a/spec/system/admin/orders_spec.rb +++ b/spec/system/admin/orders_spec.rb @@ -286,10 +286,10 @@ describe ' describe "ordering" do context "orders with different completion dates" do before do - order2.update!(completed_at: Time.zone.now - 2.weeks) - order3.update!(completed_at: Time.zone.now - 3.weeks) - order4.update!(completed_at: Time.zone.now - 4.weeks) - order5.update!(completed_at: Time.zone.now - 5.weeks) + order2.update!(completed_at: 2.weeks.ago) + order3.update!(completed_at: 3.weeks.ago) + order4.update!(completed_at: 4.weeks.ago) + order5.update!(completed_at: 5.weeks.ago) login_as_admin visit spree.admin_orders_path end diff --git a/spec/system/admin/reports/orders_and_fulfillment_spec.rb b/spec/system/admin/reports/orders_and_fulfillment_spec.rb index 9a6642405a..977ea12a82 100644 --- a/spec/system/admin/reports/orders_and_fulfillment_spec.rb +++ b/spec/system/admin/reports/orders_and_fulfillment_spec.rb @@ -110,11 +110,11 @@ describe "Orders And Fulfillment" do end context "with two orders on the same day at different times" do - let(:completed_at1) { Time.zone.now - 1500.hours } # 1500 hours in the past - let(:completed_at2) { Time.zone.now - 1700.hours } # 1700 hours in the past - let(:datetime_start1) { Time.zone.now - 1600.hours } # 1600 hours in the past - let(:datetime_start2) { Time.zone.now - 1800.hours } # 1600 hours in the past - let(:datetime_end) { Time.zone.now - 1400.hours } # 1400 hours in the past + let(:completed_at1) { 1500.hours.ago } # 1500 hours in the past + let(:completed_at2) { 1700.hours.ago } # 1700 hours in the past + let(:datetime_start1) { 1600.hours.ago } # 1600 hours in the past + let(:datetime_start2) { 1800.hours.ago } # 1600 hours in the past + let(:datetime_end) { 1400.hours.ago } # 1400 hours in the past before do Timecop.travel(completed_at1) { order1.finalize! } Timecop.travel(completed_at2) { order2.finalize! } diff --git a/spec/system/admin/reports/packing_report_spec.rb b/spec/system/admin/reports/packing_report_spec.rb index 31e08cf1e5..da86e57936 100644 --- a/spec/system/admin/reports/packing_report_spec.rb +++ b/spec/system/admin/reports/packing_report_spec.rb @@ -10,7 +10,7 @@ describe "Packing Reports" do Timecop.freeze(Time.zone.now.strftime("%Y-%m-%d 00:00")) { example.run } end - let!(:open_datetime) { (Time.zone.now - 1.month).strftime("%Y-%m-%d 00:00") } + let!(:open_datetime) { 1.month.ago.strftime("%Y-%m-%d 00:00") } let!(:close_datetime) { Time.zone.now.strftime("%Y-%m-%d 00:00") } describe "Packing reports" do