Renders an erb template taking a {Question} and a {HighLine} instance as context.
@return [HighLine] HighLine instance used as context
@return [Question, Menu] Question instance used as context
@return [ERB] ERB template being rendered
If some constant is missing at this TemplateRenderer instance, get it from HighLine. Useful to get color and style contants. @param name [Symbol] automatically passed constant's name as Symbol
# File lib/highline/template_renderer.rb, line 57 def self.const_missing(name) HighLine.const_get(name) end
Initializes the TemplateRenderer object with its template and HighLine and Question contexts.
@param template [ERB] ERB template. @param source [Question] question object. @param highline [HighLine] HighLine instance.
# File lib/highline/template_renderer.rb, line 29 def initialize(template, source, highline) @template = template @source = source @highline = highline end
Returns an error message when the called method is not available. @return [String] error message.
# File lib/highline/template_renderer.rb, line 43 def method_missing(method, *args) "Method #{method} with args #{args.inspect} " "is not available on #{inspect}. " "Try #{methods(false).sort.inspect}" end
@return [String] rendered template
# File lib/highline/template_renderer.rb, line 36 def render template.result(binding) end