def set(property_path, value)
      if property_path
        last_node = @config
        last_name = property_path.split('.').inject(nil) do |name, section|
          last_node = last_node[name] ||= {} unless name.nil?
          section.to_sym
        end
        last_node[last_name] = value
      end
      return nil
    end
def set(property_path, value)
      if property_path
        last_node = @config
        last_name = property_path.split('.').inject(nil) do |name, section|
          last_node = last_node[name] ||= {} unless name.nil?
          section.to_sym
        end
        last_node[last_name] = value
      end
      return nil
    end
Writes a new value to a property or category in memory (creating it if
 necessary).
 They can be indexed using a dot-based notation (e.g. "category.property"
 to access "property" under "category").