У меня есть код, который пытается изменить «false» на «true» в рубиновом файле, но он работает только один раз во время работы скрипта.Переключение true/false: редактирование файла в ruby
toggleto = true
text = File.read(filename)
text.gsub!("#{!toggleto}", "#{toggleto}")
File.open(filename, 'w+') {|file| file.write(text); file.close}
Насколько я знаю, до тех пор, как я закрыть файл, я должен быть в состоянии прочитать это его потом с тем, что я ранее писал, и, таким образом, не изменить его назад и вперед независимо от того, сколько раз.
Larger Контекст:
def toggleAutoAction
require "#{@require_path}/options"
filename = "#{@require_path}/options.rb"
writeToggle(filename, !OPTIONS[:auto])
0
end
def writeToggle(filename, toggleto)
text = File.read(filename)
text.gsub!(":auto => #{!toggleto}", ":auto => #{toggleto}")
File.open(filename, 'w+') {|file| file.write(text); file.close}
end
def exitOrMenu
puts "Are you done? (y/n)"
prompt
if gets.chomp == 'n'
whichAction
else
exit
end
end
def whichAction
if action == 5
toggleAutoAction
else
puts "Sorry, that isn't an option...returning"
return 1
end
exitOrMenu
end
что вопрос? –
- это не файл, который автоматически закрывается после блока, что делает ваш звонок лишним? –
Хорошо, хорошо, но это не решает проблему. – JohnH