From 66a2e286b5e38b423a748e4cbc7d5aabe7fe4f62 Mon Sep 17 00:00:00 2001 From: Shawn French Date: Tue, 7 Jan 2020 13:20:48 -0500 Subject: [PATCH 1/2] Use a string when setting session_repository --- README.md | 2 +- .../install/templates/shopify_app.rb | 2 +- lib/shopify_app/configuration.rb | 9 ++------- .../config/initializers/shopify_app.rb | 2 +- test/generators/install_generator_test.rb | 4 ++-- test/generators/shop_model_generator_test.rb | 2 +- test/generators/user_model_generator_test.rb | 2 +- test/shopify_app/configuration_test.rb | 17 +++++++++++++++++ 8 files changed, 26 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 804f978e4..085d17be7 100644 --- a/README.md +++ b/README.md @@ -247,7 +247,7 @@ provider :shopify, per_user_permissions: true # In the `shopify_app.rb` initializer: -config.session_repository = User +config.session_repository = 'User' config.per_user_tokens = true ``` diff --git a/lib/generators/shopify_app/install/templates/shopify_app.rb b/lib/generators/shopify_app/install/templates/shopify_app.rb index 7822e9df6..6ac2fae7c 100644 --- a/lib/generators/shopify_app/install/templates/shopify_app.rb +++ b/lib/generators/shopify_app/install/templates/shopify_app.rb @@ -8,7 +8,7 @@ config.embedded_app = <%= embedded_app? %> config.after_authenticate_job = false config.api_version = "<%= @api_version %>" - config.session_repository = ShopifyApp::InMemorySessionStore + config.session_repository = 'ShopifyApp::InMemorySessionStore' end # ShopifyApp::Utils.fetch_known_api_versions # Uncomment to fetch known api versions from shopify servers on boot diff --git a/lib/shopify_app/configuration.rb b/lib/shopify_app/configuration.rb index 7eded37d7..ea740a53b 100644 --- a/lib/shopify_app/configuration.rb +++ b/lib/shopify_app/configuration.rb @@ -50,13 +50,8 @@ def login_url end def session_repository=(klass) - if Rails.configuration.cache_classes - ShopifyApp::SessionRepository.storage = klass - else - ActiveSupport::Reloader.to_prepare do - ShopifyApp::SessionRepository.storage = klass - end - end + @session_repository = klass + ShopifyApp::SessionRepository.storage = klass end def has_webhooks? diff --git a/test/app_templates/config/initializers/shopify_app.rb b/test/app_templates/config/initializers/shopify_app.rb index 5184050a3..465cfa352 100644 --- a/test/app_templates/config/initializers/shopify_app.rb +++ b/test/app_templates/config/initializers/shopify_app.rb @@ -4,5 +4,5 @@ config.secret = ENV['SHOPIFY_API_SECRET'] config.scope = 'read_orders, read_products' config.embedded_app = true - config.session_repository = ShopifyApp::InMemorySessionStore + config.session_repository = 'ShopifyApp::InMemorySessionStore' end diff --git a/test/generators/install_generator_test.rb b/test/generators/install_generator_test.rb index e80ef9c4d..2b4cbb0bd 100644 --- a/test/generators/install_generator_test.rb +++ b/test/generators/install_generator_test.rb @@ -42,7 +42,7 @@ class InstallGeneratorTest < Rails::Generators::TestCase assert_match 'config.scope = "read_orders, write_products"', shopify_app assert_match 'config.embedded_app = true', shopify_app assert_match 'config.api_version = "unstable"', shopify_app - assert_match 'config.session_repository = ShopifyApp::InMemorySessionStore', shopify_app + assert_match "config.session_repository = 'ShopifyApp::InMemorySessionStore'", shopify_app end end @@ -54,7 +54,7 @@ class InstallGeneratorTest < Rails::Generators::TestCase assert_match "config.secret = ENV['SHOPIFY_API_SECRET']", shopify_app assert_match 'config.scope = "read_orders, write_products"', shopify_app assert_match 'config.embedded_app = true', shopify_app - assert_match 'config.session_repository = ShopifyApp::InMemorySessionStore', shopify_app + assert_match "config.session_repository = 'ShopifyApp::InMemorySessionStore'", shopify_app end end diff --git a/test/generators/shop_model_generator_test.rb b/test/generators/shop_model_generator_test.rb index 4dae0e281..cc3035421 100644 --- a/test/generators/shop_model_generator_test.rb +++ b/test/generators/shop_model_generator_test.rb @@ -29,7 +29,7 @@ class ShopModelGeneratorTest < Rails::Generators::TestCase test "updates the shopify_app initializer" do run_generator assert_file "config/initializers/shopify_app.rb" do |file| - assert_match "config.session_repository = Shop", file + assert_match "config.session_repository = 'Shop'", file end end diff --git a/test/generators/user_model_generator_test.rb b/test/generators/user_model_generator_test.rb index df47e2e0b..7476c8eb4 100644 --- a/test/generators/user_model_generator_test.rb +++ b/test/generators/user_model_generator_test.rb @@ -29,7 +29,7 @@ class UserModelGeneratorTest < Rails::Generators::TestCase test "updates the shopify_app initializer to use User to store session" do run_generator assert_file "config/initializers/shopify_app.rb" do |file| - assert_match "config.session_repository = User", file + assert_match "config.session_repository = 'User'", file end end diff --git a/test/shopify_app/configuration_test.rb b/test/shopify_app/configuration_test.rb index 51c30ca56..c69958282 100644 --- a/test/shopify_app/configuration_test.rb +++ b/test/shopify_app/configuration_test.rb @@ -133,4 +133,21 @@ class ConfigurationTest < ActiveSupport::TestCase assert_equal "Shopify::Webhooks::TestJob", ShopifyApp::WebhooksController.new.send(:webhook_job_klass_name, 'test') end + test "can set session_repository with a string" do + ShopifyApp.configure do |config| + config.session_repository = 'ShopifyApp::InMemorySessionStore' + end + + assert_equal 'ShopifyApp::InMemorySessionStore', ShopifyApp.configuration.session_repository + assert_equal ShopifyApp::InMemorySessionStore, ShopifyApp::SessionRepository.storage + end + + test "can set session_repository with a class" do + ShopifyApp.configure do |config| + config.session_repository = ShopifyApp::InMemorySessionStore + end + + assert_equal ShopifyApp::InMemorySessionStore, ShopifyApp.configuration.session_repository + assert_equal ShopifyApp::InMemorySessionStore, ShopifyApp::SessionRepository.storage + end end From 0ee39ae1f920e943b8f5f3da85cc3c0cc9632c4f Mon Sep 17 00:00:00 2001 From: Shawn French Date: Tue, 7 Jan 2020 13:51:36 -0500 Subject: [PATCH 2/2] Use attr_reader for session_repository --- lib/shopify_app/configuration.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/shopify_app/configuration.rb b/lib/shopify_app/configuration.rb index ea740a53b..9cf2cdfbf 100644 --- a/lib/shopify_app/configuration.rb +++ b/lib/shopify_app/configuration.rb @@ -14,7 +14,7 @@ class Configuration attr_accessor :webhooks attr_accessor :scripttags attr_accessor :after_authenticate_job - attr_accessor :session_repository + attr_reader :session_repository attr_accessor :per_user_tokens alias_method :per_user_tokens?, :per_user_tokens attr_accessor :api_version