Class: Trenni::Template
- Inherits:
-
Object
show all
- Defined in:
- lib/trenni/template.rb
Defined Under Namespace
Classes: Assembler, Scanner
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(buffer) ⇒ Template
Returns a new instance of Template.
170
171
172
|
# File 'lib/trenni/template.rb', line 170
def initialize(buffer)
@buffer = buffer
end
|
Class Method Details
.buffer(binding) ⇒ Object
Returns the buffer used for capturing output.
39
40
41
|
# File 'lib/trenni/template.rb', line 39
def self.buffer(binding)
eval(OUT, binding)
end
|
.capture(*args, &block) ⇒ Object
Returns the output produced by calling the given block.
29
30
31
32
33
34
35
36
|
# File 'lib/trenni/template.rb', line 29
def self.capture(*args, &block)
out = eval(OUT, block.binding)
top = out.size
block.call(*args)
return out.pop(out.size - top).join
end
|
.load_file(path) ⇒ Object
166
167
168
|
# File 'lib/trenni/template.rb', line 166
def self.load_file(path)
self.new(FileBuffer.new(path))
end
|
Instance Method Details
#to_array(scope) ⇒ Object
186
187
188
189
190
191
192
193
194
|
# File 'lib/trenni/template.rb', line 186
def to_array(scope)
if Binding === scope
eval(code, scope, @buffer.path)
else
scope.instance_eval(&to_proc)
end
end
|
#to_buffer(scope) ⇒ Object
178
179
180
|
# File 'lib/trenni/template.rb', line 178
def to_buffer(scope)
Buffer.new(to_array(scope).join, path: @buffer.path)
end
|
#to_proc ⇒ Object
196
197
198
|
# File 'lib/trenni/template.rb', line 196
def to_proc
@compiled_proc ||= eval("proc{;#{code};}", binding, @buffer.path)
end
|
#to_string(scope = Object.new) ⇒ Object
Also known as:
evaluate, result
174
175
176
|
# File 'lib/trenni/template.rb', line 174
def to_string(scope = Object.new)
to_array(scope).join
end
|