# frozen_string_literal: true
# This effectively hides `rake jobshop:install:migrations` from `$ rake -T`. Rake::Task.instance_variable_set(:@comments, [])
namespace :jobshop do
task :disable_autoload do ActiveSupport::Dependencies.class_eval do extend Module.new { def load_file(path, const_paths = loadable_constants_for_path(path)) jobshop_models_path = File.join(Jobshop::Engine.root, "app", "models") return if path.starts_with?(jobshop_models_path) super end } end end desc "Outputs all organization_ids" task organizations: :environment do Jobshop::Organization.all.each do |organization| puts organization.organization_id end end desc "Start Incoming Email Worker" task postmaster: :environment do queue_name = Jobshop.configuration.aws.incoming_email_queue postmaster_path = File.join(Jobshop::Engine.root, "lib", "jobshop", "mailroom", "postmaster.rb") exec <<~SHELL bundle exec \ shoryuken -R -q #{queue_name} -r #{postmaster_path} SHELL end namespace :webpack do desc "Install dependencies" task :install do Dir.chdir(File.join(__dir__, "../..")) do puts Dir.pwd system "yarn install --no-progress --production" end end desc "Compile assets" task compile: %i[ yarn environment ] do end end
end
%w( db:migrate db:rollback db:migrate:up db:migrate:down ).each do |t|
Rake::Task[t].prerequisites << "jobshop:disable_autoload"
end