Sha256: e44249ee74c8974fe2345c4ec131aae055eba43bbb2e4987446b62b9ee5629c1
Contents?: true
Size: 1.27 KB
Versions: 1
Compression:
Stored size: 1.27 KB
Contents
module InlineTemplates class RenderingContext < BlankObject make_blank :instance_exec, :instance_variable_set def initialize(context, locals, builder) @_inlinetemplates_context = context @_inlinetemplates_locals = locals @_inlinetemplates_evaluating = true @_inlinetemplates_builder = builder context.instance_variables.each do |var| instance_variable_set var, context.instance_variable_get(var) end end def t(obj) BufferWrapper.wrap obj.to_s, @_inlinetemplates_context.output_buffer end def h(obj) BufferWrapper.wrap obj.to_s.html_safe, @_inlinetemplates_context.output_buffer end def method_missing(name, *args, &block) args.map! &BufferWrapper.method(:unwrap) if @_inlinetemplates_locals.include?(name) && args.length == 0 result = @_inlinetemplates_locals[name] elsif @_inlinetemplates_context.respond_to?(name, true) result = @_inlinetemplates_context.__send__ name, *args, &block elsif @_inlinetemplates_builder.can_build?(name) result = @_inlinetemplates_builder.build @_inlinetemplates_context, name, *args, &block else super end BufferWrapper.wrap result, @_inlinetemplates_context.output_buffer end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
inline_templates-0.0.1 | lib/inline_templates/rendering_context.rb |