Project

General

Profile

Download (816 Bytes) Statistics
| Branch: | Tag: | Revision:
# Recursively parses a hash and in case the value is a string,
# renders it using ERB. It respects the safe-mode settings.
#
class ParameterSafeRender
include UnattendedHelper
def initialize(host)
@host = host
end

def render(value)
render_object(value)
end

private

def render_object(object)
return object unless (Setting[:interpolate_erb_in_parameters])

# recurse over object types until we're dealing with a String
case object
when String
render_string object
when Array
object.map { |v| render_object v }
when Hash
object.merge(object) { |k, v| render_object v }
else
# Don't know how to parse this, send it back
object
end
end

def render_string(string)
render_safe(string, ALLOWED_HELPERS, :host => @host)
end
end
(31-31/47)