首页>参考读物>计算机科学与技术>软件与程序设计

Ruby Gems开发实战
作者 : David Berube
译者 : 王 磊 寇晓丽 张建科
出版日期 : 2008-12-02
ISBN : 7-111-24941-2
定价 : 35.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 224
开本 : 16开
原书名 : Practical Ruby Gems
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书是一本讨论如何在Ruby或者Rails项目中使用现有Ruby解决方案的全面指导书,同时它也涵盖了如何创建或者分发Ruby软件包的相关内容。本书非常适合Ruby开发者,也适合那些使用Rails或希望对现有Ruby、Rails项目进行扩展的开发者阅读。
  本书通过丰富的示例,向读者介绍了当今最具影响的34个Ruby Gem包,其中包括:
  ■ 使用Creditcard验证信用卡。
  ■ 使用FxRuby创建跨平台的GUI应用程序。
  ■ 使用Memcache-Client提高Rails应用程序的效率。
  ■ 使用Camping开发轻量级的Web应用程序。
  ■ 使用ActiveRecord简化数据库访问。
  ■ 使用Feedtools处理RSS Feed。
  ■ 使用RMagick处理图片。
  通过对这些Gem包的学习,你能立刻在项目中使用它们。
  通过阅读本书,你也将学会如何封装或者分发自己的Ruby Gem,以及如何使用Ruby Gems处理不同Gem包间的依赖,或者相同Gem包的不同版本之间的依赖。另外,本书也详细说明了在不同操作系统(如Mac、Windows或者Linux)上使用Ruby Gems的差异。通过对本书的学习,你将学会如何利用Ruby Gems,在多个Ruby或Rails项目中更容易地重用代码。当然,你也可以向更多的Ruby爱好者提供你的Ruby Gem。
  David Berube 是一名Ruby开发者、培训家、作家以及演说家。之前,他主要使用PHP、Perl、 C++和Visual Basic等从事软件开发。从2003年起,David开始使用Ruby和Ruby on Rails从事软件开发。

图书特色

封底文字

本书是一本讨论如何在Ruby或者Rails项目中使用现有Ruby解决方案的全面指导书,同时它也涵盖了如何创建或者分发Ruby软件包的相关内容。本书非常适合Ruby开发者,也适合那些使用Rails或希望对现有Ruby、Rails项目进行扩展的开发者阅读。 本书通过丰富的示例,向读者介绍了当今最具影响的34个Ruby Gem包,其中包括: ■ 使用Creditcard验证信用卡。 ■ 使用FxRuby创建跨平台的GUI应用程序。 ■ 使用Memcache-Client提高Rails应用程序的效率。 ■ 使用Camping开发轻量级的Web应用程序。 ■ 使用ActiveRecord简化数据库访问。 ■ 使用Feedtools处理RSS Feed。 ■ 使用RMagick处理图片。 通过对这些Gem包的学习,你能立刻在项目中使用它们。 通过阅读本书,你也将学会如何封装或者分发自己的Ruby Gem,以及如何使用Ruby Gems处理不同Gem包间的依赖,或者相同Gem包的不同版本之间的依赖。另外,本书也详细说明了在不同操作系统(如Mac、Windows或者Linux)上使用Ruby Gems的差异。通过对本书的学习,你将学会如何利用Ruby Gems,在多个Ruby或Rails项目中更容易地重用代码。当然,你也可以向更多的Ruby爱好者提供你的Ruby Gem。 David Berube 是一名Ruby开发者、培训家、作家以及演说家。之前,他主要使用PHP、Perl、 C++和Visual Basic等从事软件开发。从2003年起,David开始使用Ruby和Ruby on Rails从事软件开发。

作者简介

David Berube:暂无简介

译者简介

王 磊 寇晓丽 张建科:暂无简介

译者序

