Class: Dyndoc::TagManager

Inherits:
Object
  • Object
show all
Defined in:
lib/dyndoc/base/tags/tag_mngr.rb

Class Method Summary collapse

Class Method Details

.append(partTag, tags) ⇒ Object



32
33
34
35
36
# File 'lib/dyndoc/base/tags/tag_mngr.rb', line 32

def TagManager.append(partTag,tags)
#puts "partTag";p partTag
#puts "tags";p tags
  partTag.each_key{|o| partTag[o]+=tags}
end

.apply_alias(tags, aliases) ⇒ Object

partTag is modified at the end!



27
28
29
# File 'lib/dyndoc/base/tags/tag_mngr.rb', line 27

def TagManager.apply_alias(tags,aliases) #partTag is modified at the end!
  tags.replace(tags.map{|e| ( (aliases.keys.include? e) ? aliases[e] : e )}.flatten.uniq)
end

.global_alias(aliases) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/dyndoc/base/tags/tag_mngr.rb', line 11

def TagManager.global_alias(aliases)
  ## global aliases
  @@alias=""
  @@etc_alias=File.join(Dyndoc.cfg_dir[:etc],"alias")
  @@alias << File.read(@@etc_alias).chomp << "\n"  if File.exists? @@etc_alias
  if Dyndoc.cfg_dir[:file]
    @@file_alias=File.join(Dyndoc.cfg_dir[:file],'.dyn_alias') 
    @@alias << File.read(@@file_alias).chomp << "\n"  if File.exists? @@file_alias
  end
  TagManager.make_alias(aliases,@@alias.chomp.split("\n"))
end

.init_input_tag(tag) ⇒ Object

def TagManager.tags_ok?(part,partTag)

part[0]=part[0][1..-1] if (neg=(part[0][0,1] == "-"))
tmp= (partTag & part).empty? 
tmp = !tmp unless neg

puts “last”;p part;p tmp

  return tmp
end

def TagManager.init_input_tags(tags)
  return tags
end


52
53
54
55
56
# File 'lib/dyndoc/base/tags/tag_mngr.rb', line 52

def TagManager.init_input_tag(tag)
  res=/#{"^"+tag.gsub(/\*\*:/,"[\\w\\d\\-_:]_STAR_:").gsub(/\*:/,"[\\w\\d\\-_]_STAR_:").gsub(/_STAR_/,"*")+"$"}/
  #p res
  res
end

.init_input_tags(tags) ⇒ Object



58
59
60
61
62
# File 'lib/dyndoc/base/tags/tag_mngr.rb', line 58

def TagManager.init_input_tags(tags)
  new_tags=tags.map{|t| (t.is_a?(String) ? TagManager.init_input_tag(t) : t ) }
#puts "newtags";p new_tags
  return new_tags
end

.local_alias(aliases, input) ⇒ Object



23
24
25
# File 'lib/dyndoc/base/tags/tag_mngr.rb', line 23

def TagManager.local_alias(aliases,input) # @alias increased 
  TagManager.make_alias(aliases,input.scan(/%%%alias\(([^\)]*)\)/).flatten)
end

.make_alias(aliases, alias_lines) ⇒ Object

alias_lines= array of lines of the form “alias1,…,aliasN=tag1,…,tagP”



5
6
7
8
9
# File 'lib/dyndoc/base/tags/tag_mngr.rb', line 5

def TagManager.make_alias(aliases,alias_lines) #alias_lines= array of lines of the form "alias1,...,aliasN=tag1,...,tagP"
#p alias_lines
  alias_lines.map{|e| e.split(/[=>]/)}.map{|e,e2,e3| tmp=e.split(",").map{|ee| ee.strip};tmp2=e2.split(",").map{|ee| ee.strip}+tmp;tmp.map{|ee| aliases[ee] = tmp2}}.flatten
  #aliases updated!
end

.make_tags(str) ⇒ Object



106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# File 'lib/dyndoc/base/tags/tag_mngr.rb', line 106

def TagManager.make_tags(str)
## Dyndoc.warn "make_tags",str
  if str.is_a? String
    TagManager.pre_tag(str)
    str.split(",").map{|e| e.strip}.map{|t|
      if t[0,1]=="-"
        t
      else
        tmp=t.split(":")
        (0...tmp.length).map{|i| tmp[0..i].join(":")}
      end
    }.flatten
  else
    str
  end
end

.pre_tag(tag) ⇒ Object



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/dyndoc/base/tags/tag_mngr.rb', line 84

def TagManager.pre_tag(tag)
  # first, replace $(i) by  $dyn_curtag[i]
  if $dyn_curtag
  	new_tag=tag.gsub(/\$\d?/){|e| 
  	  i=e[1..-1].to_i
  	  i-=1 if i>0
  	  ($dyn_curtag[i] ? $dyn_curtag[i] : "")
  	}
  else
  new_tag=tag.dup
  end
#puts "new_tag";p new_tag
#puts "$dyn_curtag";p $dyn_curtag
  # second, find $dyn_curtag
  curtag=new_tag.scan(/\([^\(]*\)/)
  $dyn_curtag=curtag.map{|e| e[1...-1]} unless curtag.empty?
#puts "$dyn_curtag2";p $dyn_curtag
  new_tag.gsub!(/\([^\(]*\)/){|e| e[1...-1]}
#puts "new_tag2";p new_tag
  return new_tag
end

.tags_ok?(part, partTag) ⇒ Boolean

Returns:

  • (Boolean)


64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/dyndoc/base/tags/tag_mngr.rb', line 64

def TagManager.tags_ok?(part,partTag)
## Dyndoc.warn "tags_ok?",[part,partTag]
  return true if partTag.include? /^all$/
  part[0]=part[0][1..-1] if (neg=(part[0][0,1] == "-"))
  tmp=false
  partTag.each{|t|
#puts "t";p t
   part.each{|t2|
#puts "t2";p t2
     tmp=(t =~ t2)
#puts "tmp";p tmp
     break if tmp
   }
   break if tmp
  }
  tmp = !tmp if neg
#puts "last";p part;p partTag;p tmp
  return tmp
end