trac-wiki 0.3.12 → 0.3.13
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/trac-wiki/env.rb +5 -3
- data/lib/trac-wiki/parser.rb +6 -1
- data/lib/trac-wiki/version.rb +1 -1
- data/test/parser_test.rb +20 -3
- metadata +2 -2
data/lib/trac-wiki/env.rb
CHANGED
@@ -111,7 +111,7 @@ module TracWiki
|
|
111
111
|
return @env[key] || default if key.is_a? Symbol
|
112
112
|
prepare_y if key =~ /^y\./
|
113
113
|
key = "argv.#{key}" if key =~ /^\d+$/
|
114
|
-
print "key: #{key}\n"
|
114
|
+
#print "key: #{key}\n"
|
115
115
|
cur = @env
|
116
116
|
key.split(/\./).each do |subkey|
|
117
117
|
subkey = at($1, '') if subkey =~ /\A\$(.*)/
|
@@ -127,7 +127,7 @@ module TracWiki
|
|
127
127
|
#print "at(#{key}) -> default\n" if cur.nil?
|
128
128
|
return default if cur.nil?
|
129
129
|
end
|
130
|
-
|
130
|
+
#rint "at(#{key})->#{cur}\n"
|
131
131
|
to_str ? cur.to_s : cur
|
132
132
|
end
|
133
133
|
def atput(key, val = nil)
|
@@ -182,7 +182,9 @@ module TracWiki
|
|
182
182
|
|
183
183
|
if ! @parser.template_handler.nil?
|
184
184
|
str = @parser.template_handler.call(macro_name, env)
|
185
|
-
|
185
|
+
is_defined = !str.nil?
|
186
|
+
@parser.used_templates[macro_name] = is_defined
|
187
|
+
if is_defined
|
186
188
|
#print "dep:#{env[:depth]}(#{macro_name}, #{str})\n"
|
187
189
|
if env[:depth] > 32
|
188
190
|
return "TOO_DEEP_RECURSION(`#{str}`)\n"
|
data/lib/trac-wiki/parser.rb
CHANGED
@@ -57,9 +57,13 @@ module TracWiki
|
|
57
57
|
attr_accessor :headings
|
58
58
|
|
59
59
|
def env
|
60
|
-
env
|
60
|
+
@env
|
61
61
|
end
|
62
62
|
|
63
|
+
attr_reader :used_templates
|
64
|
+
@used_templates = {}
|
65
|
+
|
66
|
+
|
63
67
|
# url base for links
|
64
68
|
attr_writer :base
|
65
69
|
|
@@ -151,6 +155,7 @@ module TracWiki
|
|
151
155
|
|
152
156
|
def to_html(text = nil)
|
153
157
|
text(text) if ! text.nil?
|
158
|
+
@used_templates = {}
|
154
159
|
@was_math = false
|
155
160
|
@anames = {}
|
156
161
|
@count_lines_level = 0
|
data/lib/trac-wiki/version.rb
CHANGED
data/test/parser_test.rb
CHANGED
@@ -19,6 +19,16 @@ class Bacon::Context
|
|
19
19
|
parser.to_html(wiki)
|
20
20
|
parser.env.at(var).should.equal val
|
21
21
|
end
|
22
|
+
def used_templates(wiki, used_templates, options={})
|
23
|
+
options[:macro_commands] = { '!print' => proc { |env| env.arg(0) + '! ' }, }
|
24
|
+
options[:template_handler] = self.method(:template_handler)
|
25
|
+
parser = TracWiki.parser(options)
|
26
|
+
parser.to_html(wiki)
|
27
|
+
parser.used_templates.sort.map do |key,value|
|
28
|
+
"#{key}:#{value}"
|
29
|
+
end.join(',').should.equal used_templates
|
30
|
+
|
31
|
+
end
|
22
32
|
|
23
33
|
def template_handler(tname, env)
|
24
34
|
case tname
|
@@ -36,6 +46,8 @@ class Bacon::Context
|
|
36
46
|
"nulanula:{{$00}},a:{{$a}}"
|
37
47
|
when 'vartest'
|
38
48
|
"jedna:{{$1}},dve:{{$2}},p:{{$p}},arg:{{$00}}"
|
49
|
+
when 'testundef'
|
50
|
+
"{{westundef}}"
|
39
51
|
when 'test'
|
40
52
|
"{{west}}"
|
41
53
|
when 'west'
|
@@ -1132,9 +1144,14 @@ eos
|
|
1132
1144
|
end
|
1133
1145
|
it 'should parse env' do
|
1134
1146
|
env '{{!set b|ahoj}}', 'b', 'ahoj'
|
1135
|
-
|
1136
|
-
|
1137
|
-
|
1147
|
+
env '{{!set *|ahoj}}', '*', 'ahoj'
|
1148
|
+
env '{{!set *|{}|}}', '*', '{}'
|
1149
|
+
tc "<p>a</p>\n" , "{{!set qq|a}}{{$qq}}"
|
1150
|
+
end
|
1151
|
+
it 'should know used templates' do
|
1152
|
+
used_templates "{{varnula}}", "varnula:true"
|
1153
|
+
used_templates "{{test}}", "test:true,west:true"
|
1154
|
+
used_templates "{{testundef}}", "testundef:true,westundef:false"
|
1138
1155
|
end
|
1139
1156
|
end
|
1140
1157
|
# vim: tw=0
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trac-wiki
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.13
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-06-
|
12
|
+
date: 2014-06-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bacon
|