trac-wiki 0.3.21 → 0.3.22

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2cc0af0b5c51c390aa590950accded35c88c6b39
4
- data.tar.gz: d0907cc3a0dc5a8a4e83555f4aa6366edad8ce3b
3
+ metadata.gz: 78e7c6394c7e42eec56bad4af297ccc8e66a4fb8
4
+ data.tar.gz: a30866e55c43ce02a45080859f0b67661b4c18ea
5
5
  SHA512:
6
- metadata.gz: c0043c157364338f8c99d2c1e63c4c0a0754913dbe78580174fec37a66e728f341b21adbb4a65ca6ca7a8dcee9e9a3d8531ffad3e8942e087a00fb90a8d41e9f
7
- data.tar.gz: 4408748ddc71a296aca9577c3e42af62beffab19e46d0f63975ea52f090bfa00be1a809a0dad13549b78cc86d6b6b2e62d561ed5a1e3ceb43d99d11bf598a13e
6
+ metadata.gz: c4878f8e561b7f6c1a9559f59662e4c2c2399109873db4f9d4fa9862971adf4a471d594ae8dc1f82c010078b7068239f279fccad9c510652702e760654bd359b
7
+ data.tar.gz: c8f89d8b4457cd4d8601a9becb8506ddc86de4780ddfa89e68b9e329b4e1448960b73beb056ffcede8e2a28ba875c3ad6dbbdf245ea2a0d89c0471338b5a05ec
data/lib/trac-wiki/env.rb CHANGED
@@ -131,10 +131,16 @@ module TracWiki
131
131
  cur = cur[subkey.to_i]
132
132
  else
133
133
  #print "at(#{key})->: default"
134
- return default
134
+ cur = nil
135
135
  end
136
136
  #print "at(#{key}) -> default\n" if cur.nil?
137
- return default if cur.nil?
137
+ if cur.nil?
138
+ if ! @parser.at_callback.nil?
139
+ val = @parser.at_callback.call(key, @env)
140
+ return val if ! val.nil?
141
+ end
142
+ return default
143
+ end
138
144
  end
139
145
  #rint "at(#{key})->#{cur}\n"
140
146
  to_str ? cur.to_s : cur
@@ -125,6 +125,9 @@ module TracWiki
125
125
  # result fo `template_handler('myCoolMacro') inserted
126
126
  attr_accessor :template_handler
127
127
 
128
+ # Proc or nil
129
+ # at_callback.call(env, key) -> computed value
130
+ attr_accessor :at_callback
128
131
 
129
132
  # macro {{$var}} | {{#comment}} | {{!cmd}} | {{template}} | {{/template}}
130
133
  # string begins with macro
@@ -136,6 +139,7 @@ module TracWiki
136
139
  # Create a new Parser instance.
137
140
  def initialize(options = {})
138
141
  init_macros
142
+ @at_callback = nil
139
143
  @env = Env.new(self)
140
144
  @macros = true
141
145
  @allowed_schemes = %w(http https ftp ftps)
@@ -1,3 +1,3 @@
1
1
  module TracWiki
2
- VERSION = '0.3.21'
2
+ VERSION = '0.3.22'
3
3
  end
data/test/parser_test.rb CHANGED
@@ -10,12 +10,14 @@ class Bacon::Context
10
10
  options[:template_handler] = self.method(:template_handler)
11
11
 
12
12
  parser = TracWiki.parser(options)
13
+ parser.at_callback = Proc.new { |k,env| k == 'MEOW' ? 'WUF' : nil }
13
14
  html.should.equal parser.to_html(wiki)
14
15
  end
15
16
  def env(wiki, var, val,options = {})
16
17
  options[:macro_commands] = { '!print' => proc { |env| env.arg(0) + '! ' }, }
17
18
  options[:template_handler] = self.method(:template_handler)
18
19
  parser = TracWiki.parser(options)
20
+ parser.at_callback = Proc.new { |k,env| k == 'MEOW' ? 'HAF' : nil }
19
21
  parser.to_html(wiki)
20
22
  parser.env.at(var).should.equal val
21
23
  end
@@ -1217,6 +1219,11 @@ eos
1217
1219
  tc "<div class=\"AHOJ\">TEST</div>\n", "{{!set ahoj|AHOJ}}<div class=\"{{$ahoj}}\">TEST</div></p>\n", allow_html: true
1218
1220
  tc "<div class=\"**AHOJ**\">TEST</div>\n", "{{!set ahoj|AHOJ}}<div class=\"**{{$ahoj}}**\">TEST</div></p>\n", allow_html: true
1219
1221
  end
1222
+ it 'should parse at_callback ' do
1223
+ tc "<p>WUF</p>\n", "{{$MEOW|meow}}\n"
1224
+ tc "<p>meow</p>\n", "{{$UNKVAR|meow}}\n"
1225
+ tc "<p>cat:</p>\n", "cat:{{$UNKVAR}}\n"
1226
+ end
1220
1227
  it 'should parse data-* ' do
1221
1228
  tc "<div data-coffie=\"tea\">TEST</div>\n", "<div data-coffie=\"tea\">TEST</div>\n", allow_html: true
1222
1229
  tc "<div data-coffie-break=\"tea\">TEST</div>\n", "<div data-coffie-break=\"tea\">TEST</div>\n", allow_html: true
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trac-wiki
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.21
4
+ version: 0.3.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vitas Stradal
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-22 00:00:00.000000000 Z
11
+ date: 2014-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bacon