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
Returns a new instance of 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 |