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中问题得到处理。 你好,世界 使用...
16. **nevertheless**: 这个词在编程文档中使用,表达尽管有某些条件,但程序仍需执行其他操作。 17. **peculiar**: 在调试过程中,"peculiar"可能用来描述程序中的异常或不寻常的行为。 18. **react**: 在响应式...
在居住和工作环境的词汇中,"office"(办公室)、"apartment"(公寓)、"theatre"(戏院)和"hotel"(饭店)等,都是生活中常见的地点,对于提升学生的语言应用能力非常关键。 在学习和教育相关词汇中,"classroom...
git 标记将标签添加到正在部署的存储库(使用 Capistrano),格式为: #{stage}-week#{Date.today.cweek-1}.#{release_timestamp}指示将 gem 添加到您的 Gemfile 中: gem 'git-tagging'在你的 Capfile 添加 require...
在iOS开发中,Ruby有时被用作构建工具,如使用Bundler管理依赖,或者通过Jeweler、Gemspec等来创建和发布Ruby Gems,这些Gem可以包含库、工具或其他资源,类似于SDK。 【文件名称列表】"mnc-moreappsdk-ios-master...
TODO: 写一个 gem 描述安装将此行添加到应用程序的 Gemfile 中: gem 'beta' 然后执行: $ bundle或者自己安装: $ gem install beta用法TODO:在这里写使用说明贡献分叉它( ) 创建您的功能分支( git checkout -...
1. 场所词汇:如square(广场)、cinema(电影院)、park(公园)等,这些都是孩子们日常生活中可能接触到的地方,学习这些词汇有助于他们更好地理解和描述周围环境。 2. 服装与穿着:包括coat(外套)、blouse...
域名不仅是访问者进入企业网站的关键,还是企业在虚拟世界中的存在象征,承载着指示和引导用户的功能。对于企业来说,尤其在开展电子商务的过程中,拥有一个优秀的域名能够显著提升企业的网络知名度,因此,选择合适...
当前的加密算法 Ceasar密码(加密的“ Hellow世界”) 希望还会有更多……宝石状态 刚刚使用jeweler 添加了一个gem骨架,但是还没有完全将旧代码集成进去,因此还没有为它的第一个版本做好准备版权 版权所有:...
确保在开始之前正确安装了 libfreenect。 请参阅: 通过宝石 (sudo)? gem install ffi-libfreenect 通过耙¶ ↑ git clone http://github.com/jgrunzweig/ffi-libfreenect.git cd ffi-libfreenect (sudo)? gem ...
【小升初必背1000个英语单词】涵盖了孩子们从小学升入初中的关键词汇,这些词汇在日常对话、阅读理解以及写作中都至关重要。词汇的学习是英语学习的基础,掌握这些单词可以帮助学生更好地适应初中阶段的英语课程。 ...