一、bundler 一个gem架构
bundler gem dmy_test_gem
二、写lib 和 gemspec 内容
lib 里面是gem 的核心功能
# lib/dmy_test_gem.rb
require "dmy_test_gem/version"
require 'time'
# 写一个将当前日期转换为 星期的方法
module DmyTestGem
def self.current_weekday
DateTime.now.strftime("%A")
end
end
gemspec 主要是gem的配置和描述信息
# dmy_test_gem.gemspec
Gem::Specification.new do |spec|
spec.name = "dmy_test_gem"
spec.version = DmyTestGem::VERSION
spec.authors = ["dongmy54"]
spec.email = ["615760433@qq.com"]
spec.summary = %q{学习的gem测试使用}
spec.description = %q{功能:将当前时间转化为星期}
# 首页地址
spec.homepage = "https://github.com/ruby/dmy_test_gem"
spec.license = "MIT"
#注释掉的目的时,允许推到所有host
# 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
# `git ls-files -z`命令会列出当前文件 所有目录
spec.files = `git ls-files -z`.split("\x0").reject do |f|
f.match(%r{^(test|spec|features)/})
end
spec.bindir = "exe"
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = ["lib"]
spec.add_development_dependency "bundler", "~> 1.16"
spec.add_development_dependency "rake", "~> 10.0"
spec.add_development_dependency "rspec", "~> 3.0"
end
三、本地测试这个gem 并推到github仓库
rake build
rake install
image.png
四、发布到rubygems
这步需要有rubygems的账号,并且发布之前一定要先推到github
rake release
PS: 这里rake release后。显示到Tag v0.1.0 ... 就不动了。
其实这时是依次输入:rubygems 的邮箱 然后换行输入密码就ok 了
到github搜搜自己的gem,存在说明成功了
成
网友评论