Method: Chef::Provider::Env#delete_element
- Defined in:
- lib/chef/provider/env.rb
#delete_element ⇒ Object
e.g. delete a PATH element
Returns
- <true>
-
If we handled the element case and caller should not delete the key
- <false>
-
Caller should delete the key, either no :delim was specific or value was empty after we removed the element.
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/chef/provider/env.rb', line 92 def delete_element return false unless @new_resource.delim #no delim: delete the key if compare_value Chef::Log.debug("#{@new_resource} element '#{@new_resource.value}' does not exist") return true #do not delete the key else new_value = @current_resource.value.split(@new_resource.delim).select { |item| item != @new_resource.value }.join(@new_resource.delim) if new_value.empty? return false #nothing left here, delete the key else old_value = @new_resource.value(new_value) create_env Chef::Log.debug("#{@new_resource} deleted #{old_value} element") @new_resource.updated_by_last_action(true) return true #we removed the element and updated; do not delete the key end end end |