Ruby,一种功能强大的、真正的解释型面向对象脚本语言,在它诞生的很长一段时间里,一直处于被大多数人遗忘的角落里。直到最近几年,当David Heinemeier Hansson——Rails的创造者在2005年“全球开源大会”(OSCON)被评为“年度最佳黑客”;当Rails赢得2006年度Jolt“最佳Web开发工具”大奖;当《Agile Web Development with Rails》赢得2006年Jolt“最佳技术图书”大奖;当众多闪耀的光环笼罩着这个新生的宠儿时,越来越多的人开始通过Rails认识Ruby。
  不可否认,Rails真的是很好、很强大。当你认认真真地看完任何一本Rails书籍,就应该能使用Rails开发出一个不错的Web应用程序,但你是否真正明白Ruby和Rails的关系呢?也许你会毫不犹豫地说:“Rails就是使用Ruby语言实现的一种Web快速开发框架”。从广义上讲没错,但这样回答好像少了些细节的东西。首先,Ruby不是为Rails而生,但Ruby成就了Rails——因为Ruby的简洁性、高效性,David Heinemeier Hansson才使用它创造了一个优秀的Web框架,也就是后来大家所熟知的Rails。因为Rails是由Ruby语言实现的,所以只要编写Rails应用程序,就必然离不开Ruby。其次,为什么我们在一台安装了Ruby的计算机上,只用一条命令就能完成Rails的安装,为什么在Rails更新如此之快的今天,我们只用一条命令就能将已安装的Rails更新为最新发布的版本,这都要归功于RubyGems——虽然它现在听起来很陌生。因为RubyGems的存在,使得我们在Ruby的环境中,仅仅使用一条命令就能完成Rails的下载、安装以及升级;因为RubyGems的存在,Rails不仅仅是一个基于Ruby语言的优秀框架,更是一个能被Ruby开发者轻松管理和使用的Ruby库。那到底什么是RubyGems呢?
  RubyGems实际上是一个Ruby应用程序的管理器,它定义了一种通用的Ruby软件包格式——一个经过包装的Ruby应用程序或Ruby库,我们称之为Gem,同时也为我们提供了一种简单、方便的方式来管理这些Gem。通过使用RubyGems,我们能基于标准、统一的接口构建并分发Ruby Gem;通过使用RubyGems,我们能搭建统一的Ruby软件存储仓库,供全世界的Ruby爱好者互相交流,共享优秀的Ruby Gem;通过使用RubyGems,我们能从Ruby软件存储仓库上查询、搜索、下载、安装合适的Ruby Gem;通过使用RubyGems,我们能方便地对本地安装的Ruby Gem进行升级或者删除;通过使用RubyGems,我们能轻松地管理某Ruby Gem的多个版本,能处理不同Ruby Gem间的依赖关系;通过使用RubyGems,我们也能完成其他工作;总之,RubyGems是一个功能强大的Ruby Gem包管理平台。说了这么多,也许你还是对这些绕口的文字半信半疑,别着急,由于Rails也是一个Gem,因此我们通过大家熟悉的Rails,来真正领略一下RubyGems的强大之处:下载并安装Rails,只需执行命令gem install rails;升级Rails,只需执行命令gem update rails;删除Rails,只需执行命令gem uninstall rails;除此之外,你还可以在一个系统上安装多个版本的Rails。试想一下,如果没有RubyGems,让你手动安装、更新或者删除依赖于几十个Ruby软件包的Rails,那对开发者而言简直就是一场噩梦,相信在你兴致勃勃地安装完Rails后,再也无心使用它了!对,这就是RubyGems的伟大之处。实际上,RubyGems的更伟大之处在于:借助于RubyGems提供的标准Gem接口,开源阵营搭建了Ruby的软件存储仓库——RubyForge,它为我们提供了一套数以万计的Ruby Gem解决方案集合(Rails当然是其中最著名的一个,类似地,还包括轻量级的Web开发框架Camping,验证信用卡的Creditcard,处理图片的RMagick,解析RSS Feeds的Feedtools等)。通过使用RubyForge平台,全世界的Ruby开发者可以互相交流,互相分享;通过使用RubyForge平台,每一个Ruby开发者都能充分利用开源社区提供的优秀解决方案迅速解决遇到的问题,同时,所有的Ruby爱好者,也能将解决问题的方案封装成Gem包,提供给更多的开发者使用。
  本书的作者David Berube——一位在Ruby开发方面有着丰富经验的资深专家,正是从RubyGems的使用角度入手编写了本书。在阐述了什么是RubyGems以及如何使用RubyGems后,作者精挑细选了当今最具影响的34个Ruby Gem包——包括如何使用Creditcard验证信用卡的有效性;如何使用RMagick处理图片的特殊效果;如何使用Mongrel服务于Web应用程序;如何使用Rubyscript2exe将Ruby应用程序转换成可执行应用程序等,并通过大量示例展示了这些Gem的强大功能以及为开发者所带来的便利之处,同时就如何解决一些棘手或易忽视的问题分享了其经验与技巧。最后,作者还提到了如何创建并分发自己的Gem包。总之,这是一本理论与实践相结合、通俗易懂、能帮助Ruby或Rails开发者提高开发效率和分享各自成果(Gem包)的好书。
  最后,感谢机械工业出版社华章分社使译者有机会翻译这本好书,感谢编辑以及众多同事们在本书后期制作过程中付出的辛勤劳动。特别感谢本书作者David Berube,为我们带来了这样一本值得阅读和学习的好书。虽然译者已为该书的翻译付出了不懈的努力,但一定还有不当之处,欢迎读者朋友积极指正。
