eval_template.rb

来自「ruby on rails web敏捷开发之路第二版 源代码」· RB 代码 · 共 36 行

RB
36
字号
#---# Excerpted from "Agile Web Development with Rails, 2nd Ed."# We make no guarantees that this code is fit for any purpose. # Visit http://www.pragmaticprogrammer.com/titles/rails2 for more book information.#---class EvalTemplate  def initialize(view)    @view = view  end  def render(template, assigns)    # create an anonymous object and get its binding    env  = Object.new    bind = env.send(:binding)    # Add in the instance variables from the view    @view.assigns.each do |key, value|      env.instance_variable_set("@#{key}", value)    end    # and local variables if we're a partial    assigns.each do |key, value|      eval("#{key} = #{value}", bind)    end    @view.controller.headers["Content-Type"] ||= 'text/plain'    # evaluate each line and show the original alongside    # its value    template.split(/\n/).map do |line|      line + " => " + eval(line, bind).to_s    end.join("\n")  endend

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?