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
Constants
| KEY_REGSRC |
= |
'([^=:\\\\]*(?:\\\\.[^=:\\\\]*)*)' |
| DEF_REGSRC |
= |
'\\s*' + KEY_REGSRC + '\\s*[=:]\\s*(.*)' |
| COMMENT_REGEXP |
= |
Regexp.new('^(?:#.*|)$') |
| CATDEF_REGEXP |
= |
Regexp.new("^\\[\\s*#{KEY_REGSRC}\\s*\\]$") |
| LINE_REGEXP |
= |
Regexp.new("^#{DEF_REGSRC}$") |
| NO_HOOK |
= |
[].freeze |