Skip to content

Commit

Permalink
Tidy up action_text:install task
Browse files Browse the repository at this point in the history
Automate installing the appropriate packages with yarn and appending them to the default application.js pack.
  • Loading branch information
javan committed Jan 17, 2019
1 parent 11b73c4 commit 866da19
Showing 1 changed file with 20 additions and 9 deletions.
29 changes: 20 additions & 9 deletions actiontext/lib/templates/installer.rb
Original file line number Diff line number Diff line change
@@ -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"

Expand All @@ -8,14 +18,15 @@
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

0 comments on commit 866da19

Please sign in to comment.