12345678910111213141516171819202122232425262728293031323334 |
- if Rails.env.development? && ENV['RAKE_LIVE_RELOAD'].present?
- require 'rack-livereload'
-
- module BodyProcessorExtension
- def process!(env)
- @content_security_policy_nonce = if ActionDispatch::Request.new(env).respond_to?(:content_security_policy_nonce)
- ActionDispatch::Request.new(env).content_security_policy_nonce
- end
- super
- end
- def template
- orignal_template = ::File.read(::File.expand_path('../../../../skel/livereload.html.erb', method(:template).super_method.source_location[0]))
- nonced_template = orignal_template.gsub(%r{(<script type="text/javascript")}, '\1 nonce="<%= @content_security_policy_nonce %>"')
- ERB.new(nonced_template)
- end
- end
- Rack::LiveReload::BodyProcessor.prepend(BodyProcessorExtension)
-
- Rails.application.middleware.insert_after(
- ActionDispatch::Static,
- Rack::LiveReload,
- no_swf: true,
- min_delay: 500,
- max_delay: 10_000,
- live_reload_port: 35_738
- )
- end
|