Ruby的朋友们,请好好享受这本书吧,相信你们一定会受益匪浅的!

  译 者
  2008年5月11日

图书目录

译者序
作者简介
致谢

第一部分 使用RubyGems

第1章 什么是RubyGems2
 1.1 为什么使用RubyGems2
  1.1.1 标准化的软件包格式2
  1.1.2 访问Ruby软件包存储仓库3
  1.1.3 使用Gem服务器重新分发Gem包3
  1.1.4 处理软件包依赖关系3
  1.1.5 处理版本的依赖关系3
  1.1.6 透明地替换Ruby库4
  1.1.7 处理操作系统的差异4
 1.2 与其他包管理器的比较4
第2章 安装RubyGems6
 2.1 安装Ruby6
  2.1.1 你已经安装了Ruby6
  2.1.2 在Linux上安装Ruby6
  2.1.3 在Windows上安装Ruby7
  2.1.4 测试你的Ruby安装8
 2.2 在Linux/Mac OS X上安装RubyGems8
 2.3 升级RubyGems系统9
第3章 使用RubyGems10
 3.1 使用Gem包10
  3.1.1 使用Creditcard Gem包11
  3.1.2 使用Cmdparse包解析命令行参数13
 3.2 使用源码Gem包16
 3.3 调试RubyGems19
第4章 Gem包的版本管理21
 4.1 什么是Gem包的版本21
 4.2 安装旧版本的Gem包22
 4.3 更新Gem包23
 4.4 删除Gem包24
 4.5 指定Gem包版本24

第二部分 使用特殊的Ruby Gem包

第5章 使用ActiveRecord访问数据28
 5.1 ActiveRecord如何工作28
  5.1.1 ActiveRecord模型类29
  5.1.2 数据处理31
 5.2 使用ActiveRecord归档RSS新闻32
 5.3 结论36
第6章 使用BlueCloth标记文本37
 6.1 BlueCloth如何工作37
 6.2 将BlueCloth文本转换成HTML38
 6.3 将BlueCloth文本转换成PDF39
 6.4 结论43
第7章 使用Camping创建Web
应用程序44
 7.1 Camping如何工作44
  7.1.1 模型模块Camping::Models45
  7.1.2 控制器模块Camping::
Controllers46
  7.1.3 视图模块Camping::Views46
 7.2 使用Camping记录时间47
 7.3 结论59
第8章 使用Cmdparse创建命令行
应用程序60
 8.1 Cmdparse如何工作60
 8.2 创建JobSearch工具62
 8.3 结论70
第9章 使用Erubis作为HTML模板71
 9.1 Erubis如何工作71
 9.2 使用Erubis实现数据查看器73
 9.3 结论78
第10章 使用Feedtools解析Feed79
 10.1 Feedtools如何工作79
 10.2 使用Feedtools构建新闻搜索工具80
 10.3 结论82
第11章 使用FxRuby创建图形用户
接口程序83
 11.1 FxRuby如何工作83
 11.2 使用FxRuby实现动态数据表单84
 11.3 结论89
第12章 使用YahooFinance获取
股票信息90
 12.1 YahooFinance如何工作90
 12.2 使用YahooFinance显示股票的变化91
 12.3 结论94
第13章 使用Hpricot解析HTML95
 13.1 Hpricot如何工作95
 13.2 使用Hpricot抓取信息97
 13.3 结论99
第14章 使用Markaby生成HTML100
 14.1 Markaby如何工作100
 14.2 使用Markaby实现股票走势图101
 14.3 结论104
第15章 使用Fastercsv解析CSV数据105
 15.1 Fastercsv如何工作105
 15.2 使用Fastercsv处理人口普查数据106
 15.3 结论108
第16章 使用Multi完成多重分派109
 16.1 Multi如何工作109
 16.2 使用Multi格式化SQL语句110
 16.3 结论117
