diff options
author | Javan Makhmali <javan@javan.us> | 2019-01-17 13:24:09 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-17 13:24:09 -0500 |
commit | 69c963c2e8ac56f4832e767c3c83091b9c6f24dd (patch) | |
tree | 30e20d7a0a6cd1c7074bb4113778888bbf6fb3f9 /actiontext/lib | |
parent | 2dee59fed1e78b983aed4db53dc8fc59e49b9200 (diff) | |
parent | 866da19fd9fc12d001ab99ac87890ea1cebb2cd9 (diff) | |
download | rails-69c963c2e8ac56f4832e767c3c83091b9c6f24dd.tar.gz rails-69c963c2e8ac56f4832e767c3c83091b9c6f24dd.tar.bz2 rails-69c963c2e8ac56f4832e767c3c83091b9c6f24dd.zip |
Merge pull request #34958 from javan/actiontext/trix-as-peer
Declare Trix as peer dependency of Action Text's npm package
Diffstat (limited to 'actiontext/lib')
-rw-r--r-- | actiontext/lib/templates/installer.rb | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/actiontext/lib/templates/installer.rb b/actiontext/lib/templates/installer.rb index e7c6c2623e..990e41ca00 100644 --- a/actiontext/lib/templates/installer.rb +++ b/actiontext/lib/templates/installer.rb @@ -1,3 +1,13 @@ +require "pathname" +require "json" + +APPLICATION_PACK_PATH = Pathname.new("app/javascript/packs/application.js") +JS_PACKAGE_PATH = Pathname.new("#{__dir__}/../../package.json") + +JS_PACKAGE = JSON.load(JS_PACKAGE_PATH) +JS_DEPENDENCIES = JS_PACKAGE["peerDependencies"].dup.merge \ + JS_PACKAGE["name"] => "^#{JS_PACKAGE["version"]}" + say "Copying actiontext.scss to app/assets/stylesheets" copy_file "#{__dir__}/actiontext.scss", "app/assets/stylesheets/actiontext.scss" @@ -8,14 +18,15 @@ say "Copying blob rendering partial to app/views/active_storage/blobs/_blob.html copy_file "#{__dir__}/../../app/views/active_storage/blobs/_blob.html.erb", "app/views/active_storage/blobs/_blob.html.erb" -say "Installing JavaScript dependency" -run "yarn add @rails/actiontext" - -APPLICATION_PACK_PATH = "app/javascript/packs/application.js" +say "Installing JavaScript dependencies" +run "yarn add #{JS_DEPENDENCIES.map { |name, version| "#{name}@#{version}" }.join(" ")}" -if File.exist?(APPLICATION_PACK_PATH) && File.read(APPLICATION_PACK_PATH) !~ /import "@rails\/actiontext"/ - say "Adding import to default JavaScript pack" - append_to_file APPLICATION_PACK_PATH, <<-EOS -import "@rails/actiontext" -EOS +if APPLICATION_PACK_PATH.exist? + JS_DEPENDENCIES.keys.each do |name| + line = %[require("#{name}")] + unless APPLICATION_PACK_PATH.read.include? line + say "Adding #{name} to #{APPLICATION_PACK_PATH}" + append_to_file APPLICATION_PACK_PATH, "#{line}\n" + end + end end |