- Inheritance
- < Object
- Included Modules
- Enumerable
Property stream format:
line separator is \r?\n. 1 line per a property.
line which begins with '#' is a comment line. empty line is ignored, too.
key/value separator is ':' or '='.
'\' as escape character. but line separator cannot be escaped.
\s at the head/tail of key/value are trimmed.
'[' + key + ']' indicates property section. for example,
[aaa.bbb]
ccc = ddd
eee.fff = ggg
[]
aaa.hhh = iii
is the same as;
aaa.bbb.ccc = ddd
aaa.bbb.eee.fff = ggg
aaa.hhh = iii
Classes & Modules
Constants
| Name | Description | |
|---|---|---|
| CATDEF_REGEXP | = Regexp.new("^\\[\\s*#{KEY_REGSRC}\\s*\\]$") | |
| COMMENT_REGEXP | = Regexp.new('^(?:#.*|)$') | |
| DEF_REGSRC | = '\\s*' + KEY_REGSRC + '\\s*[=:]\\s*(.*)' | |
| FrozenError | = (RUBY_VERSION >= "1.9.0") ? RuntimeError : TypeError | |
| KEY_REGSRC | = '([^=:\\\\]*(?:\\\\.[^=:\\\\]*)*)' | |
| LINE_REGEXP | = Regexp.new("^#{DEF_REGSRC}$") | |
| NO_HOOK | = [].freeze |
Methods
Class
| Visibility | Signature |
|---|---|
| public | load (stream) |
| public | loadproperty (propname) |
| public | new () |
Instance
| Visibility | Signature |
|---|---|
| public | << (value) |
| public | [] (name) |
| public | []= (name, value) |
| public | add_hook (name = nil, cascade = false, &hook) |
| public | each () {|key, value| ...} |
| public | empty? () |
| public | keys () |
| public | load (stream) |
| public | loadproperty (propname) |
| public | lock (cascade = false) |
| public | locked? () |
| public | unlock (cascade = false) |
| public | values () |
| protected | deref_key (key) |
| protected | local_assign (key, value) |
| protected | local_assign_hook (key, cascade, &hook) |
| protected | local_hook (key, direct) |
| protected | local_referent (key) |
Class Method Detail
load(stream)
loadproperty(propname)
new()
Instance Method Detail
<<(value)
value: an Object key is generated by property
[](name)
[]=(name, value)
add_hook(name = nil, cascade = false, &hook)
name: a Symbol, String or an Array; nil means hook to the root cascade: true/false; for cascading hook of sub key hook: block which will be called with 2 args, name and value
each() {|key, value| ...}
empty?()
keys()
load(stream)
loadproperty(propname)
find property from $:.