From 58ab9eb6de5cd48377e86b9ad6e3cd825225a828 Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Wed, 23 Nov 2016 16:23:47 -0800 Subject: [PATCH] Deprecate ShippingMethod#display_on --- .../spec/features/admin/orders/customer_details_spec.rb | 2 +- core/app/models/spree/shipping_method.rb | 5 ++++- core/app/models/spree/stock/estimator.rb | 2 +- core/spec/models/spree/shipping_method_spec.rb | 8 ++++++-- core/spec/models/spree/stock/estimator_spec.rb | 2 +- 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/backend/spec/features/admin/orders/customer_details_spec.rb b/backend/spec/features/admin/orders/customer_details_spec.rb index a45669093e8..7af11cbcd3b 100644 --- a/backend/spec/features/admin/orders/customer_details_spec.rb +++ b/backend/spec/features/admin/orders/customer_details_spec.rb @@ -5,7 +5,7 @@ let(:country) { create(:country, name: "Kangaland") } let(:state) { create(:state, name: "Alabama", country: country) } - let!(:shipping_method) { create(:shipping_method, display_on: "front_end") } + let!(:shipping_method) { create(:shipping_method) } let!(:order) { create(:order, ship_address: ship_address, bill_address: bill_address, state: 'complete', completed_at: "2011-02-01 12:36:15") } let!(:product) { create(:product_in_stock) } diff --git a/core/app/models/spree/shipping_method.rb b/core/app/models/spree/shipping_method.rb index 908402330eb..cbe8db06749 100644 --- a/core/app/models/spree/shipping_method.rb +++ b/core/app/models/spree/shipping_method.rb @@ -86,15 +86,18 @@ def display_on "back_end" end end + deprecate display_on: :available_to_users?, deprecator: Spree::Deprecation def display_on=(value) self.available_to_users = (value != "back_end") end + deprecate 'display_on=': :available_to_users=, deprecator: Spree::Deprecation # Some shipping methods are only meant to be set via backend def frontend? - display_on != "back_end" + available_to_users? end + deprecate frontend?: :available_to_users?, deprecator: Spree::Deprecation private diff --git a/core/app/models/spree/stock/estimator.rb b/core/app/models/spree/stock/estimator.rb index cc071c4c145..5ba5b88417e 100644 --- a/core/app/models/spree/stock/estimator.rb +++ b/core/app/models/spree/stock/estimator.rb @@ -16,7 +16,7 @@ def shipping_rates(package, frontend_only = true) raise OrderRequired if package.shipment.order.nil? rates = calculate_shipping_rates(package) - rates.select! { |rate| rate.shipping_method.frontend? } if frontend_only + rates.select! { |rate| rate.shipping_method.available_to_users? } if frontend_only choose_default_shipping_rate(rates) Spree::Config.shipping_rate_sorter_class.new(rates).sort end diff --git a/core/spec/models/spree/shipping_method_spec.rb b/core/spec/models/spree/shipping_method_spec.rb index 5cb33ad9f61..ac95fa59221 100644 --- a/core/spec/models/spree/shipping_method_spec.rb +++ b/core/spec/models/spree/shipping_method_spec.rb @@ -213,7 +213,9 @@ def matching(categories) describe "display_on=" do subject do - described_class.new(display_on: display_on).available_to_users + Spree::Deprecation.silence do + described_class.new(display_on: display_on).available_to_users + end end context "with 'back_end'" do @@ -234,7 +236,9 @@ def matching(categories) describe "display_on" do subject do - described_class.new(available_to_users: available_to_users).display_on + Spree::Deprecation.silence do + described_class.new(available_to_users: available_to_users).display_on + end end context "when available_to_users is true" do diff --git a/core/spec/models/spree/stock/estimator_spec.rb b/core/spec/models/spree/stock/estimator_spec.rb index 5bc5e2932fd..675b12c5941 100644 --- a/core/spec/models/spree/stock/estimator_spec.rb +++ b/core/spec/models/spree/stock/estimator_spec.rb @@ -126,7 +126,7 @@ module Stock context "involves backend only shipping methods" do before{ Spree::ShippingMethod.destroy_all } - let!(:backend_method) { create(:shipping_method, display_on: "back_end", cost: 0.00) } + let!(:backend_method) { create(:shipping_method, available_to_users: false, cost: 0.00) } let!(:generic_method) { create(:shipping_method, cost: 5.00) } it "does not return backend rates at all" do