Class ERB::OpenTemplate
In: lib/facets/standard/facets/erb.rb
Parent: Object

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?

Methods

erb_result   new  

Public Class methods

[Source]

# File lib/facets/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

Public Instance methods

[Source]

# File lib/facets/standard/facets/erb.rb, line 50
  def erb_result(str)
    ERB.new(str).result(binding)
  end

[Validate]