
During documentation of the pair programming feature, we noticed that the Contributor should be an abstract class, which is parent for the User and the ProgrammingGroup. With this commit, we perform these changes.
45 lines
1.4 KiB
Ruby
45 lines
1.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
# Meta seed file that required depending on the Rails env different files from
|
|
# db/seeds/ Please put the seed in the best matching file
|
|
#
|
|
# * all: Objects are needed in every environment (production, development)
|
|
# * production: Objects are only needed for deployment
|
|
# * development: Only needed for local development
|
|
#
|
|
|
|
def find_factories_by_class(klass)
|
|
FactoryBot.factories.select do |factory|
|
|
factory.instance_variable_get(:@class_name).to_s == klass.to_s || factory.instance_variable_get(:@name) == klass.model_name.singular.to_sym
|
|
end
|
|
end
|
|
|
|
module ActiveRecord
|
|
class Base
|
|
%i[build create].each do |strategy|
|
|
define_singleton_method(:"#{strategy}_factories") do |attributes = {}|
|
|
find_factories_by_class(self).map(&:name).map do |factory_name|
|
|
FactoryBot.send(strategy, factory_name, attributes)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
# delete all present records
|
|
Rails.application.eager_load!
|
|
(ApplicationRecord.descendants - [ActiveRecord::SchemaMigration, Contributor, User]).each(&:delete_all)
|
|
|
|
# delete file uploads
|
|
FileUtils.rm_rf(Rails.public_path.join('uploads'))
|
|
|
|
['all', Rails.env].each do |seed|
|
|
seed_file = Rails.root.join("db/seeds/#{seed}.rb")
|
|
if seed_file.exist?
|
|
puts "*** Loading \"#{seed}\" seed data" # rubocop:disable Rails/Output
|
|
load seed_file
|
|
else
|
|
puts "*** Skipping \"#{seed}\" seed data: \"#{seed_file}\" not found" # rubocop:disable Rails/Output
|
|
end
|
|
end
|