一、bundler 一個gem架構(gòu)
bundler gem dmy_test_gem

image.png
二、寫lib 和 gemspec 內(nèi)容
lib 里面是gem 的核心功能
# lib/dmy_test_gem.rb
require "dmy_test_gem/version"
require 'time'
# 寫一個將當前日期轉(zhuǎn)換為 星期的方法
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{功能:將當前時間轉(zhuǎn)化為星期}
# 首頁地址
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

image.png
四、發(fā)布到rubygems
這步需要有rubygems的賬號,并且發(fā)布之前一定要先推到github
rake release

image.png
PS: 這里rake release后。顯示到Tag v0.1.0 ... 就不動了。
其實這時是依次輸入:rubygems 的郵箱 然后換行輸入密碼就ok 了
到github搜搜自己的gem,存在說明成功了

成