summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJared Norman <jared@super.gd>2019-03-24 10:05:58 -0700
committerGitHub <noreply@github.com>2019-03-24 10:05:58 -0700
commit981ee59475e4ba1257a5846f0773acac57b548fa (patch)
tree5c243161b27ca76e5763aee91067ad9d99cc698d
parent0e1ad4818e5473c3333bd0329456cb79cc43ff83 (diff)
parentba8dc647da8c69428a2dfb3a136a59bbb8cacdd7 (diff)
Merge pull request #7 from SuperGoodSoft/feature/configurable-cache-keyv0.9.0
Configurable Caching
-rw-r--r--CHANGELOG.md6
-rw-r--r--lib/super_good/solidus_taxjar.rb24
-rw-r--r--lib/super_good/solidus_taxjar/tax_calculator.rb13
-rw-r--r--lib/super_good/solidus_taxjar/version.rb2
4 files changed, 30 insertions, 15 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b704dee..47b07aa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
# Changelog
+## master
+
+## v0.9.0
+
+- Made response cache key and cache duration configurable.
+
## v0.8.0
- Increased response caching time to 3 hours.
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