From 58da11fde760769c1d75fcd27c65eaca0c11b80e Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Fri, 10 Jul 2020 16:16:52 +0100 Subject: [PATCH] Bring Environment Calculators and Environment Extension from spree_core --- lib/spree/core/environment/calculators.rb | 12 +++++++++++ lib/spree/core/environment_extension.rb | 25 +++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 lib/spree/core/environment/calculators.rb create mode 100644 lib/spree/core/environment_extension.rb diff --git a/lib/spree/core/environment/calculators.rb b/lib/spree/core/environment/calculators.rb new file mode 100644 index 0000000000..ae86072c19 --- /dev/null +++ b/lib/spree/core/environment/calculators.rb @@ -0,0 +1,12 @@ +module Spree + module Core + class Environment + class Calculators + include EnvironmentExtension + + attr_accessor :shipping_methods, :tax_rates + end + end + end +end + diff --git a/lib/spree/core/environment_extension.rb b/lib/spree/core/environment_extension.rb new file mode 100644 index 0000000000..ecbd31a9a3 --- /dev/null +++ b/lib/spree/core/environment_extension.rb @@ -0,0 +1,25 @@ +module Spree + module Core + module EnvironmentExtension + extend ActiveSupport::Concern + + def add_class(name) + self.instance_variable_set "@#{name}", Set.new + + create_method( "#{name}=".to_sym ) { |val| + instance_variable_set( "@" + name, val) + } + + create_method(name.to_sym) do + instance_variable_get( "@" + name ) + end + end + + private + + def create_method(name, &block) + self.class.send(:define_method, name, &block) + end + end + end +end