记录阿里巴巴QA架构组成长点滴。2008年关键词为效率,技术,影响力!QA/测试架构师定义:开发和设计测试框架测试库;纵横全局的考虑产品的功能,设计复杂的测试系统;负责研发某一项特定的测试技术;为公司考虑如何提高测试效率。领导公司测试技术的发展和测试策略上的方向,关注整个公司的测试部门的问题,前瞻性的考虑未来的版本的测试策略和技术。测试架构师计划/设计测试平台,关注着产品的测试过程,提供咨询服务,影响到公司内的测试机构测试社区,以及开发机构等,对产品各个方面施加深远而正确的影响,最终提高整体软件质量。

[ruby] 创建自己的gem包

上一篇 / 下一篇  2008-10-28 09:45:52 / 个人分类:开源工具与新技术研究

                                       -----by nish

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|  #去掉svvrdoc目录

                      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 pluginserver)这个gem包了

 


TAG: 开源工具与新技术研究

 

评分:0

我来说两句

日历

« 2024-03-24  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 153113
  • 日志数: 163
  • 文件数: 1
  • 建立时间: 2008-02-26
  • 更新时间: 2008-12-10

RSS订阅

Open Toolbar