`
jsntghf
  • 浏览: 2534100 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

创建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 FileUtils

version="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"
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包:

 

gem build Rakefile

 

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

分享到:
评论

相关推荐

    rubygems-3.3.25

    - **创建gem**:开发者可以使用`gem build`命令创建gem包,然后通过`gem push`将其上传到gem服务器。 - **版本策略**:遵循Semantic Versioning(语义化版本),通常格式为`MAJOR.MINOR.PATCH`,每次更新对应功能...

    ruby 2.1.0 gem 包

    Ruby 2.1.0 Gem包是专门为Rails 2.1.0版本定制的,确保与该版本的Rails框架兼容,提供了所有必要的库和工具。 Rails 2.1.0是一个里程碑式的版本,引入了一些显著的改进和新特性,例如: 1. **ActiveRecord查询接口...

    ruby中文 文档

    10. **Gem包管理**:Ruby的Gem系统是其生态系统的核心部分,文档会介绍如何安装、使用和创建Gem包。 11. **Ruby on Rails**:虽然不是Ruby语言本身的一部分,但Ruby on Rails框架的介绍也很常见,它是Ruby应用开发...

    rails-2.1.0-gem包

    这个gem包是Rails 2.1.0版本的源代码和相关库的集合,允许开发者在他们的项目中引入这个特定版本的Rails。下面将详细讨论Rails 2.1.0中的关键特性、改进和对开发者的重要意义。 首先,Rails 2.1.0 引入了Action...

    rails2.3.2gem本地安装包及使用说明

    Gem 是 Ruby 的包管理器,用于安装和管理各种库和框架,包括 Rails。如果你无法通过网络升级或安装 Rails,可以采用本地安装包的方式。以下是对 Rails 2.3.2 Gem 本地安装包及其使用说明的详细解读。 1. **Rails ...

    ruby离线安装所需所有的gem文件(另有安装包)

    这样,即使在没有网络的情况下,你也可以启动Rails服务器,创建和运行你的Web应用程序了。 总之,这个压缩包提供了一种离线方式来安装和配置Ruby和Rails环境,特别适用于网络受限的情况。通过提前下载和准备所有...

    java-gem:用于从 Java 包及其所有依赖项创建 Ruby Gem 的工具

    用于从 Java 包(包括其所有依赖项)创建 Ruby Gem 的命令行工具。 必需的命令行参数: -g, --group Java 库的Maven 组标识符 -n, --name Java 库的名称 -v, --version Java 库的版本 -u, --uber-gem 创建一个包含...

    Ruby中的gem包管理的使用及gem源搭建教程

    Ruby中的gem包管理是开发和使用Ruby应用的关键组成部分。RubyGems是一个强大的工具,它使得开发者...同时,良好的文档和版本控制对于gem的使用者来说是非常重要的,因此在创建gem时,务必提供清晰的README和版本信息。

    ruby gem 命令参考(狂刀整理)

    4. **创建 Gem** - `gem init`: 在当前目录生成一个新的 Gem 结构,包括Gemfile、Gemspec 和其他必需的文件。 - `gem build [gemspec_file]`: 构建 Gem 文件,通常为 `.gemspec` 结尾的文件。 - `gem push [gem_...

    redis-3.0.0.gem

    `redis-3.0.0.gem` 是一个Ruby编程语言的Gem包,它是Redis客户端库的版本3.0.0。Ruby社区使用Gem来管理和分发开源软件库,包括数据库连接器、框架和其他实用工具。这个特定的Gem允许Ruby开发者在他们的应用中与Redis...

    ruby_gem

    7. **本地开发**: 开发者可以创建自己的 Gem 并发布到 RubyGems.org,或者在本地测试 Gem,无需实际发布。 8. **执行脚本**: Gem 中可以包含可执行脚本,它们会被自动添加到 PATH 环境变量中,使得用户可以直接运行...

    DerivaGem 金融软件

    这款软件的核心在于其能够创建和分析复杂的衍生品模型,包括期权树,从而帮助用户计算期权价格、波动率以及其他相关的金融指标。 1. **期权定价**:DerivaGem的核心功能之一是期权定价。它支持各种期权类型,如欧式...

    redis-3.2.12.tar.gz和redis-3.3.3.gem.zip

    `redis-3.3.3.gem`是Redis的一个Ruby gem包,版本为3.3.3。Ruby gem是Ruby语言的包管理器,用于方便地安装和管理Ruby库。这个gem包包含了Redis的Ruby客户端,可以让你在Ruby程序中轻松连接和操作Redis服务。安装...

    Ruby中gem包管理器的用法及用bundler来管理多版本的gem

    Ruby中的gem包管理器是Ruby生态系统的核心组成部分,它允许开发者轻松地安装、更新和管理Ruby库和框架。如同Python中的pip和JavaScript中的npm,gem提供了一种标准化的方式来处理依赖关系和版本控制。以下是对gem包...

    Gem5 FullSystem.docx

    《Gem5全系统仿真模式详解》 Gem5是一款强大的开源仿真工具,被广泛应用于计算机体系结构的研究和系统软件的开发。本章主要聚焦于Gem5的全系统仿真模式(FullSystem Mode),这是一种能够模拟整个硬件系统,包括...

    redis-gem.zip

    1. **安装gem包**:解压`redis-gem.zip`后,进入目录并运行`gem install redis-3.0.0.gem`来安装Redis的Ruby客户端库。 2. **启动Redis实例**:在系统中安装Redis服务器,启动多个实例,每个实例代表集群中的一个...

    gem5目前最新版的源码

    如果你没有物理 Linux 系统,可以使用虚拟机软件如 VirtualBox 或 VMware 创建一个 Linux 虚拟机来运行 `gem5`。 **2. 源码结构** `gem5` 的源码结构清晰,主要分为以下几个部分: - `src/`:核心源代码,包括...

    redis-3.2.1.gem

    在本场景中,我们关注的是 `redis-3.2.1.gem` 文件,这是一个 Ruby 的包,用于在 Ruby 环境中安装和管理 Redis 集群。 Ruby Gem 是 Ruby 语言的软件包管理系统,类似于 Python 的 pip 或 Java 的 Maven。`.gem` ...

    redis-3.0.0.tar和redis-3.0.0.gem.rar

    接下来是`redis-3.0.0.gem`,这是一个Ruby gem包,用于在Ruby环境中搭建Redis集群。Redis Cluster是Redis提供的分布式解决方案,它通过将数据分片到多个节点来实现高可用性和水平扩展。使用此gem包的流程如下: 1. ...

    redis-4.0.1.gem

    "redis-4.0.1.gem" 文件是Redis的一个特定版本(4.0.1)的Ruby Gem包,它是Ruby编程语言中用来安装和管理库和框架的包管理系统。这个Gem包使得在Ruby环境中部署和使用Redis变得更加便捷。 首先,我们来详细了解...

Global site tag (gtag.js) - Google Analytics