Class implementation of simple-ini.
This commit is contained in:
@@ -2,8 +2,10 @@
|
||||
|
||||
@(require
|
||||
scribble/example
|
||||
scribble/core
|
||||
(for-label racket/base
|
||||
racket/string
|
||||
racket/class
|
||||
racket/file))
|
||||
|
||||
(define myeval
|
||||
@@ -73,9 +75,76 @@
|
||||
mc-pair?]{
|
||||
Sets the value of @racket[key] in the specified @racket[section] of the INI structure. If the section or key does not exist, it is created. Returns the modified INI structure.}
|
||||
|
||||
|
||||
@section{The @racket[ini%] Racket Class}
|
||||
|
||||
@defmodule[simple-ini/class]
|
||||
|
||||
Require this module for the OO implementation of this Simple INI implementation
|
||||
|
||||
|
||||
@defclass[ini% object% ()]{
|
||||
|
||||
An OO wrapper around the ini functions.
|
||||
|
||||
@defconstructor[([file (or/c symbol? string? path? boolean?) #f]
|
||||
[fail (or/c boolean?) #f]
|
||||
)]{
|
||||
Creates the ini from the given file.
|
||||
* If (eq? file #f), an empty ini will be made.
|
||||
* if (symbol? file), an ini will be made or read in the users preferences folder with the given (format "~a.ini" file) as name.
|
||||
* Otherwise, the file will be made or read at the given location.
|
||||
|
||||
The fail flag determines if methods of the class will fail when some value in the ini file is written while there is no file to write to
|
||||
or if some non existing key is read.
|
||||
}
|
||||
|
||||
@defmethod*[([(get-file) path?])]{
|
||||
Gets the current ini file. See constructor for more information.
|
||||
}
|
||||
|
||||
@defmethod*[([(set-file! [file (or/c symbol? string? path?)]) this])]{
|
||||
Sets the ini file to be used. See constructor for more information.
|
||||
}
|
||||
|
||||
@defmethod*[([(get-fail) boolean?])]{
|
||||
Gets the value of the 'fail' flag. See constructor for more information.
|
||||
}
|
||||
|
||||
@defmethod*[([(set-fail! [fail boolean?]) this])]{
|
||||
Sets the value of the 'fail' flag. See constructor for more information.
|
||||
}
|
||||
|
||||
@defmethod*[([(get-contents) list?])]{
|
||||
Gets the contents of the ini structure as stored in memory.
|
||||
}
|
||||
|
||||
@defmethod*[([(contents) list?])]{
|
||||
See get-contents.
|
||||
}
|
||||
|
||||
@defmethod*[([(reload) this])]{
|
||||
Reloads the ini file in memory, or empties the ini structure (eq? file #f).
|
||||
}
|
||||
|
||||
@defmethod*[([(set! [section (or/c symbol? string?)] [key (or/c symbol? string?)] [value any/c?]) this])]{
|
||||
Sets the value of the key in the given section. After the set! operation, the ini structure will be written to file.
|
||||
Note. Although ini files can be read from standard .ini formats, the simple-ini format will be enhanced. It wil store values in racket format, so that 'read' can be used to read in the racket value.
|
||||
}
|
||||
|
||||
@defmethod*[([(get [section (or/c symbol? string?)] [key (or/c symbol? string?)] [default-value any/c?]) any/c?]
|
||||
[(get [section (or/c symbol? string?)] [key (or/c symbol? string)]) any/c]
|
||||
)]{
|
||||
Returns the value for the given section and key combination. If this combination does not exist in the ini structure, it will return the default-value. However, if default-value is not given, it will return #f.
|
||||
}
|
||||
|
||||
} ; end class
|
||||
|
||||
|
||||
|
||||
@section{The @racket[ini] Roos Class}
|
||||
|
||||
@defmodule[simple-ini/roos]{Require this module for the OO implementation of this Simple INI implementation
|
||||
@defmodule[simple-ini/roos]{Require this module for the OO implementation of this Simple INI implementation in the ROOS OO framework
|
||||
|
||||
Provides a @seclink["top" #:doc '(lib "roos/scribblings/roos.scrbl")]{Roos class} that gives object-oriented access to INI files using the underlying @racket[file->ini] parser system. The class offers methods to load, query, and update INI files using familiar object-style interactions.}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user