class Qwik::Plugin
Public Class Methods
encode(plugin)
click to toggle source
# File vendor/qwik/lib/qwik/parse-plugin.rb, line 75 def self.encode(plugin) method = plugin[1][:method] param = plugin[1][:param] content = plugin[2] str = "{{#{method}" str << "(#{param})" if param && ! param.empty? if content content.chomp! str << " #{content} " end str << "}} " return str end
join(paras)
click to toggle source
# File vendor/qwik/lib/qwik/parse-plugin.rb, line 92 def self.join(paras) str = paras.join return str end
rewrite(paras, pluginname, num) { |plugin| ... }
click to toggle source
# File vendor/qwik/lib/qwik/parse-plugin.rb, line 50 def self.rewrite(paras, pluginname, num) cur_num = 1 nparas = [] paras.each {|para| if /\A\{\{(\w+)/ =~ para && (name = $1.intern) == pluginname if cur_num == num tokens = TextTokenizer.tokenize(para) tree = TextParser.make_tree(tokens) raise if 1 < tree.length plugin = tree[0] raise if plugin[0] != :plugin new_plugin = yield(plugin) new_para = encode(new_plugin) nparas << new_para else nparas << para end cur_num += 1 else nparas << para end } return nparas end
split(str)
click to toggle source
Split a string into paragraphs.
# File vendor/qwik/lib/qwik/parse-plugin.rb, line 11 def self.split(str) paras = [] cur_str = nil in_plugin = false str.each_line {|line| if ! in_plugin if /\A\{\{/ =~ line paras << cur_str if cur_str cur_str = line in_plugin = true if /\}\}$/ =~ line # Use $ for new line. paras << cur_str cur_str = nil in_plugin = false end else cur_str = '' if cur_str.nil? cur_str += line end else if /\A\}\}$/ =~ line cur_str += line paras << cur_str cur_str = nil in_plugin = nil else cur_str += line end end } if cur_str paras << cur_str end return paras end