ruby创建自己的gem包

转载 2012年03月23日 15:56:27
ruby创建自己的gem包
2010年03月18日 星期四 8:50

from:http://www.51testing.com/?170805/viewspace-95980

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文件的内容为:

#yourgem.rb

 $:.unshift"#{File.dirname(__FILE__)}/yourgem"

require ‘a’

require ‘b’

 

制作完rb文件后,修改Rakefile

# Rakefile

require 'rake'

require 'rake/testtask'

require 'rake/clean'

require 'rake/gempackagetask'

require 'rake/rdoctask'

require 'fileutils'

include FileUtils

 

version="0.1.1" #改为你的version

name="yourgem"   #改为你的gem名字

 

spec = Gem::Specification.new do |s|

 s.name = name

 s.version = version

 s.email="your-email@email.com" 

 s.homepage = "http://localhost"

 s.descrīption = s.summary = "xxxxxxxxxxxxx”

 s.author = "xxxx"

 s.add_dependency('gem_plugin', '>=0.2.3')

 

 s.platform = Gem::Platform::RUBY

 s.has_rdoc = true

 s.extra_rdoc_files = ["README"]

 

 

 

 candidates = %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/**/*")

 

 s.files = candidates.delete_if do |item|  #去掉svv和rdoc目录

                      item.include?(".svn") || item.include?("rdoc")

                  end

 

 s.require_path = "lib"

 s.bindir = "bin"

end

 

Rake::GemPackageTask.new(spec) do |p|

 p.need_tar = true if RUBY_PLATFORM !~ /mswin/

end

 

task :install => [:test, :package] do

 sh %{sudo gem install pkg/#{name}-#{version}.gem}

end

 

task :uninstall => [:clean] do

 sh %{sudo gem uninstall #{name}}

end

 

Rake::TestTask.new do |t|

 t.libs << "test"

 t.test_files = FileList['test/test*.rb']

 t.verbose = true

end

 

Rake::RDocTask.new do |rdoc|

 rdoc.rdoc_dir = 'doc/rdoc'

 rdoc.options << '--line-numbers'

 rdoc.rdoc_files.add ['README', 'LICENSE', 'COPYING', 'lib/**/*.rb', 'doc/**/*.rdoc']

end

 

task :default => [:test, :package]

 

CLEAN.include ['build/*', '**/*.o', '**/*.so', '**/*.a', 'lib/*-*', '**/*.log', 'pkg', 'lib/*.bundle', '*.gem', '.config']

 

 

在当前目录运行

Gem build Rakefile

 

运行完成后就会自动生成一个gem,然后你就可以按照gem的语法安装,卸载,升级(可以自己制定gem的地址,或者把它上传到gem plugin的server)这个gem包了

如何制作自己的Ruby gem

如何生成自己的gem,以及如何组织自己的gem结构
  • yangcs2009
  • yangcs2009
  • 2014年12月30日 10:05
  • 3619

如何创建自己的ruby gem包

编写一个最简单的例子 1. 建好如下文件夹 注意:lib目录下必须有个和你gem名字一样的rb文件。 $ cd hola $ tree . ├── hola.gemspec └── li...
  • kucss
  • kucss
  • 2012年02月06日 23:37
  • 8818

Ruby--gem包管理命令

Gem介绍: Gem是一个管理Ruby库和程序的标准包,它通过Ruby Gem(如 http://rubygems.org/ )源来查找、安装、升级和卸载软件包,非常的便捷。 Ruby 1...
  • my_momo_csdn
  • my_momo_csdn
  • 2017年05月22日 09:11
  • 335

Ruby gem包的管理

export HTTP_PROXY=http://xxx.com:xx 1. 配置好Gemfile: gemfile中可以定义项目中必须要安装的包以及相应的版本号,这样就可以避免不同的安装包以及版本...
  • ffeiffei
  • ffeiffei
  • 2014年03月23日 20:47
  • 5231

window7下安装ruby gem包之Mysql2实践

本人已安装mysql5.6和Ruby23-x64,安装方法见百度等资源。本文只讨论安装gem以及对Mysql2的安装。 1、安装gem     1)进入https://rubygems.org/p...
  • u012322855
  • u012322855
  • 2016年09月07日 23:38
  • 1151

ruby gem 本地安装方法

问题: railsinstaller中没有默认带有mysql的gem。 使用railsinstaller安装配置完rails环境后,发现无法使用gem update --system等更新或者安装...
  • sdulibh
  • sdulibh
  • 2015年12月12日 16:26
  • 3681

RubyGems简介和使用 ruby+gem常用命令

RubyGems是一个方便而强大的Ruby程序包管理器( package manager),类似RedHat的RPM.它将一个Ruby应用程序打包到一个gem里,作为一个安装单元。无需安装,最新的Ru...
  • dazhi_100
  • dazhi_100
  • 2014年12月17日 21:12
  • 3932

如何删除RubyGem

如果想安装Ruby on Rails,也许安装Ruby时预装的RubyGem版本根本就不符合要求。那么,就把它卸载了,安装一个符合要求的版本吧。 #ruby -e 'puts $:' 找到 ...
  • taozeyu
  • taozeyu
  • 2013年11月29日 21:51
  • 2560

mac ruby开发 gem install 安装不了问题解决,菜鸟亲测有效

1、gem update –system 2、gem uninstall rubygems-update 3、gem install json
  • u011644473
  • u011644473
  • 2016年11月12日 09:09
  • 882

解决国内ruby gem不能用的问题

最近在安装ruby的时候 执行以下语句失败             如下图: gem update --system来升级gem 原因是ruby 的gem被和谐了,现在淘宝的ruby工...
  • shipeng22022
  • shipeng22022
  • 2016年03月01日 14:05
  • 1632
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ruby创建自己的gem包
举报原因:
原因补充:

(最多只允许输入30个字)