# This file should contain all the record creation needed to seed the database with its default values. # The data can then be loaded with the bin/rails db:seed command (or created alongside the database with db:setup). # # Examples: # # movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }]) # Character.create(name: 'Luke', movie: movies.first) def load_data_file(path) YAML.load(File.read(path)).deep_transform_keys(&:to_sym) end load_data_file("data/chat_rooms.yml").map do |gid, hash| chat_room = ChatRoom.find_or_create_by(gid: gid) chat_room.update(hash) end load_data_file("data/titles.yml").map do |gid, hash| title = Title.find_or_create_by(gid: gid) title.update(hash) end load_data_file("data/skills.yml").map do |gid, hash| skill = Skill.find_or_create_by(gid: gid) skill.update(hash) end load_data_file("data/items.yml").map do |gid, hash| item = Item.find_or_create_by(gid: gid) item.assign_attributes(hash.except(:equip_slot, :usable)) item.equip_slot = hash[:equip_slot]&.to_sym item.usable = hash[:usable] || false item.save end load_data_file("data/locations.yml").map do |gid, hash| location = Location.find_or_create_by(gid: gid) location.update(hash) end load_data_file("data/activities.yml").map do |gid, hash| activity = Activity.find_or_create_by(gid: gid) activity.assign_attributes(hash.except(:location)) activity.location = Location.find_by_gid(hash[:location]) activity.save end load_data_file("data/hearth_amenities.yml").map do |gid, hash| hearth_amenity = HearthAmenity.find_or_create_by(gid: gid) hearth_amenity.update(hash) end