From 5c526bf5cca66ad844e2bf98251f0fef5fb698f2 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Fri, 28 Feb 2020 11:33:04 +0100 Subject: [PATCH] Move definitions into constants and use #freeze --- .../product_import/spreadsheet_entry.rb | 42 +++++++++---------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/app/models/product_import/spreadsheet_entry.rb b/app/models/product_import/spreadsheet_entry.rb index 9fd6ffd034..f9ccac04a5 100644 --- a/app/models/product_import/spreadsheet_entry.rb +++ b/app/models/product_import/spreadsheet_entry.rb @@ -20,6 +20,20 @@ module ProductImport :tax_category_id, :shipping_category_id, :description, :import_date, :enterprise, :enterprise_id + NON_DISPLAY_ATTRIBUTES = ['id', 'product_id', 'unscaled_units', 'variant_id', 'enterprise', + 'enterprise_id', 'producer_id', 'distributor_id', 'primary_taxon', + 'primary_taxon_id', 'category_id', 'shipping_category_id', + 'tax_category_id', 'variant_unit_scale', 'variant_unit', + 'unit_value'].freeze + + NON_PRODUCT_ATTRIBUTES = ['line_number', 'valid', 'errors', 'product_object', + 'product_validations', 'inventory_validations', 'validates_as', + 'save_type', 'on_hand_nil', 'has_overrides'].freeze + + NON_ASSIGNABLE_ATTRIBUTES = ['producer', 'producer_id', 'category', 'shipping_category', + 'tax_category', 'units', 'unscaled_units', 'unit_type', + 'enterprise', 'enterprise_id'].freeze + def initialize(attrs) @validates_as = '' remove_empty_skus attrs @@ -43,11 +57,11 @@ module ProductImport instance_variables.each do |var| attrs[var.to_s.delete("@")] = instance_variable_get(var) end - attrs.except(*non_product_attributes) + attrs.except(*NON_PRODUCT_ATTRIBUTES) end def assignable_attributes - attributes.except(*non_assignable_attributes) + attributes.except(*NON_ASSIGNABLE_ATTRIBUTES) end def displayable_attributes @@ -56,7 +70,7 @@ module ProductImport instance_variables.each do |var| attrs[var.to_s.delete("@")] = instance_variable_get(var) end - attrs.except(*non_product_attributes, *non_display_attributes) + attrs.except(*NON_PRODUCT_ATTRIBUTES, *NON_DISPLAY_ATTRIBUTES) end def invalid_attributes @@ -65,7 +79,7 @@ module ProductImport errors.each do |attr, message| invalid_attrs[attr.to_s] = "#{attr.to_s.capitalize} #{message.first}" end - invalid_attrs.except(*non_product_attributes, *non_display_attributes) + invalid_attrs.except(* NON_PRODUCT_ATTRIBUTES, *NON_DISPLAY_ATTRIBUTES) end private @@ -79,27 +93,9 @@ module ProductImport units.converted_attributes.each do |attr, value| if respond_to?("#{attr}=") - public_send("#{attr}=", value) unless non_product_attributes.include?(attr) + public_send("#{attr}=", value) unless NON_PRODUCT_ATTRIBUTES.include?(attr) end end end - - def non_display_attributes - ['id', 'product_id', 'unscaled_units', 'variant_id', 'enterprise', - 'enterprise_id', 'producer_id', 'distributor_id', 'primary_taxon', - 'primary_taxon_id', 'category_id', 'shipping_category_id', - 'tax_category_id', 'variant_unit_scale', 'variant_unit', 'unit_value'] - end - - def non_product_attributes - ['line_number', 'valid', 'errors', 'product_object', - 'product_validations', 'inventory_validations', 'validates_as', - 'save_type', 'on_hand_nil', 'has_overrides'] - end - - def non_assignable_attributes - ['producer', 'producer_id', 'category', 'shipping_category', 'tax_category', - 'units', 'unscaled_units', 'unit_type', 'enterprise', 'enterprise_id'] - end end end