首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

创设gem包

2012-12-19 
创建gem包RubyGems是一个库和程序的标准化打包以及安装框架,它使定位、安装、升级和卸载Ruby包变得很容易。ra

创建gem包

RubyGems是一个库和程序的标准化打包以及安装框架,它使定位、安装、升级和卸载Ruby包变得很容易。rails以及它的大部分插件都是以gem形式发布的。本文描述一个自己创建ruby Gems的过程。gem可以使用你现有的文件夹结构,也可以使用命令创建一个标准的gem包结构。下面是用命令创建一个标准的gem包。

?

运行:gpgen yourgem

?

运行完后,会自动生成一个标准的gem包结构:

?

yourgem

│ COPYING

│ LICENSE

│ Rakefile

│ README

├─lib

│ └─yourgem

│????????? init.rb

└─resources

??????? defaults.yaml

?

将自己的代码放在lib/yourgem文件夹下,如果有测试代码,则创建一个test目录,将单元测试的文件都放在这个文件夹下。

?

将你自己写的rb文件都放在lib/yourgem文件夹下面,例如有a.rb、b.rb。

?

一般的做法,会在lib的根目录下建立一个yourgem.rb文件,这个文件用来引入lib/yourgem文件夹下的所有rb文件。

?

yourgem.rb文件的内容为:

?

$:.unshift"#{File.dirname(__FILE__)}/yourgem"require 'a'require 'b'

?

接着修改Rakefile:

?

require 'rake'require 'rake/testtask'require 'rake/clean'require 'rake/gempackagetask'require 'rake/rdoctask'require 'fileutils'include FileUtilsversion="0.1"name="yourgem"spec = Gem::Specification.new do |s|  s.name = name  s.version = version  s.email = "jsntghf@gmail.com"  s.homepage = "http://localhost"  s.rubyforge_project = "http://localhost"  s.description = s.summary = "The ***_gem GemPlugin"  s.author = "Gaohf"  s.add_dependency('gem_plugin', '>= 0.2.3')    s.platform = Gem::Platform::RUBY  s.has_rdoc = true  s.extra_rdoc_files = ["README"]    s.files = (%w(COPYING LICENSE README Rakefile) +      Dir.glob("{bin,doc/rdoc,test,lib}/**/*") +       Dir.glob("ext/**/*.{h,c,rb}") +      Dir.glob("examples/**/*.rb") +      Dir.glob("tools/*.rb") +      Dir.glob("resources/**/*")).delete_if do |item|    item.include?(".svn") || item.include?("rdoc")  end    s.require_path = "lib"  s.bindir = "bin"endRake::GemPackageTask.new(spec) do |p|  p.need_tar = true if RUBY_PLATFORM !~ /mswin/endtask :install => [:test, :package] do  sh %{sudo gem install pkg/#{name}-#{version}.gem}endtask :uninstall => [:clean] do  sh %{sudo gem uninstall #{name}}endRake::TestTask.new do |t|  t.libs << "test"  t.test_files = FileList['test/test*.rb']  t.verbose = trueendRake::RDocTask.new do |rdoc|  rdoc.rdoc_dir = 'doc/rdoc'  rdoc.options << '--line-numbers'  rdoc.rdoc_files.add ['README', 'LICENSE', 'COPYING', 'lib/**/*.rb', 'doc/**/*.rdoc']endtask :default => [:test, :package]CLEAN.include ['build/*', '**/*.o', '**/*.so', '**/*.a', 'lib/*-*', '**/*.log', 'pkg', 'lib/*.bundle', '*.gem', '.config']

?

运行以下命令生成gem包:

?

gem build Rakefile

?

现在你就可以按照gem的语法安装,卸载,升级(可以自己指定gem的地址,或者把它上传到gem plugin的server)这个gem包了。

热点排行