Module: Pione::Util::EmbededExprExpander

Defined in:
lib/pione/util/embeded-expr-expander.rb

Class Method Summary collapse

Class Method Details

.expand(env, str) ⇒ Object

Expand embeded expressions in the string.



5
6
7
8
9
10
11
12
13
14
# File 'lib/pione/util/embeded-expr-expander.rb', line 5

def self.expand(env, str)
  return nil if str.nil?

  # parse and transform
  str.gsub(/\{(\$.+?)\}|\<\?\s*(.+?)\s*\?>/) do
    tree = Lang::DocumentParser.new.expr.parse($1 || $2)
    expr = Lang::DocumentTransformer.new.apply(tree, {package_name: nil, filename: nil})
    expr.eval(env).call_pione_method(env, "textize", []).value
  end
end