def prepend(keys, value, reverse = false)
    modify(@properties, symbol_array(array(keys).flatten), value, false) do |key, processed_value, existing|
      processed_value = processed_value.reverse if reverse && processed_value.is_a?(Array)

      if existing.is_a?(Array)
        [ processed_value, existing ].flatten
      else
        [ processed_value ]
      end
    end
    return self
  end
def prepend(keys, value, reverse = false)
    modify(@properties, symbol_array(array(keys).flatten), value, false) do |key, processed_value, existing|
      processed_value = processed_value.reverse if reverse && processed_value.is_a?(Array)

      if existing.is_a?(Array)
        [ processed_value, existing ].flatten
      else
        [ processed_value ]
      end
    end
    return self
  end
Prepend a value to an array key path in the configuration object.

 * *Parameters*
   - [Array<String, Symbol>, String, Symbol] *keys*  Key path to modify
   - [ANY] *value*  Value to set for key path
   - [Boolean] *reverse*  Whether or not to reverse any input value arrays given before prepending

 * *Returns*
   - [Nucleon::Config]  Returns reference to self for compound operations

 * *Errors*

 See:
 - #modify

 See also:
 - #array