namespace :db do

desc 'Run specific seed files in folder db/seed'
task :seeds do
  _, *files = ARGV
  *files, last_file = files.select { |f| RailsSeeds.valid_file?("#{f}.rb") }

  files.each do |file|
    Rake::Task['db:seeds:exec'].reenable
    Rake::Task['db:seeds:exec'].invoke(file)
  end

  RailsSeeds.run("#{last_file}.rb", :exec) if last_file.present?
end

namespace :seeds do
  desc 'Run all seed files in folder db/seed'
  task :all do
    Dir[File.join(Rails.root, 'db', 'seed', '*.rb')].each do |path|
      Rake::Task['db:seeds:exec'].reenable
      Rake::Task['db:seeds:exec'].invoke(File.basename(path, '.rb'))
    end
  end

  task :exec, :seed do |_, args|
    file = "#{args[:seed]}.rb"

    RailsSeeds.run(file)
  end
end

end