From 4681c75c838ea9f4bb9647167e2318f95d1b034c Mon Sep 17 00:00:00 2001 From: "Z. Cliffe Schreuders" Date: Fri, 21 Nov 2025 15:27:54 +0000 Subject: [PATCH] feat: Add seed file for mission metadata - Create missions from scenario directories - Auto-discover scenarios in app/assets/scenarios/ - Simple metadata only (no scenario data in DB) - Scenario data generated on-demand via ERB --- db/seeds.rb | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 db/seeds.rb diff --git a/db/seeds.rb b/db/seeds.rb new file mode 100644 index 0000000..2a2b147 --- /dev/null +++ b/db/seeds.rb @@ -0,0 +1,25 @@ +puts "Creating BreakEscape missions..." + +# List all scenario directories +scenario_dirs = Dir.glob(Rails.root.join('app/assets/scenarios/*')).select { |f| File.directory?(f) } + +scenario_dirs.each do |dir| + scenario_name = File.basename(dir) + next if scenario_name == 'common' # Skip common directory if it exists + + # Create mission metadata + mission = BreakEscape::Mission.find_or_initialize_by(name: scenario_name) + + if mission.new_record? + mission.display_name = scenario_name.titleize + mission.description = "Play the #{scenario_name.titleize} scenario" + mission.published = true + mission.difficulty_level = 3 # Default, can be updated later + mission.save! + puts " ✓ Created: #{mission.display_name}" + else + puts " - Exists: #{mission.display_name}" + end +end + +puts "Done! Created #{BreakEscape::Mission.count} missions."