Это кажется мне очень странным, но у меня есть скрипт, который я запускаю, который каким-то образом сохраняет предыдущие значения предыдущих load
s скрипта. Значения в req1
не выгружаются при последовательных загрузках скрипта.
Вот сценарий:
require 'amazon_product'
req1 = nil
req1 = AmazonProduct["us"]
puts req1.inspect
req1.configure do |c|
c.key = "[...]"
c.secret = "[...]"
c.tag = "[...]"
end
puts req1.inspect
req1 << {
'Version' => '2010-11-01',
'Operation' => 'ItemLookup',
'SearchIndex' => "Books",
'Keywords' => 'Corrections'
#, 'A' => 'B'
}
puts req1.inspect
resp = req1.get
File.open( File.join(File.dirname(__FILE__),
"amazon_response.xml"), 'w') {|f| f.write(resp.body) }
Вот шаги:
- открытый IRB (через рельсы с)
- запустить скрипт с помощью команды загрузки
- раскомментировать строка A => B
- запустить скрипт снова
- комментарий строка A => B
- запустить скрипт снова
В конце у объекта req1
будет 'A' => 'B'
. Мне неясно, почему это происходит, так как похоже, что я создаю новый объект при каждом запуске сценария. Похоже, что объект запоминается при каждом запуске.
Как лучше всего предотвращать подобные вещи? Я попробовал несколько вещей, но чувствую, что цепляюсь за соломинку, так как не понимаю, почему это происходит.