diff options
author | Ralph Amissah <ralph@amissah.com> | 2012-10-01 16:17:42 -0400 |
---|---|---|
committer | Ralph Amissah <ralph@amissah.com> | 2012-10-01 16:17:42 -0400 |
commit | d6ef30b3f58d9278c11ca7de73b012968a35ba9b (patch) | |
tree | aae88c7355d95c9fc85e7854e9d58b09d7d4ee6e /lib/sisu/v3/param.rb | |
parent | v3: dal, sysenv, file processing, split objects; remove ref to old ruby (diff) |
v3: header @classify: :topic_register: provide greater classification "depth"
* param, manifest
* harvest_topics
Diffstat (limited to 'lib/sisu/v3/param.rb')
-rw-r--r-- | lib/sisu/v3/param.rb | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/lib/sisu/v3/param.rb b/lib/sisu/v3/param.rb index 492b8044..bffba529 100644 --- a/lib/sisu/v3/param.rb +++ b/lib/sisu/v3/param.rb @@ -227,6 +227,13 @@ module SiSU_Param if x =~/^%\s/ #ignore comment elsif x =~/:(\S+?):\s+(.+)/ a,b=/:(\S+?):\s+(.+)\Z/m.match(x)[1,2] + b=if b =~/\n/m + (b =~/;\n/m) \ + ? (b.split(/;\s*\n\s*/).join(';')) + : (b.split(/\s*\n\s*/).join(' ')) + else + b + end elsif i == 0 a='main' b=x @@ -598,7 +605,7 @@ module SiSU_Param self end def classify - a=@s.split(/\n%\s.+?$|[ ]*\n[ ]*/m) + a=@s.split(/(\n%\s.+?$|[ ]*)(?:\n[ ]*(?=:)|\Z)/m) @h=build_hash(a) def coverage s=@h['coverage'] @@ -1424,16 +1431,16 @@ module SiSU_Param and @classify.topic_register.is_a?(String) \ and @classify.topic_register.length >3 topic_register=@classify.topic_register - u=topic_register.scan(/[^;]+/) + u=topic_register.scan(/[^;]+/m).sort v=[] u.each do |l| - v << l.scan(/[^:]+/) + v << l.scan(/[^:]+/m) end v.each do |m| - m[-1]=m[-1].scan(/[^|]+/) if m[-1] =~/[|]/ + m[-1]=m[-1].scan(/[^|]+/m) if m[-1] =~/[|]/m @topic_register_array << m end - @topic_register_array=@topic_register_array.sort + @topic_register_array end if @i18n @i18n=@i18n.uniq |