Ruby读取XML使用REXML没话说,方便快捷,但Ruby创建XML呢?
工作上需要使用程序根据规则自动生成一个XML数据文件,准备用Ruby实现,上网查了一些Ruby创建XML文档的介绍,10篇有9篇都是转载那一个文章,使用Builder::XmlMarkup操作,但文章介绍的也太简单了,琢磨半天也没想明白怎么制作稍微复杂一点点的嵌套结构;
如果这个工作用Java实现,不用考虑,自然FreeMarker参上,用模板写XML避免操作复杂的Dom,Element的,懒人的福音啊!我记得原来看过Ruby也有模板的功能,叫啥名忘了,Google吧,发现要找的就是ERB(ERb)
ERB全称是啥没找到,标准库文档中介绍
ERB provides an easy to use but powerful templating system for Ruby;看介绍Ruby On Rails就是使用ERB作为创建文件的模板;但是,网上关于Ruby ERB也退少了(难道因为太简单?不用介绍??),自己收集了一些,留下备用,也给有此需求的朋友留个参考
ERB属于Ruby标准库中的东西,不需要单独安装,模板中动态脚本的写法和JSP基本一个模子扒出来的
<% 写逻辑脚本(Ruby语法) %>
<%= 直接输出变量值或运算结果 %>
给一段示例代码,这段代码是从Hash中读取信息创建sql语句保存到文件中
require "erb"
domains = {...}
sqlTemplate = ERB.new %q{
<%for organization in domains.keys%>
insert into org_domain(Domain, organization) values('<%=domains[organization]%>','<%=organization%>');
<%end%>
}
sqlFile = File.new("./sql.sql", "w")
sqlFile.puts sqlTemplate.result
补充一点,关于模板输出结果可以使用
template.result
template.result(binding)
* 两个方法还是有细微差别的,无参数那种直接使用当前代码段中的上下文环境,对于直接写一些简单测试脚本完全够用
* 当ERB方法要运行在类内的方法,或者访问类内变量时,必须明确调用 .result(binding) 与上下文变量绑定,否则ERB模板无法直接访问到类变量
分享到:
相关推荐
它的核心思想是将Ruby代码嵌入到文本模板中,通过运行这些嵌入的代码来生成最终的输出。例如,以下是一个简单的ERB模板: ```erb <title><%= @title %> <h1>Welcome ! ``` 在这个例子中,`是ERB的输出标签,...
sql_query, ruby gem 使用ERB从 `.sql.erb` 模板加载SQL查询 sql使用ERB从模板加载SQL查询的ruby gem 。它使使用语法突出显示的纯SQL更加容易。让我们从SQL字符串清除你的ruby 代码。支持的扩展:.sql.erb 或者 .erb...
Ytrbium是Ruby中一个简单的YAML + ERB模板库。 与Y: 从可重用模板生成大型的冗长的YAML文件。 收集和整理可重复使用的模板方法在多个文件和import他们到每个模板。 正确直观地缩进模板项。 安装 将此行添加到您...
Erubi Erubi是用于ruby的ERB模板引擎。 它是Erubis的简化分支,但有以下区别:使用转义时处理后缀条件(例如,<%= foo,如果bar%>)支持Frozen_string_literErubi¶↑Erubi是ruby的ERB模板引擎。 它是Erubis的...
5. **源码映射**:某些模板引擎支持源码映射,Tilt可以利用这一特性,帮助开发者在调试时定位模板中的错误。 6. **版本兼容性**:Tilt致力于保持向后兼容,确保在升级模板引擎库时,代码不会突然中断。 在实际开发...
4. **与Rails的集成**:Haml与Ruby on Rails框架结合紧密,提供了便捷的视图层开发体验,如erb模板的无缝切换。 5. **扩展性**:Haml支持Sass,一个强大的CSS预处理器,共同为开发者提供了一整套优雅的前端开发工具...
它允许直接在模板中嵌入Go代码,通过`{{`和`}}`来包裹表达式,这与Go的注释语法类似,降低了学习曲线。 2. **编译时处理**:ego将模板编译成Go代码,这意味着模板在运行时不需要额外的解析或执行开销。这不仅提高了...
这份文档可能也涵盖了Rails的相关内容,包括路由、ActiveRecord(ORM)、 erb模板和控制器的用法等。 此外,Ruby还有一系列强大的库和工具,如Nokogiri用于XML和HTML解析,RSpec用于行为驱动开发(BDD),Sinatra...
用户只需将这个模板中的 `GEM` 文件夹替换到自己的项目中,即可享受到优化后的模板功能。 在 `gems` 文件夹中,包含了 Hanna 模板的依赖库。在 Ruby 中,`gem` 是软件包管理器,用于安装、管理和升级 Ruby 库。这个...
当您不希望将大型复杂 SQL 查询作为字符串嵌入到 Ruby 中时,请使用erb_sql_templates 。 gem 允许将 SQL 存储在它们自己的目录和文件中,并且可以使用 ERB 自定义查询。 例子 示例 SQL 模板文件some_query.erb.sql ...
RDoc 的工作原理是通过解析 Ruby 文件(.rb)中的注释,然后使用模板将这些注释转换为格式化的文档。模板决定了最终文档的外观和结构,包括类、模块、方法、常量等的布局,以及链接、样式表和页面导航的生成。 默认...
5. **视图模板**:使用ERB(Embedded Ruby)编写HTML模板,结合Rails的助手方法,构建用户界面。 6. **测试驱动开发**:Rails鼓励TDD(Test-Driven Development),使用RSpec或MiniTest进行单元测试和集成测试。 7...
本项目是基于Ruby的Haml模板引擎设计源码,包含149个文件,主要文件类型为rb、haml、xhtml、erb、x、md、gitignore、gitmodules、yml和yardopts。该项目适用于Haml模板引擎的开发和设计,为用户提供了一个丰富的资源...
EMAT 嵌入式 Matlab 模板EMat 类在 Matlab 中提供了一个模板系统,如 Ruby 的 ERB 系统。 Matlab 代码可以嵌入到任何文本文档中轻松控制文档生成流程。 这里展示了一个简单的例子: >> x = 42; >> tmpl = 'x 的值为 ...
在Ruby on Rails框架中,虽然ERB(Embedded Ruby)是默认的模板引擎,但开发者可以根据项目需求选择像Curly这样的替代品,以获得更优的代码组织方式。 在"zendesk-curly-02523d2"这个压缩包中,很可能是包含了Curly...
- Views:视图负责展示数据,通常使用ERB(嵌入式Ruby)模板语言。 - Controllers:控制器处理业务逻辑,协调模型和视图之间的交互。 4. **元编程** - 动态性:Ruby允许在运行时修改类和对象,比如添加方法、...
注意:假定每个文件都有一个.erb扩展名,并且不应作为模板文件名给出的文件名的一部分。 Armadillo . render ( "myview.html" , { :items => [ 1 , 2 , 3 ] } , { :base_path => File . join ( Dir . pwd , ...
在任何Ruby项目中编译嵌入式Ruby模板文件。 文件是使用Erubis或ERB gem生成的。目录安装npm $ npm install rails-erb-loader --save-dev纱$ yarn add -D rails-erb-loader用法将rails-erb-loader添加到您的规则中。...
用法有关Ruby代码和ERB模板的手动评估,请参见demo.rb 您可以通过注册ActionView模板处理程序来使用它们,例如,在config / initializer文件中,如下所示: # in config/intializer/safemode_tempate_handlers....