缘起
学习Ruby和Rails,投身web开发,绕不开RubyGems。以下是一些看书笔记。
1. 简介
RubyGems是分发和安装Ruby应用程序的包管理器。如同Ubuntu/Debian中的apt,Redhat中的yum,Mac OS中的DarwinPorts一样。RubyGems的优点:
- l 标准化的软件包格式:Gemspec-使用YAML形式介绍软件的相关信息。
- l 可以使用Gem服务费分发Gem包
- l 方便的处理包依赖关系
- l 处理版本依赖关系
- l 通明的替代Ruby库
使用RubyGems,必须先安装Ruby,Ruby的安装可以参考www.ruby-lang.org。
RubyGems的官方站点为:http://rubygems.org。
2. 使用
安装包:gem install gemname
帮助:gem help [command] 比如,gem help install
使用的时候,在ruby脚本中require ”gemname“
大多数gem包都是ruby实现的,但是有些包可能是由C或者其他的语言实现的。
包版本管理
gem list gemname #列出包的信息
gem list --remote gemname #列出远程包的信息
gem install -v 1.0.5 gemname
gem uninstall gemname #卸载相应的包
gem uninstall gemname -v 2.0.2 #卸载相应版本的包
gem update gemname #升级包的信息
gem update #更新所有的信息
gem delete “<2.0.0” gemname
Gem(Ruby 2.1.0,Gem 2.2.2)涉及的目录(备注,这里是使用的源代码安装方式的默认目录):
下载的gem包的位置:/usr/local/lib/ruby/gems/
文档所在的目录:/usr/share/doc/rubygems/
主目录下的:~/.gem目录
这里,/usr/local/lib/ruby是一个很重要的目录。
3. 特殊的Ruby Gem包
ActiveRecord:对象关系模型ORM
BlueCloth:Ruby实现的Markdown风格的标记语言
RedCloth:Ruby实现的Textile风格的标记语言
Camping:Ruby实现的微型web开发框架,其中使用Markaby(markup as ruby)的Gem包
Cmdparase:为基于命令行的应用程序提供支持的Gem包
Erubis:eRuby标记语言的一种实现,eRuby标记语言可以在HTML中嵌入Ruby代码
Feedtools:解析RSS或者Atom格式的Feed。
FxRuby:利用FOX库和Ruby创建GUI程序(注:Ruby的GUI程序可以使用Tcl/tk的Ruby接口)
Hpricot:简单快速的解析HTML的Gem包
Fastercsv:csv数据解析Gem包
Multi:为Ruby提供多重分派的功能
Mongrel:快速,稳定的Ruby的web服务器,处理静态内容时搭配Apache。
Net-SFTP:提供SFTP库的Gem包,可以利用SSH和SFTP操作服务器的文件和目录
Creditcard:验证信用卡的Gem包
PDF-Writer:可以成为创建PDF文件的Gem包
Runt:能够创建时间表达式,从而处理周期性事情的Gem包
Rails:使用ActiveRecord的杰出的web开发框架
Rake:自动执行任务的工具,类似C/C++的make和Java中的ant
RMagick:处理图片的Gem包,ImageMagick的Ruby访问接口,使用的前提是需要安装ImageMagick或者GraphicsMagick。
Memcache-Client:分布式缓存系统Memcached的Ruby实现
Rubyzip:管理zip压缩包的Gem包
Memoize:加速函数调用的Gem包
Tidy:清理非标准格式的HTML
重点研究的gem包:ActiveRecord,Camping,Rails,Mongrel,其中优先研究Rails。
4. 创建Gem包
Gem包是名为.gem后缀名的文件,实际类似zip或tar的压缩包,其中包含了必要的几个目录和文件。Lib包含所有Ruby源代码,test包含所有的测试文件,可选的README包含gem包的描信息。文件列表和元数据都记录在Gemspec中。
创建Gem包的步骤:
1.首先,创建一个Gem规格书,可通过Gem::Specification对象创建获得
2.然后,运行gem build创建包
具体可以参考:http://docs.rubygems.org/read/chapter/20
分发gem包
1.Http或ftp分发
2.添加到gem的官方服务器上
3.构建本地服务器分发
后记
关于Ruby和Rails的学习,已经迈出很大一步。从图书馆收集如些的这些书:
《Rails 项目实战剖析与技巧大全》:待看
《Ruby on Rails 构建与运行》:看一半
《Head First Rails》;看一点
《Ruby编程语言》:看1/3
《Ruby元编程》:看一点
《Ruby Gems 开发实战》:如上笔记,看了一点
《Rails高级编程》:狠狠看,书不错,讲得非常的清楚透彻,看了大半
《REST实战》:看了一点,就跑过去看《架构风格与基于网络的软件架构设计》
《Web开发敏捷之道 第四版》:正在看
《web标准实践》:看了1/5,讲得挺有意思的
希望自己通过一个月多的学习能够找到一份Rails的工作,自己给加油吧
参考文献
1.Ruby Gems开发实战,David Berube著,王磊等译
2.随书源代码:http://www.apress.com/9781590598115