func LoadFromData(data []byte) (c *ConfigFile, err error) {
	// Save memory data to temporary file to support further operations.
	tmpName := path.Join(os.TempDir(), "goconfig", fmt.Sprintf("%d", time.Now().Nanosecond()))
	if err = os.MkdirAll(path.Dir(tmpName), os.ModePerm); err != nil {
		return nil, err
	}
	if err = ioutil.WriteFile(tmpName, data, 0655); err != nil {
		return nil, err
	}

	c = newConfigFile([]string{tmpName})
	err = c.read(bytes.NewBuffer(data))
	return c, err
}
func LoadFromData(data []byte) (c *ConfigFile, err error) {
	
	tmpName := path.Join(os.TempDir(), "goconfig", fmt.Sprintf("%d", time.Now().Nanosecond()))
	if err = os.MkdirAll(path.Dir(tmpName), os.ModePerm); err != nil {
		return nil, err
	}
	if err = ioutil.WriteFile(tmpName, data, 0655); err != nil {
		return nil, err
	}

	c = newConfigFile([]string{tmpName})
	err = c.read(bytes.NewBuffer(data))
	return c, err
}
func LoadFromData ( data [ ] byte ) ( c * ConfigFile , err error ) { // Save memory data to temporary file to support further operations. tmpName := path . Join ( os . TempDir ( ) , " " , fmt . Sprintf ( " " , time . Now ( ) . Nanosecond ( ) ) ) if err = os . MkdirAll ( path . Dir ( tmpName ) , os . ModePerm ) ; err != nil { return nil , err } if err = ioutil . WriteFile ( tmpName , data , 0655 ) ; err != nil { return nil , err } c = newConfigFile ( [ ] string { tmpName } ) err = c . read ( bytes . NewBuffer ( data ) ) return c , err }
// LoadFromData accepts raw data directly from memory
// and returns a new configuration representation.
// Note that the configuration is written to the system
// temporary folder, so your file should not contain
// sensitive information.
LoadFromData accepts raw data directly from memory and returns a new configuration representation . Note that the configuration is written to the system temporary folder so your file should not contain sensitive information .