Sha256: d022f84289fbbce49f49aa190490008582c6c4b1b3223ff2a9ec0efe4fc8b0a5

Contents?: true

Size: 1.27 KB

Versions: 1

Compression:

Stored size: 1.27 KB

Contents

APP_JS_PATH = Rails.root.join("app/javascript/application.js")
CABLE_CONFIG_PATH = Rails.root.join("config/cable.yml")
IMPORTMAP_PATH = Rails.root.join("config/importmap.rb")

if APP_JS_PATH.exist?
  say "Import turbo-rails in existing app/javascript/application.js"
  append_to_file APP_JS_PATH, %(import "@hotwired/turbo-rails"\n)
else
  say <<~INSTRUCTIONS, :red
    You must import @hotwire/turbo-rails in your application.js.
  INSTRUCTIONS
end

if IMPORTMAP_PATH.exist?
  say "Pin @hotwired/turbo-rails in config/importmap.rb"
  insert_into_file \
    IMPORTMAP_PATH.to_s, 
    %(  pin "@hotwired/turbo-rails", to: "turbo.js"\n\n),
    after: "Rails.application.config.importmap.draw do\n"
else
  say <<~INSTRUCTIONS, :red
    You must add @hotwire/turbo-rails to your importmap to reference them via ESM.
  INSTRUCTIONS
end

if CABLE_CONFIG_PATH.exist?
  say "Enable redis in bundle"
  uncomment_lines "Gemfile", %(gem 'redis')

  say "Switch development cable to use redis"
  gsub_file CABLE_CONFIG_PATH.to_s, /development:\n\s+adapter: async/, "development:\n  adapter: redis\n  url: redis://localhost:6379/1"
else
  say 'ActionCable config file (config/cable.yml) is missing. Uncomment "gem \'redis\'" in your Gemfile and create config/cable.yml to use the Turbo Streams broadcast feature.'
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
turbo-rails-0.7.4 lib/install/turbo_with_asset_pipeline.rb