- 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 $:.