创建自定义的Ruby gem包的教程_ruby专题

编写一个最简单的例子

1. 建好如下文件夹

注意:lib目录下必须有个和你gem名字一样的rb文件。

复制代码 代码如下:

    $ cd hola 
    $ tree 
    . 
    ├── hola.gemspec 
    └── lib 
        └── hola.rb 

2. 编写代码

. hola.rb

  % cat lib/hola.rb
  class Hola
   def self.hi
    puts "Hello world!"
   end
  end

.hola.gemspec

  % cat hola.gemspec
  Gem::Specification.new do |s|
   s.name    = 'hola'
   s.version   = '0.0.0'
   s.date    = '2010-04-28'
   s.summary   = "Hola!"
   s.description = "A simple hello world gem"
   s.authors   = ["Nick Quaranto"]
   s.email    = 'nick@quaran.to'
   s.files    = ["lib/hola.rb"]
   s.homepage  =
    'http://rubygems.org/gems/hola'
  end

这里面可以设置很多属性。我会专门写篇文章介绍。

上面字段的意思,比较简单。相信大家都能理解。


3.编译生成gem

  % gem build hola.gemspec
  Successfully built RubyGem
  Name: hola
  Version: 0.0.0
  File: hola-0.0.0.gem 

  % gem install ./hola-0.0.0.gem
  Successfully installed hola-0.0.0
  1 gem installed

4.测试使用

  % irb
  >> require 'hola'
  => true
  >> Hola.hi
  Hello world!

注意:在ruby 1.9.2之前到版本里面,需要先require 'rubygem',才能使用我们写的gem.

5.发布到rubygems网站

  $ curl -u tom https://rubygems.org/api/v1/api_key.yaml >
  ~/.gem/credentials
  Enter host password for user 'tom':

设定完之后发布

  % gem push hola-0.0.0.gem
  Pushing gem to RubyGems.org...
  Successfully registered gem: hola (0.0.0)

发布成功。

这样任何一个人都可以使用你写的gem了。

稍微复杂的rubygem例子

上面的例子只有一个ruby文件,一般gem应该没有这么简单的。

下面说下有多个ruby文件该怎么写。

1. 目录结构

多了个hola目录和translator.rb文件

  % tree
  .
  ├── hola.gemspec
  └── lib
    ├── hola
    │  └── translator.rb
    └── hola.rb

2. 代码

lib/hola/translator.rb

  % cat lib/hola/translator.rb
  class Hola::Translator
   def initialize(language)
    @language = language
   end 

   def hi
    case @language
    when :spanish
     "hola mundo"
    else
     "hello world"
    end
   end
  end

lib/hola.rb

  % cat lib/hola.rb
  class Hola
   def self.hi(language = :english)
    translator = Translator.new(language)
    translator.hi
   end
  end 

  require 'hola/translator'

.hola.gemspec

  % cat hola.gemspec
  Gem::Specification.new do |s|
   s.name    = 'hola'
   s.version   = '0.0.0'
   s.date    = '2010-04-28'
   s.summary   = "Hola!"
   s.description = "A simple hello world gem"
   s.authors   = ["Nick Quaranto"]
   s.email    = 'nick@quaran.to'
   s.files    = ["lib/hola.rb", "lib/hola/translator.rb"]
   s.homepage  =
    'http://rubygems.org/gems/hola'
  end 

红色是和上面不一样的地方。

其他步骤和上面一样了。很简单吧!

最后说下怎么写个 gem包含可执行文件的例子。

这个也很简单。像rake就是典型的包含可执行文件的gem.

1. 在刚才工程目录下建个bin文件夹

生成可执行文件,并且修改权限为可运行。

  % mkdir bin
  % touch bin/hola
  % chmod a+x bin/hola

2. 修改可执行文件内容
bin/hola

  #!/usr/bin/env ruby 

  require 'hola'
  puts Hola.hi(ARGV[0]) 

测试下

  % ruby -Ilib ./bin/hola
  hello world 

  % ruby -Ilib ./bin/hola spanish
  hola mundo 

3 .最后修改gemspec

  % head -4 hola.gemspec
  Gem::Specification.new do |s|
   s.name    = 'hola'
   s.version   = '0.0.1'
   s.executables << 'hola' 

其他就和上面一样了。很简单吧。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索ruby
rails
ruby gem、ruby gem 安装、ruby gem是什么、ruby gem 源、ruby redis gem 安装,以便于您获取更多的相关知识。

时间: 2024-09-24 11:38:41

创建自定义的Ruby gem包的教程_ruby专题的相关文章

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

