*ruby 之间的引用全部是源代码的引用,为了规范类库的管理,gems出现了。
gems是ruby源代码管理工具,代码按照一定的目录结构被组织成一个lib。
比如:rake, rails, rcov都有gem版本。
安装一个rake gem只需要执行 gem install rake. rake 的源代码被下载下来以后被放到了一个特定的位置。也可以下载rake.gem 通过执行 gem install rake.gem来手工安装。
那么如何使用呢?
require 'rubygems'
require 'rake'
这样就可以了。
前面的文章我说过ruby里的LOAD_PATH, rubygems 的位置在它安装的时候已经被加到了LOAD_PATH里了,在require ‘rubygems’的时候,rake gem下面的lib路径也被加入到了LOADPATH里。
*rake gem 安装以后可以在命令行使用吗?
不行!
gem包含的只是ruby的原代码库,要想使用必须用require引用。
如果要想在命令行运行rake,必须安装rake的命令行工具,就像apt-get install rake.
*rails可以使用gems
2种方式:
1.直接引用系统里的gem库
2.把gem绑定到rails里,通过gemsonrails这个命令行工具
其实就是直接把gem的文件夹copy到rails/vendor/gems下
如何freeze rails 到 rails peoject
rake rails:freeze:gems (from rails app root)
rake rails:unfreeze
rails app中的Rake文件引用了系统的rake,而后系统的rake引用了系统中的每个gem的rake文件。
*rails的plugin可以通过script/plugin命令来安装
plugin可以调用gem的程序,在于plugin程序如何写。
*rake 和plugin之间的关系
rails 中的Rake file引用config/boot,几乎引用了所有的rails运行时环境的东西
*rails中的gems只有在rails运行的时候,才由enviroment.rb来引入。
rake不会自动引入gems的代码和路径。如果要使用的话,需要require ‘vendor/gems/lib/xxx’。
gem 可以通过rake被freeze到rails app中去
因为rake自动引用plugin,所以先装一个gems的plugin
1.script/plugin install http://svn.ardes.com/rails_plugins/gems
而后再
2.rake gems:freeze GEM=gem_name
*rcov的rails plugin其实不做具体的工作,它是调用系统的rcov命令行工具。
所以必须安装rcov的命令行工具,apt-get install rcov
为什么rails rcov plugin没有包含rcov的全部功能呢?
因为rcov和系统相关,需要在安装的时候编译,这和OCI8是一样的。
分享到:
- 2009-01-24 14:54
- 浏览 2190
- 评论(3)
- 论坛回复 / 浏览 (3 / 4064)
- 查看更多
相关推荐
LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.4/ext/apache2/mod_passenger.so PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.4 PassengerRuby /usr/local/bin/...
事实上,它已从OAuth Rails GEM( rubygems.org/gems/oauth-plugin github.com/pelle/oauth-plugin )中抽出,后者现在使用此gem作为依赖项。 用法演示¶ ↑ 我们需要明确指定oauth_callback网址,否则默认为“ oob...
Redmine 是基于 Ruby on Rails 开发的应用,因此首先需要在系统上安装 Ruby。 **方法1:** 使用源码编译安装 Ruby ```bash wget https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.1.tar.gz tar -zxvf ruby-2.4.1....
5. **安装ROR开发所需插件**:在.vimrc文件中添加插件安装指令,例如`Plugin 'tpope/vim-rails'`,然后运行`:PluginInstall`安装。 6. **配置Rails映射**:Vim-rails插件提供了许多方便的映射,如`:Rgenerate`,`:...