Class: ERB::OpenTemplate
Overview
OpenTemplate
The Erb OpenTemplate provides a quick and convenient way to create a clean rendering space with the desired responses.
Ruby 1.8.6 or less can’t handle object scope methods with blocks.
TODO: This might make a good addon library. Just add require ‘erb’ to the erb_result method? Call it OpenResponse?
Instance Method Summary collapse
- #erb_result(str) ⇒ Object
-
#initialize(*objs_ioc) ⇒ OpenTemplate
constructor
A new instance of OpenTemplate.
Constructor Details
#initialize(*objs_ioc) ⇒ OpenTemplate
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/standard/facets/erb.rb', line 21 def initialize(*objs_ioc) ioc = Hash===objs_ioc.last ? objs_ioc.pop : {} objs = objs_ioc mods = [] objs.each do |obj| mod = Module.new obj.public_methods.each do |m| mod.module_eval do #define_method(m){ |*a,&b| obj.__send__(m,*a,&b) } define_method(m, &obj.method(m).to_proc) end end mods << mod end mod = Module.new ioc.each do |k,v| mod.module_eval do define_method(k){ v } end end mods << mod extend *mods.reverse end |
Instance Method Details
#erb_result(str) ⇒ Object
50 51 52 |
# File 'lib/standard/facets/erb.rb', line 50 def erb_result(str) ERB.new(str).result(binding) end |