blob: 7fcd12585455d0f496dc422bf922d523180c4b7f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# 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/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
|