From cda30a6ab9b6fa673ead091ab0b130cbc6e75dbc Mon Sep 17 00:00:00 2001 From: Chris Price Date: Wed, 17 Oct 2012 13:27:28 -0700 Subject: Minor tweaks to handling of removing settings This commit makes some minor changes to how we handle removing settings. In particular, it updates all of the line numbers of the various 'section' objects to correspond to the new state of the world based on the removal of a line that appeared before them. Also adds one more test related to setting removal. --- lib/puppet/util/ini_file/section.rb | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'lib/puppet/util/ini_file/section.rb') diff --git a/lib/puppet/util/ini_file/section.rb b/lib/puppet/util/ini_file/section.rb index e192d5b..16f19d3 100644 --- a/lib/puppet/util/ini_file/section.rb +++ b/lib/puppet/util/ini_file/section.rb @@ -25,13 +25,29 @@ class IniFile end def remove_existing_setting(setting_name) - @existing_settings.delete(setting_name) + if (@existing_settings.delete(setting_name)) + if @end_line + @end_line = @end_line - 1 + end + end end def set_additional_setting(setting_name, value) @additional_settings[setting_name] = value end + # Decrement the start and end line numbers for the section (if they are + # defined); this is intended to be called when a setting is removed + # from a section that comes before this section in the ini file. + def decrement_line_nums() + if @start_line + @start_line = @start_line - 1 + end + if @end_line + @end_line = @end_line - 1 + end + end + end end end -- cgit v1.2.3