From e11f84ee3a6d9a7fe77e3b1e112a6625c1df0ee4 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 2 Oct 2018 16:05:03 -0700 Subject: Use an app template installer instead for nicer overwriting checks --- lib/tasks/actiontext.rake | 32 ++++++-------------------------- lib/templates/installer.rb | 9 +++++++++ 2 files changed, 15 insertions(+), 26 deletions(-) create mode 100644 lib/templates/installer.rb diff --git a/lib/tasks/actiontext.rake b/lib/tasks/actiontext.rake index 6ec30f86e7..4f90e4930c 100644 --- a/lib/tasks/actiontext.rake +++ b/lib/tasks/actiontext.rake @@ -5,36 +5,16 @@ namespace :action_text do Rake::Task["install:migrations"].clear_comments desc "Copy over the migration, stylesheet, and JavaScript files" - task install: %w( environment copy_migrations copy_stylesheet copy_fixtures yarn_add ) + task install: %w( environment run_installer copy_migrations ) + + task :run_installer do + installer_template = File.expand_path("../templates/installer.rb", __dir__) + system "#{RbConfig.ruby} ./bin/rails app:template LOCATION=#{installer_template}" + end task :copy_migrations do Rake::Task["active_storage:install:migrations"].invoke Rake::Task["railties:install:migrations"].reenable # Otherwise you can't run 2 migration copy tasks in one invocation Rake::Task["action_text:install:migrations"].invoke end - - STYLESHEET_TEMPLATE_PATH = File.expand_path("../templates/actiontext.css", __dir__) - STYLESHEET_APP_PATH = Rails.root.join("app/assets/stylesheets/actiontext.css") - - task :copy_stylesheet do - unless File.exist?(STYLESHEET_APP_PATH) - FileUtils.cp STYLESHEET_TEMPLATE_PATH, STYLESHEET_APP_PATH - end - end - - FIXTURE_TEMPLATE_PATH = File.expand_path("../templates/fixtures.yml", __dir__) - FIXTURE_APP_DIR_PATH = Rails.root.join("test/fixtures/action_text") - FIXTURE_APP_PATH = FIXTURE_APP_DIR_PATH.join("rich_texts.yml") - - task :copy_fixtures do - unless File.exist?(FIXTURE_APP_PATH) - FileUtils.mkdir FIXTURE_APP_DIR_PATH - FileUtils.cp FIXTURE_TEMPLATE_PATH, FIXTURE_APP_PATH - end - end - - task :yarn_add do - # FIXME: Replace with release version on release - system "yarn add https://github.com/basecamp/actiontext" - end end diff --git a/lib/templates/installer.rb b/lib/templates/installer.rb new file mode 100644 index 0000000000..4019b35490 --- /dev/null +++ b/lib/templates/installer.rb @@ -0,0 +1,9 @@ +say "Copying actiontext.css to app/assets/stylesheets" +copy_file "#{__dir__}/actiontext.css", "app/assets/stylesheets/actiontext.css" + +say "Copying fixtures to test/fixtures/action_text/rich_texts.yml" +copy_file "#{__dir__}/fixtures.yml", "test/fixtures/action_text/rich_texts.yml" + +# FIXME: Replace with release version on release +say "Installing JavaScript dependency" +run "yarn add https://github.com/basecamp/actiontext" -- cgit v1.2.3