熟练使用RubyGemsRubyGems是Ruby的插件管理系统,可以轻松安装及管理Ruby函式库.可以在RubyGems上找到所有开源套件. ###常见指令 gem -v 查看RubyGems的版本 gem update --system 升级RubyGems的版本 gem install gem_name 安装某个插件 gem install -v x.x.x gem_name 安装指定版本的插件 gem list 列出安装的套件 gem update gem_name 更新某个插件 gem

在Docker中自动化部署Ruby on Rails的教程_ruby专题

基本的Rails应用程序 现在让我们启动一个基本的Rails应用.为了更好的展示,我使用Ruby 2.2.0和Rails 4.1.1 在终端运行: $ rvm use 2.2.0 $ rails new && cd docker-test 创建一个基本的控制器: $ rails g controller welcome index --,然后编辑 routes.rb ,以便让该项目的根指向我们新创建的welcome#index方法: root 'welcome#index' 在终端运行 r

Ruby on Rails实现最基本的用户注册和登录功能的教程_ruby专题

在 Rails 实现用户注册和登录功能是非常方便的,比如可以使用 Devise 这类实现了完整功能的 gem 扩展包.也可以使用 Rails 自带的 has_secure_password 来自已打造.下面就是尝试使用 has_secure_password 来实现用户注册和登录功能. 准备工作 创建项目: rails new user_login has_secure_password 中加密的功能需要用到 bcrypt ,所以需要在项目中启用 bcrypt gem 包.进入项目目录,修改 G

Windows下Ruby on Rails开发环境安装配置图文教程_ruby专题

本文详细介绍如何在Windows配置Ruby on Rails 开发环境,希望对ROR初学者能有帮助. 一.下载并安装Ruby Windows下安装Ruby最好选择 RubyInstaller(一键安装包). 下载地址: http://rubyforge.org/frs/?group_id=167 . 我们这里下载目前较新的rubyinstaller-1.9.3-p0.exe 一键安装包.这个安装包除了包含ruby本身,还有许多有用的扩展(比如gems)和 帮助文档. 双击安装,安装过程出现如下

使用Ruby来处理文本的教程_ruby专题

与 Perl 和 Python 类似,Ruby 拥有出色的功能,是一种强大的文本处理语言.本文简单介绍了 Ruby 的文本数据处理功能,以及如何使用 Ruby 语言有效处理不同格式的文本数据,无论是 CSV 数据还是 XML 数据. Ruby 字符串常用缩略词     CSV:逗号分隔值     REXML:Ruby Electric XML     XML:可扩展标记语言 Ruby 中的 String 是容纳.比较和操作文本数据的一种强大方法.在 Ruby 中,String 是一个类,可以通过

使用Ruby编写脚本进行系统管理的教程_ruby专题

简介 Ruby 是一种功能极其丰富的.免费的.简单的.可扩展的.可移植的.面向对象的脚本编程语言.最近,它在 Web 领域广受欢迎.这在一定程度上要归因于非常强大的 Web 应用程序开发框架 Rails,Rails 正是用 Ruby 编写的.Rails,也称 Ruby on Rails(ROR),顾名思义,它为快速.有效地开发 Web 应用程序提供一个非常强大的平台.它是高度可伸缩的,Web 上有很多站点就是用 Ruby on Rails 构建的. 除了与 Rails 一起用作 Web 应用程序

在Ruby程序中连接数据库的详细教程_ruby专题

本章节将向您讲解如何使用 Ruby 访问数据库.Ruby DBI 模块为 Ruby 脚本提供了类似于 Perl DBI 模块的独立于数据库的接口. DBI 即 Database independent interface,代表了 Ruby 独立于数据库的接口.DBI 在 Ruby 代码与底层数据库之间提供了一个抽象层,允许您简单地实现数据库切换.它定义了一系列方法.变量和规范,提供了一个独立于数据库的一致的数据库接口. DBI 可与下列进行交互:     ADO (ActiveX Data Ob

使用Ruby来处理JSON的简单教程_ruby专题

环境配置 在使用 Ruby 编码或解码 JSON 数据前,我们需要先安装 Ruby JSON 模块.在安装该模块前你需要先安装 Ruby gem,我们使用 Ruby gem 安装 JSON 模块. 但是,如果你使用的是最新版本的 Ruby,可能已经安装了 gem,解析来我们就可以使用以下命令来安装Ruby JSON 模块: $gem install json 使用 Ruby 解析 JSON 以下为JSON数据,将该数据存储在 input.json 文件中: { "President":

ruby 数组使用教程_ruby专题

你通过在方括号里列出元素并用逗号将它们相互隔开来创建一个数组. Ruby的数组可以适应不同的对象类型 ruby> ary = [1, 2, "3"]    [1, 2, "3"]   就像前面提到的字符串一样.数组也可以相乘或相加 ruby> ary + ["foo", "bar"]    [1, 2, "3", "foo", "bar"] ruby>