lib/stimulus_reflex.rb in stimulus_reflex-3.3.0.pre5 vs lib/stimulus_reflex.rb in stimulus_reflex-3.3.0.pre6

- old
+ new

@@ -10,78 +10,19 @@ require "cable_ready" require "stimulus_reflex/version" require "stimulus_reflex/reflex" require "stimulus_reflex/element" require "stimulus_reflex/channel" +require "stimulus_reflex/sanity_checker" require "stimulus_reflex/broadcasters/broadcaster" require "stimulus_reflex/broadcasters/nothing_broadcaster" require "stimulus_reflex/broadcasters/page_broadcaster" require "stimulus_reflex/broadcasters/selector_broadcaster" require "generators/stimulus_reflex_generator" module StimulusReflex class Engine < Rails::Engine - NODE_VERSION_FORMAT = /(\d\.\d\.\d.*):/ - JSON_VERSION_FORMAT = /(\d\.\d\.\d.*)\"/ - - initializer "stimulus_reflex.verify_caching_enabled" do - unless caching_enabled? - puts <<~WARN - Stimulus Reflex requires caching to be enabled. Caching allows the session to be modified during ActionCable requests. - To enable caching in development, run: - - rails dev:cache - WARN - exit - end - end - - initializer "stimulus_reflex.verify_npm_package_version" do - unless node_version_matches? - puts <<~WARN - The Stimulus Reflex javascript package version (#{node_package_version}) does not match the Rubygem version (#{gem_version}). - To update the Stimulus Reflex node module: - - yarn upgrade stimulus_reflex@#{gem_version} - WARN - exit - end - end - - private - - def caching_enabled? - Rails.application.config.action_controller.perform_caching && - Rails.application.config.cache_store != :null_store - end - - def node_version_matches? - node_package_version == gem_version - end - - def gem_version - StimulusReflex::VERSION.gsub(".pre", "-pre") - end - - def node_package_version - match = File.foreach(yarn_lock_path).grep(/^stimulus_reflex/) - return match.first[NODE_VERSION_FORMAT, 1] if match.present? - - match = File.foreach(yarn_link_path).grep(/version/) - return match.first[JSON_VERSION_FORMAT, 1] if match.present? - - puts <<~WARN - Can't locate the stimulus_reflex NPM package. - Either add it to your package.json as a dependency or use "yarn link stimulus_reflex" if you are doing development. - WARN - exit - end - - def yarn_lock_path - Rails.root.join("yarn.lock") - end - - def yarn_link_path - Rails.root.join("node_modules", "stimulus_reflex", "package.json") + initializer "stimulus_reflex.sanity_check" do + SanityChecker.check! end end end