HeTao.IM
在Jeweler官方的README.markdown详细的描述了如何利用Jeweler,结合github.com和rubygems.org提供的服务来进行在线的RubyGem项目的开发、管理和发布。
如果所在的环境并不具备使用github.com和rubygems.org提供的服务,或者并不希望将的源码通过github.com来进行管理,也并不希望将开发好的RubyGem项目发布到rubygems.org,那么在这样的情况下又如何利用Jeweler来开发、管理和发布你的RubyGem项目呢?本文的下面部分将围绕这个假设来进行详细的叙述。
Jeweler是一个用于开发RubyGem项目的工具,主要为RubyGem的开发者提供了两个主要特性:
- 提供了一个便于管理和易于发布RubyGem的基础库;
- 为创建新的RubyGem项目提供了一个脚手架生成器。
开发、管理和发布项目
安装Jeweler
创建RubyGem项目
3 |
$jeweler --rspec new_project |
自定义RubyGem
在使用Jeweler的脚手架生成器创建了一个新的RubyGem项目后,首先需要修改该项目的一些元属性。这些属性将会用来生成.gemspec文件。属性信息在http://docs.rubygems.org/read/chapter/20中有详细的说明。Jeweler通过一个Rake Task自动化的生成.gemspec文件,因此通过修改Rakefile文件中gem的相关属性来实现自定义RubyGem。下面是一个新生成项目的Rakefile文件:
02 |
Jeweler::Tasks. new do |gem|
|
03 |
gem.name = "new_project"
|
06 |
gem.summary = % Q { TODO : one-line summary of your gem}
|
07 |
gem.description = % Q { TODO : longer description of your gem}
|
08 |
gem.email = "towerhe@gmail.com"
|
09 |
gem.authors = [ "Tower He" ]
|
其中gem.name、gem.summary是必填属性,其余的均为可选属性。 下面介绍一个重要的属性gem.files的配置。
1) 使用git做版本控制
Jeweler默认假设使用git来进行版本控制,此时Jeweler会默认的将所有被添加到git中,并已经提交的,且不在.gitignore中的文件添加到gem.files中。也就是说,如果使用git来进行版本控制,那么就不需要去手动的定义gem.files属性,Jeweler会在打包的时候自动生成。
然而开发的项目,有时并不希望将所有提交到git中的内容全部打入包中,这时候该如何去处理呢?此时也需要通过修改Rakefile中的相关属性,来实现此类自定义打包的方案,例如:
- 不希望打包所有用于开发阶段的工具配置信息;
- 不希望打包测试文件;
- 不希望打包…
通过修改gem.files属性可以实现忽略这些不希望打包的文件/目录
非常抱歉!
由于不太会使用javaeye的编辑器,后面的内容无法贴过来,请通过下面地址查阅:
http://hetao.im/2011/01/13/using-jeweler-to-develop-a-rubygem-under-an-offline-env
分享到:
相关推荐
请注意,如果您是从头开始,请使用继承者 I(Fred Mitchell,flajann2)将同时维护Jeweler和Juwelier,但将为Juwelier添加新功能,并最终在某个命名空间之后将其“合并”到Juwelier中问题得到处理。 你好,世界 使用...
git 标记将标签添加到正在部署的存储库(使用 Capistrano),格式为: #{stage}-week#{Date.today.cweek-1}.#{release_timestamp}指示将 gem 添加到您的 Gemfile 中: gem 'git-tagging'在你的 Capfile 添加 require...
TODO: 写一个 gem 描述安装将此行添加到应用程序的 Gemfile 中: gem 'beta' 然后执行: $ bundle或者自己安装: $ gem install beta用法TODO:在这里写使用说明贡献分叉它( ) 创建您的功能分支( git checkout -...
当前的加密算法 Ceasar密码(加密的“ Hellow世界”) 希望还会有更多……宝石状态 刚刚使用jeweler 添加了一个gem骨架,但是还没有完全将旧代码集成进去,因此还没有为它的第一个版本做好准备版权 版权所有:...
确保在开始之前正确安装了 libfreenect。 请参阅: 通过宝石 (sudo)? gem install ffi-libfreenect 通过耙¶ ↑ git clone http://github.com/jgrunzweig/ffi-libfreenect.git cd ffi-libfreenect (sudo)? gem ...