class MapTool::Tag
Usage
Constants
- TAG_FILE
Attributes
name[RW]
stage[RW]
suffix[RW]
version[RW]
Public Class Methods
new(argv)
click to toggle source
初始化
Calls superclass method
# File lib/maptool/tag/tag.rb, line 39 def initialize(argv) super self.version = argv.option('version') self.stage = argv.option('stage') self.suffix = argv.option('suffix') end
options()
click to toggle source
Calls superclass method
MapTool::Command::options
# File lib/maptool/tag/tag.rb, line 25 def self.options [['--version', '版本号:x.xx.xxx,默认 1.00.000'], ['--stage', '用于区分是否正式: 开发阶段/提测后 (dev/release),默认 release'], ['--suffix', '可扩展的后缀']] + super end
Public Instance Methods
commit_file()
click to toggle source
# File lib/maptool/tag/tag.rb, line 81 def commit_file puts "update #{TAG_FILE}".green localChanges = !(`git stash` =~ /No local changes to save/) self.write_file `git add .` `git commit -m "update #{TAG_FILE}"` `git push` `git stash pop` if localChanges end
commit_tag()
click to toggle source
# File lib/maptool/tag/tag.rb, line 100 def commit_tag tag = "#{self.name}-#{self.version}-" tag << "#{self.stage}-" if self.stage && self.stage.size > 0 tag << Time.now.strftime("%Y%m%d%H%M") tag << "-#{self.suffix}" if self.suffix && self.suffix.size > 0 puts "build tag #{tag}".green system("yjcocoa git tag --add=#{tag}") end
read_file()
click to toggle source
# File lib/maptool/tag/tag.rb, line 73 def read_file hash = JSON.parse(File.read(TAG_FILE)) self.name = hash["name"] self.version = hash["version"] unless self.version self.stage = hash["stage"] unless self.stage self.suffix = hash["suffix"] unless self.suffix end
run()
click to toggle source
# File lib/maptool/tag/tag.rb, line 59 def run if File.exist?(TAG_FILE) # 文件存在 save = self.version || self.stage || self.suffix self.read_file self.commit_file if save else self.name = File.basename(Dir.pwd) self.version = "1.00.000" unless self.version self.stage = "release" unless self.stage self.commit_file end self.commit_tag end
validate!()
click to toggle source
businrss
Calls superclass method
# File lib/maptool/tag/tag.rb, line 47 def validate! super unless File.exist?('.git') puts "需在项目根目录执行".red self.banner! end if self.version && self.version.size < 8 #x.xx.xxx puts "版本号 #{self.version} 不符合规范 x.xx.xxx".red self.banner! end end
write_file()
click to toggle source
# File lib/maptool/tag/tag.rb, line 91 def write_file params = {} params["name"] = self.name params["version"] = self.version params["stage"] = self.stage params["suffix"] = self.suffix File.write(TAG_FILE, JSON.pretty_generate(params)) end