Я изучаю Ruby и занимаюсь парсингом списка орудий из видеоигры - я следовал инструкциям и сделал именно так, как они анализировали список имен / возрастов, но я не могу запустить этот код ...
Я пытался создать Guns.new (имя, боеприпасы) до разбора, который не работал ..
# FILE IN FORMAT "gun, ammo" IS IN "gunsammo.txt"
def load_guns(filename)
guns = []
# load gun names and ammo types from file "gunsammo.txt"
file = File.open(filename, "r+").read
file.lines do |line|
gun_type = line.split(", ")
name = gun_type.first #[0]
ammo = gun_type.last.to_s #[1]
gun = Guns.new(name, ammo)
guns << gun
# puts "imported #{gun.display}"
end
# RETURN GUNS FROM TEXT gunsammo.txt
guns
end
eft_guns = load_guns("gunsammo.txt")
eft_guns.each {|gun| p guns}
Я ожидал получить вывод следующего списка в формате массива:
[
ADAR 2-15, 5.56x45mm NATO
AK-101, 5.56x45mm NATO
AK-102, 5.56x45mm NATO
AK-103, 7.62x39mm
AK-104, 7.62x39mm
AK-105, 5.45x39mm
AK-74, 5.45x39mm
AK-74M, 5.45x39mm
AK-74N, 5.45x39mm
]
Вместо этого я получаю следующие ошибки:
enter code here
/RUBY/class_ammo.rb:11:in `block in load_guns': uninitialized constant Guns (NameError)
from C:/Users/**/Documents/CODING/RUBY/class_ammo.rb:7:in `lines'
from C:/Users/**/Documents/CODING/RUBY/class_ammo.rb:7:in `load_guns'
from C:/Users/**/Documents/CODING/RUBY/class_ammo.rb:19:in `<main>'