Class: Web2Go::ERB_Interpreter
- Inherits:
-
Object
- Object
- Web2Go::ERB_Interpreter
- Defined in:
- lib/Web2Go/ERB_Interpreter.rb
Overview
ERB_Interpreter manages the execution of ERB scripts See eRuby and ERB class in stdlib
Instance Method Summary collapse
-
#add_field(name, value) ⇒ Object
add a member variable to the evaluation context Can be accessed from within script as @name.
-
#add_parameter(name, value) ⇒ Object
Add a named field to the evaluation context Can be accessed from within script as erb.name.
-
#execute(script, safe_mode, params = nil) ⇒ Object
Execute an ERB script and return the resulting string.
-
#initialize ⇒ ERB_Interpreter
constructor
A new instance of ERB_Interpreter.
Constructor Details
#initialize ⇒ ERB_Interpreter
Returns a new instance of ERB_Interpreter.
11 12 13 |
# File 'lib/Web2Go/ERB_Interpreter.rb', line 11 def initialize @evaluation_context = OpenStruct.new end |
Instance Method Details
#add_field(name, value) ⇒ Object
add a member variable to the evaluation context Can be accessed from within script as @name
23 24 25 |
# File 'lib/Web2Go/ERB_Interpreter.rb', line 23 def add_field(name,value) instance_variable_set(name,value) end |
#add_parameter(name, value) ⇒ Object
Add a named field to the evaluation context Can be accessed from within script as erb.name
17 18 19 |
# File 'lib/Web2Go/ERB_Interpreter.rb', line 17 def add_parameter(name,value) @evaluation_context.send(name+'=',value) end |
#execute(script, safe_mode, params = nil) ⇒ Object
Execute an ERB script and return the resulting string
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/Web2Go/ERB_Interpreter.rb', line 29 def execute(script,safe_mode,params=nil) # if safe_mode > 0 then # script = "<% $SAFE = #{safe_mode};%>" + script # end parser = ERB.new(script) if !params.nil? then params.each { |key,value| add_parameter(key,value) } end erb = @evaluation_context # for compatibility with previous usage of ERB in Wiki2Go current = @evaluation_context parser.result(binding) end |