@@ -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,29 @@ class Railtie < ::Rails::Railtie
114112 React ::JSX ::SprocketsStrategy . attach_with_strategy ( sprockets_env , app . config . react . sprockets_strategy )
115113 end
116114 end
115+
116+ # :nodoc:
117+ def self . append_react_build_to_assets_version! ( assets , react_build )
118+ versioned_assets = versioned_assets_for ( assets )
119+ return if versioned_assets . nil?
120+
121+ versioned_assets . version = [ versioned_assets . version , "react-#{ react_build } " ] . compact . join ( "-" )
122+ end
123+
124+ def self . versioned_assets_for ( assets )
125+ return assets if versioned_assets? ( assets )
126+
127+ config = assets . config if assets . respond_to? ( :config )
128+ return config if versioned_assets? ( config )
129+
130+ nil
131+ end
132+
133+ def self . versioned_assets? ( assets )
134+ assets . respond_to? ( :version ) && assets . respond_to? ( :version= )
135+ end
136+
137+ private_class_method :versioned_assets_for , :versioned_assets?
117138 end
118139 end
119140end
0 commit comments