@@ -76,10 +76,8 @@ class Railtie < ::Rails::Railtie
7676 variant : app . config . react . variant
7777 } )
7878
79- sprockets_env = app . assets || app . config . try ( :assets ) # sprockets-rails 3.x attaches this at a different config
80- unless sprockets_env . nil?
81- sprockets_env . version = [ sprockets_env . version , "react-#{ asset_variant . react_build } " ] . compact . join ( "-" )
82- end
79+ assets = app . assets || app . config . try ( :assets ) # sprockets-rails 3.x attaches this at a different config
80+ Railtie . append_react_build_to_assets_version! ( assets , asset_variant . react_build )
8381 end
8482
8583 initializer "react_rails.set_variant" , after : :engines_blank_point , group : :all do |app |
@@ -114,6 +112,28 @@ class Railtie < ::Rails::Railtie
114112 React ::JSX ::SprocketsStrategy . attach_with_strategy ( sprockets_env , app . config . react . sprockets_strategy )
115113 end
116114 end
115+
116+ def self . append_react_build_to_assets_version! ( assets , react_build )
117+ versioned_assets = versioned_assets_for ( assets )
118+ return if versioned_assets . nil?
119+
120+ versioned_assets . version = [ versioned_assets . version , "react-#{ react_build } " ] . compact . join ( "-" )
121+ end
122+
123+ def self . versioned_assets_for ( assets )
124+ return assets if versioned_assets? ( assets )
125+
126+ config = assets . config if assets . respond_to? ( :config )
127+ return config if versioned_assets? ( config )
128+
129+ nil
130+ end
131+
132+ def self . versioned_assets? ( assets )
133+ assets &.respond_to? ( :version ) && assets . respond_to? ( :version= )
134+ end
135+
136+ private_class_method :versioned_assets_for , :versioned_assets?
117137 end
118138 end
119139end
0 commit comments