最近由于要调用第三方Rest API来获取数据,于是根据自己需求,写了个简单的Gem包:https://github.com/cheenwe/qingting_api,
并打包发布到rubygems.org,以下记录制作的过程.
bundle gem qingting_api [18:01:01]
Creating gem 'qingting_api'...
Code of conduct enabled in config
MIT License enabled in config
create qingting_api/Gemfile
create qingting_api/.gitignore
create qingting_api/lib/qingting_api.rb
create qingting_api/lib/qingting_api/version.rb
create qingting_api/qingting_api.gemspec
create qingting_api/Rakefile
create qingting_api/README.md
create qingting_api/bin/console
create qingting_api/bin/setup
create qingting_api/CODE_OF_CONDUCT.md
create qingting_api/LICENSE.txt
create qingting_api/.travis.yml
Initializing git repo in /home/chenwei/workspace/github/qingting_api/test/qingting_api
修改qingting_api.gemspec内容
把TODO:的部分改为自己的信息
添加自定义 依赖gem, 如: s.add_dependency 'activerecord', ['>= 3.0', '< 5.0']
去掉或者修改一下信息,不然无法上传到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
在lib 目录下进行编码, generators 文件夹是生成 自定义配置文件, 如 config.yml 文件
使用命令如: rails g qingting_api:config
对应调用的配置文件 /lib/qingting_api/config.rb
获取用户access_token 信息在配置文件:/lib/qingting_api/account.rb
以上2个文件内的编码都需要在 lib/qingting_api.rb 内进行 调用,如:
require 'qingting_api/config'
require 'qingting_api/account'
执行: rake build
在 pkg目录下生成 qingting_api-0.1.0.gem
执行: gem push
按照提示进行注册
Enter your RubyGems.org credentials.
Don't have an account yet? Create one at https://rubygems.org/sign_up
Email: gem_author@example
Password:
Signed in.
Pushing gem to RubyGems.org...
Successfully registered gem: qingting_api (0.1.0)
代码修改后可以修改版本信息进行发布, /lib/qingting_api/version.rb
执行: rake release
qingting_api 0.1.4 built to pkg/qingting_api-0.1.4.gem.
Tag v0.1.4 has already been created.
代码会自动同步到 rubygems