`
johnnyhg
  • 浏览: 348068 次
  • 来自: NA
社区版块
存档分类
最新评论

强大的ruby模版:ERB

阅读更多
#http://stdlib.rubyonrails.org/
require "erb"
  # Build template data class.
  class Product
    def initialize( code, name, desc, cost )
      @code = code
      @name = name
      @desc = desc
      @cost = cost

      @features = [ ]
    end

    def add_feature( feature )
      @features << feature
    end

    # Support templating of member data.
    def get_binding
      binding
    end

    # ...
  end

  # Create template.
  template = %{
    <html>
      <head><title>Ruby Toys -- <%= @name %></title></head>
      <body>

        <h1><%= @name %> (<%= @code %>)</h1>
        <p><%= @desc %></p>

        <ul>
          <% @features.each do |f| %>
            <li><b><%= f %></b></li>
          <% end %>
        </ul>

        <p>
          <% if @cost < 10 %>
            <b>Only <%= @cost %>!!!</b>
          <% else %>
             Call for a price, today!
          <% end %>
        </p>

      </body>
    </html>
  }.gsub(/^  /, '')

  rhtml = ERB.new(template)

  # Set up template data.
  toy = Product.new( "TZ-1002",
                     "Rubysapien",
                     "Geek's Best Friend!  Responds to Ruby commands...",
                     999.95 )
  toy.add_feature("Listens for verbal commands in the Ruby language!")
  toy.add_feature("Ignores Perl, Java, and all C variants.")
  toy.add_feature("Karate-Chop Action!!!")
  toy.add_feature("Matz signature on left leg.")
  toy.add_feature("Gem studded eyes... Rubies, of course!")

  # Produce result.
  rhtml.run(toy.get_binding)
分享到:
评论
1 楼 hiveer 2012-07-17  
楼主我想问能不能不在class里面定义get_binding 方法, 而是通过 binder = toy.send( :binding )来获取这个binding环境
最后输出: rhtml.run(binder)
我测试了行不通,但是发觉有人这样用, 我想知道是为什么

相关推荐

    Ruby中ERB模板的使用

    Ruby中的ERB(Embedded Ruby)是一种模板引擎,它允许开发者在HTML或者其他文本文件中嵌入Ruby代码,使得静态页面能够动态生成内容。ERB在Web开发中被广泛应用,尤其是在Ruby on Rails框架中,用于生成视图层的HTML...

    sql_query, ruby gem 使用ERB从 `.sql.erb` 模板加载SQL查询.zip

    sql_query, ruby gem 使用ERB从 `.sql.erb` 模板加载SQL查询 sql使用ERB从模板加载SQL查询的ruby gem 。它使使用语法突出显示的纯SQL更加容易。让我们从SQL字符串清除你的ruby 代码。支持的扩展:.sql.erb 或者 .erb...

    Ruby-Erubi是ruby的ERB模板引擎

    **Ruby-Erubi:深入理解ERB模板引擎** 在Ruby世界中,模板引擎是一种用于将数据和HTML(或其他标记语言)结合在一起的工具,它允许开发者以编程方式动态生成网页内容。Erubi就是这样一个轻量级、高效的ERB...

    erb_sql_templates:Ruby Gem 使用 ERB 自定义大型 SQL 查询

    Ruby 的 ERB SQL 模板 当您不希望将大型复杂 SQL 查询作为字符串嵌入到 Ruby 中时,请使用erb_sql_templates 。 gem 允许将 SQL 存储在它们自己的目录和文件中,并且可以使用 ERB 自定义查询。 例子 示例 SQL 模板...

    rails-erb-loader:用于Ruby项目的嵌入式Ruby(.erb)Webpack加载器

    在任何Ruby项目中编译嵌入式Ruby模板文件。 文件是使用Erubis或ERB gem生成的。目录安装npm $ npm install rails-erb-loader --save-dev纱$ yarn add -D rails-erb-loader用法将rails-erb-loader添加到您的规则中。...

    EmbeddedPowerShell:ERB到PowerShell的端口。 没有明显的原因

    如在所述: EPS1是带有嵌入式PowerShell的纯文本该脚本以类似于嵌入式Ruby模板化(由Puppet使用)的方式处理“ eps1”文件。 所涉及的逻辑并不多-任何表达式都将作为普通PowerShell求值。跑步使用以下命令扩展EPS1...

    Laravel开发-erb2blade

    然而,有些开发者可能来自Ruby on Rails背景,习惯使用ERB(Embedded Ruby)模板。`Laravel-erb2blade`项目就是为了解决这类开发者的需求,它允许将`.erb`文件转换成 Laravel 的`.blade.php`文件,从而无缝对接...

    Ruby-Tilt多个Ruby模板引擎的通用接口

    Ruby-Tilt是一个强大的库,它为Ruby开发者提供了一个统一的接口来使用多种不同的模板引擎。在Ruby的世界里,模板引擎是用于将静态的HTML或文本模板与动态数据结合,生成最终的HTML或其他类型的文档。Tilt的主要目标...

    EMat:嵌入式 Matlab 模板:EMat 类在 Matlab 中提供了 Ruby 的类似 ERB 的模板系统。-matlab开发

    EMAT 嵌入式 Matlab 模板EMat 类在 Matlab 中提供了一个模板系统,如 Ruby 的 ERB 系统。 Matlab 代码可以嵌入到任何文本文档中轻松控制文档生成流程。 这里展示了一个简单的例子: &gt;&gt; x = 42; &gt;&gt; tmpl = 'x 的值为 ...

    小型ERB实施-Ruby开发

    Erubi Erubi是用于ruby的ERB模板引擎。 它是Erubis的简化分支,但有以下区别:使用转义时处理后缀条件(例如,&lt;%= foo,如果bar%&gt;)支持Frozen_string_literErubi¶↑Erubi是ruby的ERB模板引擎。 它是Erubis的...

    ytrbium:Ruby中的简单YAML + ERB模板

    Ytrbium是Ruby中一个简单的YAML + ERB模板库。 与Y: 从可重用模板生成大型的冗长的YAML文件。 收集和整理可重复使用的模板方法在多个文件和import他们到每个模板。 正确直观地缩进模板项。 安装 将此行添加到您...

    Ruby on Rails: Up and Running

    7. **erb和haml模板**:Rails使用erb(Embedded Ruby)作为默认的视图模板引擎,也可以选择haml,这是一种更简洁的HTML模板语言。理解这两种模板引擎的工作原理,可以有效地编写视图代码。 8. **测试驱动开发(TDD)*...

    Go-ego-一个ERB风格的Go模板语言

    ego是Go语言中的一种模板引擎,它以ERB(Embedded Ruby)风格为灵感,提供了简洁、高效的模板编写方式。ERB是Ruby世界中常见的模板语言,而ego则将其设计理念引入了Go,使得开发者能够利用Go的语法特性来编写模板,...

    armadillo:使用 ERB 模板继承模板

    注意:假定每个文件都有一个.erb扩展名,并且不应作为模板文件名给出的文件名的一部分。 Armadillo . render ( "myview.html" , { :items =&gt; [ 1 , 2 , 3 ] } , { :base_path =&gt; File . join ( Dir . pwd , ...

    Ruby-Haml是一个HTML的模板引擎

    4. **与Rails的集成**:Haml与Ruby on Rails框架结合紧密,提供了便捷的视图层开发体验,如erb模板的无缝切换。 5. **扩展性**:Haml支持Sass,一个强大的CSS预处理器,共同为开发者提供了一整套优雅的前端开发工具...

    safemode:一个基于ParseTreeRubyParser和Ruby2Ruby的用于安全评估Ruby代码的库。 提供ERB和Haml的Rails ActionView模板处理程序

    用法有关Ruby代码和ERB模板的手动评估,请参见demo.rb 您可以通过注册ActionView模板处理程序来使用它们,例如,在config / initializer文件中,如下所示: # in config/intializer/safemode_tempate_handlers....

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    - **视图文件**:通常使用ERB模板语言来编写视图文件,这些文件位于`app/views`目录下。 #### 八、组件 - **定义**:组件是可重用的代码块,用于封装重复使用的UI元素或逻辑。 - **使用**:在视图文件中通过`...

    Ruby:Ruby项目和教程

    - ** erb模板**:ERB(Embedded Ruby)用于创建HTML模板,将Ruby代码嵌入其中。 - **辅助方法**:Rails提供了许多辅助方法,帮助开发者更方便地生成HTML和链接。 7. **其他库和工具** - **Sinatra**:轻量级的...

    Ruby新手学习书(Ruby语言中文教程)和Rails_4_days

    5. **视图模板**:使用ERB(Embedded Ruby)编写HTML模板,结合Rails的助手方法,构建用户界面。 6. **测试驱动开发**:Rails鼓励TDD(Test-Driven Development),使用RSpec或MiniTest进行单元测试和集成测试。 7...

    gotemplate:将erb样式模板文件编译成Go函数

    总的来说,`gotemplate`是一个强大的工具,它为Go开发者提供了一种将ERB模板集成到Go项目中的途径,使得模板处理变得更加灵活和高效。通过利用编译时的处理,它能够提高Go应用的性能,同时保持代码的整洁和可读性。

Global site tag (gtag.js) - Google Analytics