第17章 使用Mongrel作为Web
服务器118
 17.1 Mongrel如何工作118
 17.2 使用Mongrel作为Rails的开发
服务器119
 17.3 在Windows中将Mongrel作为
服务运行120
 17.4 使用Mongrel运行Camping
应用程序120
 17.5 使用Mongrel作为轻量级服务器121
 17.6 使用Apache2.2和Mongrel运行
Rails应用122
 17.7 结论123
第18章 使用NetSFTP安全传输文件124
 18.1 NetSFTP如何工作124
 18.2 使用NetSFTP上传文件125
 18.3 结论126
第19章 使用NetSSH在服务器端
执行命令127
 19.1 NetSSH如何工作127
 19.2 使用NetSSH和Vim编辑远程文件128
 19.3 结论131
第20章 使用Creditcard验证信用卡132
 20.1 Creditcard如何工作132
 20.2 使用Creditcard批量验证信用卡卡号132
 20.3 结论134
第21章 使用PDFWriter生成PDF
文档135
 21.1 PDFWriter如何工作135
 21.2 使用PDFWriter和Net/SFTP生成
报表136
 21.3 结论141
第22章 使用Runt处理周期性事件142
 22.1 Runt如何工作142
 22.2 使用Runt计划用户组会议144
 22.3 定期执行计划命令146
 22.4 结论148
第23章 使用Rails构建Web站点149
 23.1 Rails如何工作149
 23.2 使用Rails开发一个简单的数据库
应用程序150
 23.3 结论155
第24章 使用Rake自动执行任务157
 24.1 Rake如何工作157
 24.2 使用BlueCloth和Rake生成文档158
 24.3 结论162
第25章 使用RMagick处理图片163
 25.1 RMagick如何工作163
 25.2 使用RMagick创建缩略图164
 25.3 结论169
第26章 使用MemcacheClient加速
Web应用170
 26.1 MemcacheClient如何工作170
 26.2 使用Memcached加速Ruby on Rails
的会话缓存171
 26.3 使用图形界面客户端访问Memcached
服务器175
 26.4 结论177
第27章 使用Rubyzip管理Zip
压缩包178
 27.1 Rubyzip如何工作178
 27.2 从Zip压缩包中读取文本文件
内容179
 27.3 结论181
第28章 使用Memoize加速函数调用182
 28.1 Memorize如何工作182
 28.2 生成MP3列表183
 28.3 结论186
第29章 使用Id3libRuby标记MP3
文件187
 29.1 Id3libRuby如何工作187
 29.2 使用聚集标签器修改ID3标签188
 29.3 结论190
第30章 使用Shorturl简化URL链接191
 30.1 Shorturl如何工作191
 30.2 使用Shorturl缩短RSS Feeds192
 30.3 结论194
第31章 使用Rubyscript2exe创建
标准的Ruby可执行程序195
 31.1 Rubyscript2exe如何工作195
 31.2 使用Rubyscript2exe打包id3tool196
  31.2.1 示例剖析197  31.2.2 特殊的Rubyscript2exe参数198
 31.3 结论199
第32章 使用Tidy清理混乱的HTML
页面200
 32.1 Tidy如何工作200
 32.2 使用Tidy格式化HTML202
 32.3 结论205
第33章 使用XMLsimple解析XML206
 33.1 XMLsimple如何工作206
  33.1.1 使用xml_in解析XML文件206
  33.1.2 使用xml_out生成XML字符串207
 33.2 使用XMLsimple跟踪OpenSSL的
缺陷208
 33.3 结论212

第三部分 创建Ruby Gem包

第34章 创建自己的Gem包214
 34.1 Gem包的内部结构214
 34.2 什么是Gemspec214
 34.3 根据Gemspec创建Gem包214
 34.4 结论218
第35章 Gem包的分发219
 35.1 分发Gem包的方法219
  35.1.1 使用RubyForge分发Gem包220
  35.1.2 使用gem_server分发Gem包221
  35.1.3 使用Web服务器分发Gem包222
 35.2 结论223

教学资源推荐
作者: [美]贝赫鲁兹·A. 佛罗赞(Behrouz A.Forouzan) 理查德·F. 吉尔伯格(Richard F. Gilberg) 著
作者: [美]本贾尼·斯特劳斯特鲁普(Bjarne Stroustrup)著
作者: 【美】梁勇(Y.Daniel Liang) 著
作者: 邱李华 郭志强 曹青