1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Use an app template installer instead for nicer overwriting checks

This commit is contained in:
David Heinemeier Hansson 2018-10-02 16:05:03 -07:00
parent d28ce034b5
commit e11f84ee3a
2 changed files with 15 additions and 26 deletions

View file

@ -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

View file

@ -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"