Class: Kontrol::Template
- Inherits:
-
Object
- Object
- Kontrol::Template
- Includes:
- Helpers
- Defined in:
- lib/kontrol/template.rb
Overview
This class renders an ERB template for a set of attributes, which are accessible as instance variables.
Constant Summary
Constants included from Helpers
Instance Attribute Summary collapse
-
#file ⇒ Object
readonly
Returns the value of attribute file.
Instance Method Summary collapse
- #changed? ⇒ Boolean
-
#initialize(app, file) ⇒ Template
constructor
A new instance of Template.
- #load ⇒ Object
- #render(variables) ⇒ Object
Methods included from Helpers
#h, #link_to, #markdown, #strip_tags, #tag, #urlify
Constructor Details
#initialize(app, file) ⇒ Template
Returns a new instance of Template.
31 32 33 34 35 36 |
# File 'lib/kontrol/template.rb', line 31 def initialize(app, file) @app = app @file = file load end |
Instance Attribute Details
#file ⇒ Object (readonly)
Returns the value of attribute file.
29 30 31 |
# File 'lib/kontrol/template.rb', line 29 def file @file end |
Instance Method Details
#changed? ⇒ Boolean
43 44 45 |
# File 'lib/kontrol/template.rb', line 43 def changed? File.mtime(@file) != @mtime end |
#load ⇒ Object
38 39 40 41 |
# File 'lib/kontrol/template.rb', line 38 def load @mtime = File.mtime(file) @erb = ERB.new(File.read(file)) end |
#render(variables) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/kontrol/template.rb', line 47 def render(variables) load if ENV['RACK_ENV'] != 'production' and changed? @erb.result(View.new(variables.merge(:application => @app)).__binding__) rescue => e e.backtrace.each do |s| s.gsub!('(erb)', file) end raise e end |