Привет, у меня есть строка, переданная из rspec.Возврат Ruby с двойными кавычками
Он должен показать "alias/public_html/ab1/ab2/"
, но я получаю "\"alias/public_html/ab1/ab2/\""
Я получаю Rspec ошибку ниже:
WebServer::HttpdConf#alias_path returns the aliased path
Failure/Error: expect(httpd_file.alias_path('/ab/')).to eq 'alias/public_html/ab1/ab2/'
expected: "alias/public_html/ab1/ab2/"
got: "\"alias/public_html/ab1/ab2/\""
(compared using ==)
# ./spec/lib/config/httpd_conf_spec.rb:90:in `(root)'
А вот мой фактический файл программы
def alias_path(path)
@hash_httpd['Alias'][path]
end
Пожалуйста, помогите
EDIT
К сожалению, я новичок в рубин, вот httpd_file
def initialize(httpd_file_content)
@hash_httpd = Hash.new
httpd_file_content.each_line do | line |
@commands = line.split
if @commands.length == 2
@hash_httpd[@commands[0]] = @commands[1]
else
if [email protected]_httpd.has_key?(@commands[0])
al = Hash.new
@hash_httpd[@commands[0]] = al
else
al = @hash_httpd[@commands[0]]
end
al[@commands[1]] = @commands[2]
end
end
end
Ваша строка содержит s кавычки. Мы не можем ничего рассказать о причине этого, а также об ошибке, если вы не покажете, как выглядит '@ hash_httpd' (или, по крайней мере,' @hash_httpd ['Alias'] '). – Amadan
Ваше изменение по-прежнему не отображает значение. Я могу только предположить, что в 'httpd_file_content' есть строка, подобная alias alias/public/html/ab1/ab2 /" '; ваш код не разделяет кавычки, и они сохраняются как есть. Если ваш файл сказал что-то вроде «Alias alias/public/html/ab1/ab2 /», у вас не было бы этой проблемы. Учитывая, что вы используете 'split' без разбора, кавычки вводят в заблуждение и полностью бесполезны (они, например, не будут защищать значение от разделения на пространстве, например, в оболочке). – Amadan
Привет, Амадан, я нашел, откуда взялась строка, и да, они, как вы сказали, содержат кавычки, я пытался использовать gsub, но, похоже, –