最近做了一些小项目,需要将很多JS件合并的到一起。开始是手工合并,但每次修改都需要自己复制粘贴非常麻烦,所以想到要开发一个小程序处理这些繁琐的工作。手上可选的方:ant、node.js、ruby。
不太喜欢ant,需要安装jdk,而且需要一些配置。感觉一个小项目用这么重的工具有点不值得。node.js处理文件、调用系统函数功能有点弱。所以最后选了ruby。
编程有有5年多了,也先后用过几种语言写过程序,但不得不说使用Ruby作为一种胶水语言处理一些日常工作实在是太方便了。ruby对字符串的支持实在是太赞了,提供了好多看上去有点古怪但却很实用的语法糖,比较喜欢的有如下几个:heredoc、通用分隔符、字符串插值。
通用分隔符应该是perl中首先引入的一个特性,被ruby借鉴来了。虽然样子不好看,但是用起来很方便,避免了自己处理很多转义字符以及字符串连接等繁琐的问题。比如如果我们要输入一个多行文本在Java中我们要这么写
String s = (
"fist line\n"
+"second line\n"
+ "...."
);
如果内容中包含有双引号等字符还需要自己做转义,很是麻烦,但是在ruby中,用通用分隔符来处理就简单的多
s = %Q{
first line
second line "hellow"
}
通用分隔符的作用远不止这些,这里有些资料
http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Literals对其进行讲解。下面是一些实用样例
#coding utf-8
name = "zhang-san"
p %q{ hello world #{name} } #=> " hello world \#{name} ", 字符串中变量没有替换
p %Q{ hello world #{name} } #=> " hello world zhang-san ", 字符串中变量被替换了
p %w{ hello world #{name} } #=> ["hello", "world", "\#{name}" ] 返回数组,变量没被替换
p %W{ hello world #{name} } #=> ["hello", "world", "zhang-san"] 返回数组,变量被替换
p %x{ ruby --version } #=> "ruby 1.9.2p290 (2011-07-09) [i386-mingw32]\n" 返回系统命令调用结果
reg = %r{ #宽松排列的正则格式,对于书写复杂
^ #格式的正则来说太方便了,我在JS中总想这样做
//import \s+
(\w+ (?: \.\w+)*)
(?: :([$\w]+))?
$
}xi
通用分隔符使用的时候有个地方需要注意%与分隔符之间不能有空格,不能将%r{ }写成%r {}否则会报错。
heredoc也是从perl中借鉴来的一个特性,作用上和通用分隔符差不多,都可以用来输入多行文本,并且自动处理字符串转义。唯一不同的是heredoc可以使用任意字符串做分隔符而不像通用分隔符那样只能使用单个字符。这个特性对于需要按模板生成某些HTML啊之类工作实在太方便了
multi_str = <<-EOF
heredoc也是从perl中借鉴来的一个特性,作用上和通用
分隔符差不多,都可以用来输入多行文本,并且自动处理
字符串转义。唯一不同的是heredoc可以使用任意字符串做
分隔符而不像通用分隔符那样只能使用单个字符。
EOF
至于字符串插值就不多说了,就是可以在字符串中包含变量省去了自己手工用加号链接字符串的麻烦。使用也很简单
name = 'zhang-san'
puts "hello #{name}\n welcom!" # #{name}会被zhang-san替换\n表示换行
puts 'hello #{name}\n welcom!' # #{name}未被替换,\n并没有表示换行
使用字符串插值的时候一个地方需要注意,必须用双引号括起来,单引号虽然也能表示字符串,但解释性不会将其中的字符串插值进行替换,也不会对转义字符做处理(\'除外)。作用虽小但对做Web开发整天需要拼HTML结构的我们来说实在是太方便了,终于可以去掉大量的加号了。
ruby好用的特性还有很多比如代码块、ERB等等,建议大家都用一下,用它来做些自动代码生成啊、生成一些测试数据啊什么的很方便的。
分享到:
相关推荐
在Ruby的世界里,初学者可能会感到有些陌生,但掌握其基本使用流程将为你的编程旅程打下坚实的基础。本文将详细解析"ruby初始使用过程",帮助你快速上手。 首先,我们需要设置好开发环境。在Windows系统中,通常会...
此时我对初学者一些总结
总结来说,`Ruby-rubybuild`是Ruby开发中非常实用的环境管理工具,通过`ruby-build`我们可以方便地编译和安装各种版本的Ruby,配合`rbenv`实现多版本的灵活切换,确保项目的稳定性和兼容性。无论你是初学者还是经验...
Ruby的字符串字面量构造使用了“小单大双”的规则,其中%q代表单引号字符串,而%Q和%代表双引号字符串。当需要在字符串中嵌入变量或表达式时,可以使用双引号字符串配合#{...}的格式。使用%w和%W可以创建单引号或双...
总结来说,通过下载的这三个文件,你可以在无外网环境下成功搭建Ruby 2.7.2环境,并安装RubyGems 3.1.5以及Redis 6.0.9。安装完成后,你可以进一步使用RubyGems安装所需的其他库,如Rails框架等,以满足实际项目的...
### Ruby 教程《The Book of Ruby》知识点总结 #### 一、书籍基本信息 - **书名**:《The Book of Ruby》 - **作者**:Huw Collingbourne - **出版年份**:2011年 - **出版社**:No Starch Press - **ISBN-10**:1-...
在实际使用中,有时需要让Ruby找到要测试的库文件。这可以通过修改Ruby的加载路径实现,例如在测试代码头部添加`$:.unshift File.join(File.dirname(_FILE_), “..”, “lib”)`,这将确保Ruby能找到与测试文件相...
1. **类型与数据结构**:介绍Ruby中的各种基本数据类型,如整型、浮点型、字符串等,并深入讲解数组、哈希表等数据结构的使用方法和内部实现原理。 2. **控制流**:讲解条件语句(if/elsif/else)、循环结构...
总结,本教程介绍了在Linux系统中安装Ruby 2.5.3的详细步骤,包括添加软件源、安装依赖、编译源代码以及设置环境变量。这将帮助开发者搭建起一个完善的Ruby开发环境,从而能够高效地进行Ruby编程和项目开发。
在使用Ruby/tk之前,首先需要确保已经正确安装了Ruby环境,并且安装了Ruby/tk库。通过以下命令来引入Ruby/tk: ```ruby irb> require 'tk' ``` 注意:在文档中提到,“我们将不会在其他章节中重复打印这个语句”。...
安装Ruby:介绍了在不同操作系统(如Windows、macOS、Linux)上安装Ruby的方法,以及使用Ruby版本管理器(如rvm、rbenv)管理多个Ruby版本的技巧。 Ruby环境配置:包括设置环境变量、安装文本编辑器或IDE(如...
总结来说,Ruby-Yard是一款不可或缺的Ruby开发工具,它通过自动化文档生成和强大的定制能力,让代码的文档编写变得简单且高效。无论是个人项目还是团队合作,使用Yard都能有效地提高代码的可读性和团队间的沟通效率...
`redis-rb`是针对Redis数据库系统的一个高效、全面且易于使用的Ruby客户端库。它旨在提供与Redis命令接口的一对一映射,使得Ruby开发者能够轻松地利用Redis的强大功能。Redis是一个开源的、基于内存的数据结构存储...
总结来说,"ruby 安装包"与"redis缓存集群"的结合意味着在部署和管理Redis集群时,可能需要在各个节点上安装Ruby,以便利用Ruby工具进行集群的创建和维护。了解如何正确安装和使用Ruby以及与Redis相关的库是成功构建...
总结来说,Ruby 插件是 Ruby 生态系统的核心,它们极大地增强了 Ruby 的功能和可扩展性,使得开发者能够高效地进行软件开发。无论你是初学者还是经验丰富的开发者,理解如何选择、安装和使用 Ruby 插件都是至关重要...
总结,Ruby 1.9.3的Gem环境是开发和管理Ruby应用的基础,理解其工作原理和操作方法对提升开发效率至关重要。通过正确配置Gem源、管理Gemset以及熟练使用Bundler,可以使你的开发过程更加顺畅。同时,保持Gem的更新和...
总结来说,Ruby通过`File`类提供了一套简单易用的API,使得读写txt文件变得非常方便。无论是逐行读取、一次性读取,还是写入或追加内容,都只需要几行代码就能实现。同时,通过异常处理和上下文管理,确保了文件操作...