actiontext/Rakefile

Summary

Maintainability
Test Coverage
# frozen_string_literal: true

require "bundler/setup"
require "bundler/gem_tasks"
require "rake/testtask"

task :package

Rake::TestTask.new do |t|
  t.libs << "test"
  t.test_files = FileList["test/**/*_test.rb"].exclude("test/system/**/*", "test/dummy/**/*")
  t.verbose = true
end

Rake::TestTask.new "test:system" do |t|
  t.libs << "test"
  t.test_files = FileList["test/system/**/*_test.rb"]
  t.verbose = true
end

namespace :test do
  task :isolated do
    FileList["test/**/*_test.rb"].exclude("test/system/**/*", "test/dummy/**/*").all? do |file|
      sh(Gem.ruby, "-w", "-Ilib", "-Itest", file)
    end || raise("Failures")
  end
end

task :vendor_trix do
  require "importmap-rails"
  require "importmap/packager"

  packager = Importmap::Packager.new(vendor_path: "app/assets/javascripts")
  imports = packager.import("trix", from: "unpkg")
  imports.each do |package, url|
    url.gsub!("esm.min.js", "umd.js")
    puts %(Vendoring "#{package}" to #{packager.vendor_path}/#{package}.js via download from #{url})
    packager.download(package, url)

    css_url = url.gsub("umd.js", "css")
    puts %(Vendoring "#{package}" to #{packager.vendor_path}/#{package}.css via download from #{css_url})

    response = Net::HTTP.get_response(URI(css_url))
    if response.code == "200"
      File.open(Pathname.new("app/assets/stylesheets/trix.css"), "w+") do |file|
        file.write response.body
      end
    end
  end
end

task default: :test