Class: InlineTemplates::RenderingContext
Instance Method Summary
collapse
Methods inherited from BlankObject
drop_methods, make_blank
Constructor Details
#initialize(context, locals, builder, view = nil) ⇒ RenderingContext
Returns a new instance of RenderingContext.
5
6
7
8
9
10
11
12
13
14
|
# File 'lib/inline_templates/rendering_context.rb', line 5
def initialize(context, locals, builder, view = nil)
@_inlinetemplates_context = context
@_inlinetemplates_locals = locals
@_inlinetemplates_builder = builder
@_inlinetemplates_view = view || context
context.instance_variables.each do |var|
instance_variable_set var, BufferWrapper.wrap(context.instance_variable_get(var), self)
end
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/inline_templates/rendering_context.rb', line 32
def method_missing(name, *args, &block)
args.map! &BufferWrapper.method(:unwrap)
block = BufferWrapper.create_proxy_proc(block, self) unless block.nil?
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_view, name, *args, &block
else
super
end
BufferWrapper.wrap result, self
end
|
Instance Method Details
#h(obj) ⇒ Object
20
21
22
|
# File 'lib/inline_templates/rendering_context.rb', line 20
def h(obj)
BufferWrapper.wrap obj.to_s.html_safe, self
end
|
#inlinetemplates_append(obj) ⇒ Object
24
25
26
|
# File 'lib/inline_templates/rendering_context.rb', line 24
def inlinetemplates_append(obj)
@_inlinetemplates_view.output_buffer.append = obj
end
|
#inlinetemplates_instance_exec(new_self, *args, &block) ⇒ Object
28
29
30
|
# File 'lib/inline_templates/rendering_context.rb', line 28
def inlinetemplates_instance_exec(new_self, *args, &block)
RenderingContext.new(new_self, @_inlinetemplates_locals, @_inlinetemplates_builder, @_inlinetemplates_view).instance_exec(*args, &block)
end
|
#t(obj) ⇒ Object
16
17
18
|
# File 'lib/inline_templates/rendering_context.rb', line 16
def t(obj)
BufferWrapper.wrap obj.to_s, self
end
|