File tree Expand file tree Collapse file tree 2 files changed +32
-2
lines changed Expand file tree Collapse file tree 2 files changed +32
-2
lines changed Original file line number Diff line number Diff line change @@ -87,13 +87,21 @@ def cache_as(name)
87
87
if result = instance_variable_get ( "@cached_#{ name } " )
88
88
result
89
89
else
90
+ remember_cache_key ( name )
90
91
instance_variable_set ( "@cached_#{ name } " , yield )
91
92
end
92
93
end
93
94
95
+ def remember_cache_key ( name )
96
+ @cache_keys ||= Set . new
97
+ @cache_keys . add name
98
+ end
99
+
100
+
94
101
def clear_cache
95
- @cached_json = nil
96
- @cached_preloaded_module_paths = nil
102
+ @cache_keys &.each do |name |
103
+ instance_variable_set ( "@cached_#{ name } " , nil )
104
+ end
97
105
end
98
106
99
107
def rescuable_asset_error? ( error )
Original file line number Diff line number Diff line change @@ -67,6 +67,28 @@ def setup
67
67
assert_match /^\w {40}$/ , @importmap . digest ( resolver : ApplicationController . helpers )
68
68
end
69
69
70
+ test "separate caches" do
71
+ set_one = @importmap . preloaded_module_paths ( resolver : ApplicationController . helpers , cache_key : "1" ) . to_s
72
+
73
+ ActionController ::Base . asset_host = "http://assets.example.com"
74
+
75
+ set_two = @importmap . preloaded_module_paths ( resolver : ActionController ::Base . helpers , cache_key : "2" ) . to_s
76
+
77
+ assert_not_equal set_one , set_two
78
+ ensure
79
+ ActionController ::Base . asset_host = nil
80
+ end
81
+
82
+ test "all caches reset" do
83
+ set_one = @importmap . preloaded_module_paths ( resolver : ApplicationController . helpers , cache_key : "1" ) . to_s
84
+ set_two = @importmap . preloaded_module_paths ( resolver : ApplicationController . helpers , cache_key : "2" ) . to_s
85
+
86
+ @importmap . pin "something" , to : "https://cdn.example.com/somewhere.js" , preload : true
87
+
88
+ assert_not_equal set_one , @importmap . preloaded_module_paths ( resolver : ApplicationController . helpers , cache_key : "1" ) . to_s
89
+ assert_not_equal set_two , @importmap . preloaded_module_paths ( resolver : ApplicationController . helpers , cache_key : "2" ) . to_s
90
+ end
91
+
70
92
private
71
93
def generate_importmap_json
72
94
JSON . parse @importmap . to_json ( resolver : ApplicationController . helpers )
You can’t perform that action at this time.
0 commit comments