diff options
author | Jared Norman <jared@super.gd> | 2019-03-24 10:05:58 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-24 10:05:58 -0700 |
commit | 981ee59475e4ba1257a5846f0773acac57b548fa (patch) | |
tree | 5c243161b27ca76e5763aee91067ad9d99cc698d /lib | |
parent | 0e1ad4818e5473c3333bd0329456cb79cc43ff83 (diff) | |
parent | ba8dc647da8c69428a2dfb3a136a59bbb8cacdd7 (diff) |
Merge pull request #7 from SuperGoodSoft/feature/configurable-cache-keyv0.9.0
Configurable Caching
Diffstat (limited to 'lib')
-rw-r--r-- | lib/super_good/solidus_taxjar.rb | 24 | ||||
-rw-r--r-- | lib/super_good/solidus_taxjar/tax_calculator.rb | 13 | ||||
-rw-r--r-- | lib/super_good/solidus_taxjar/version.rb | 2 |
3 files changed, 24 insertions, 15 deletions
diff --git a/lib/super_good/solidus_taxjar.rb b/lib/super_good/solidus_taxjar.rb index 818947d..ba4ff48 100644 --- a/lib/super_good/solidus_taxjar.rb +++ b/lib/super_good/solidus_taxjar.rb @@ -11,21 +11,33 @@ require "super_good/solidus_taxjar/discount_calculator" module SuperGood module SolidusTaxJar class << self + attr_accessor :cache_duration + attr_accessor :cache_key attr_accessor :discount_calculator - attr_accessor :test_mode attr_accessor :exception_handler - attr_accessor :taxable_address_check - attr_accessor :shipping_tax_label_maker attr_accessor :line_item_tax_label_maker + attr_accessor :shipping_tax_label_maker + attr_accessor :taxable_address_check + attr_accessor :test_mode end + self.cache_duration = 3.hours + self.cache_key = ->(order) { + APIParams.order_params(order).transform_values do |value| + case value + when Array, Hash then value.hash + else + value + end + end + } self.discount_calculator = ::SuperGood::SolidusTaxJar::DiscountCalculator - self.test_mode = false self.exception_handler = ->(e) { Rails.logger.error "An error occurred while fetching TaxJar tax rates - #{e}: #{e.message}" } - self.taxable_address_check = ->(address) { true } - self.shipping_tax_label_maker = ->(shipment, shipping_tax) { "Sales Tax" } self.line_item_tax_label_maker = ->(taxjar_line_item, spree_line_item) { "Sales Tax" } + self.shipping_tax_label_maker = ->(shipment, shipping_tax) { "Sales Tax" } + self.taxable_address_check = ->(address) { true } + self.test_mode = false end end diff --git a/lib/super_good/solidus_taxjar/tax_calculator.rb b/lib/super_good/solidus_taxjar/tax_calculator.rb index e8e12f4..0ddd50f 100644 --- a/lib/super_good/solidus_taxjar/tax_calculator.rb +++ b/lib/super_good/solidus_taxjar/tax_calculator.rb @@ -116,20 +116,17 @@ module SuperGood def cache if !Rails.env.test? - Rails.cache.fetch(cache_key, expires_in: 3.hours) { yield } + Rails.cache.fetch( + cache_key, + expires_in: SuperGood::SolidusTaxJar.cache_duration + ) { yield } else yield end end def cache_key - APIParams.order_params(order).transform_values do |value| - case value - when Array, Hash then value.hash - else - value - end - end + SuperGood::SolidusTaxJar.cache_key.(order) end def exception_handler diff --git a/lib/super_good/solidus_taxjar/version.rb b/lib/super_good/solidus_taxjar/version.rb index a8fd65c..bd3ad9c 100644 --- a/lib/super_good/solidus_taxjar/version.rb +++ b/lib/super_good/solidus_taxjar/version.rb @@ -1,5 +1,5 @@ module SuperGood module SolidusTaxJar - VERSION = "0.8.0" + VERSION = "0.9.0" end end |