美文网首页
自己创建Gem包

自己创建Gem包

作者: rubywine | 来源:发表于2018-11-28 14:35 被阅读60次

    分2部分

    1. gem包开发
    2. gem包发布及引用

    1. gem包开发

    1-1. 创建gem包项目

    bundler gem xxxx
    

    1-2. 进入gem包项目,改修.gemspec文件。

    1-2-1. 填写替换其中的summary、description。这2处的TODO: 必须去掉,否则不能编译
    spec.summary       = %q{TODO: Write a short summary, because Rubygems requires one.}
    spec.description   = %q{TODO: Write a longer description or delete this line.}
    
    1-2-2. 替换或清空homepage。必须填写或者清空,否则发布到rubygems.org时会无法通过
    spec.homepage      = "TODO: Put your gem's website or public repo URL here."
    
    1-2-3. 屏蔽下面代码(respond_to部分)。必须填写有效域名或者屏蔽,否则发布到rubygems.org时会无法通过
      if spec.respond_to?(:metadata)
        spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
      else
        raise "RubyGems 2.0 or newer is required to protect against " \
          "public gem pushes."
      end
    
    1-2-4. 添加依赖包。参照下面格式添加
    spec.add_development_dependency "bundler", "~> 1.15"
    spec.add_development_dependency "rake", "~> 10.0"
    

    1-3. 开发自己的gem包代码

    1-3-1. 引入自定义class文件

    新gem默认为类型为module,如果需要引入class,可以将class文件直接放入lib/xxxx目录下,并在lib/xxxx.rb入口文件引入:

    require "yyyy"
    
    1-3-2. 如果需要将包名与引入class名同步,则需要将以下2处位置进行修改:

    lib/xxxx.rb 入口中的'module'改为'class'
    lib/xxxx/version.rb中的'module'改为'class'

    1-4. 编译gem

    rake build
    

    1-5. 安装gem(相当于先编译,后安装)

    rake install
    

    1-6. 测试gem

    bin/console
    或者
    irb
    

    进入ruby控制台,然后引入gem

    require 'xxxx'
    

    引入后即可执行gem中的方法进行测试

    2. gem包发布、安装及引用

    2-1. 本地安装引用

    2-1-1. 如果已经编译成gem文件,则可直接单独使用命令安装
    gem install --local xxxx
    
    2-1-2. 如果是gem文件夹,则可放到项目的vendor/gems目录下,然后在Gemfile中增加:
    gem 'xxxx', path: 'vendor/gems/xxxx'
    

    这样在bundle install时,就能直接安装

    2-2. 通过rubygems安装

    2-2-1. 注册rubygems

    访问https://rubygems.org,并注册

    2-2-2. 发布自己的gems,在gem项目目录下,执行以下命令
    gem push pkg/xxxx-0.1.0.gem
    

    等待更新完即可通过rubygems.org进行外网安装,至于同步到其他镜像则由镜像同步频率来决定。

    2-3. rubygems上gem包删除

    gem yank xxxx -v 0.1.0
    

    删除后rubygems.org上将找不到该版本

    2-4. rubygems上gem包更新

    2-4-1. 每次更新必须更换版本号,即改修lib/xxxx/version.rb中的版本号
    2-4-2. 重复版本号不允许重复发布,就算已经删除,也是不允许的

    *** 今后如有补充会继续更新

    相关文章

      网友评论

          本文标题:自己创建Gem包

          本文链接:https://www.haomeiwen.com/subject/psbaqqtx.html