Я побежал этот кусок кода раньше:Bug я не могу определить
require "awesome_print"
require "rexml/document"
require "debugger"
include REXML
class Scrapper
attr_reader :data
def initialize
file = File.new("./cia-1996.xml")
@data = REXML::Document.new(file)
end
def get_country_inflation
inflation_hash = {}
XPath.match(data, "//country").map { |element|
inflation_hash[element.attributes["name"]] = element.attributes["inflation"].to_i}
nested_array = inflation_hash.to_a
sorted_array = nested_array.sort_by {|country, inflation_value| inflation_value}.reverse
puts "The countries with the highest inflation indexes in 1996 were:"
first_five = sorted_array.first(5)
first_five.each do |item|
puts "#{item[0]}, with an inflation index of #{item[1]}"
end
end
end
end
sample = Scrapper.new
sample.get_country_inflation
После внесения некоторых изменений, теперь я получаю сообщение об ошибке
economics_challenge.rb: 36: ошибка синтаксиса, неожиданный keyword_end, ожидающий конец ввода
Не могли бы вы дать мне указания относительно того, где может произойти ошибка/опечатка (вначале играли в нее какое-то время и хотели бы получить обратную связь от ne w набор глаз).
Большое вам спасибо!
Edit: поэтому я сделал изменения предложил, но я получил несколько сообщений об ошибках:
economics_challenge.rb:26: syntax error, unexpected tSTRING_DEND, expecting keyword_end
economics_challenge.rb:29: syntax error, unexpected tSTRING_DEND, expecting '}'
...flation_value| inflation_value}.reverse
... ^
economics_challenge.rb:35: syntax error, unexpected keyword_end, expecting '}'
economics_challenge.rb:46: syntax error, unexpected end-of-input, expecting '}'
линии 26 относится к 2-й линии в куске кода ниже: кусок кода (и я думаю, что это где исходная задача):
XPath.match(data, "//country").map do |element|
inflation_hash[element.attributes["name"]] = element.attributes["inflation"].to_i}
end
линия 29 является:
sorted_array = nested_array.sort_by {|country, inflation_value| inflation_value}.reverse
Я попытаюсь исправить ошибку в 29, вызвав reverse на отсортированном массиве и сохранив это для переменной.
Линия 35 представляет собой конец заявление, и нет никакой линии 46.
Любые советы?
Спасибо!
2nd Редактировать: Вау! Я не могу поверить, что не понял, что я не закончил многие вещи. С этого момента я буду придерживаться окончательного синтаксиса do and
.
Благодарим вас за то, что вы очень помогли мне ... очень цените это!
Рубин говорит вам, что есть ошибка синтаксиса линии 36. Можете ли вы определить, какая линия линия 36? Я только подсчитал 32 строки в коде, который вы опубликовали. –
Строка 36 - последний оператор конца. Я прокомментировал некоторые строки в документе, следовательно, 32 строки кода вместо 36. Спасибо, что помогли мне! – Uzzar