Ruby on rails Ruby迭代版本号
我正在构建一条管道,将gem部署到Rubygems。一般的共识是,它将读取github库中的一个更改,并在版本中迭代次要的内容。我正在努力想出一个方法来实现这一点,目前,makefile将用于执行迭代version.rb文件的内容: 例如:makedeployupdate=minor 或者类似的东西,但我不确定如何以“ruby”的方式迭代该文件,而不是像修改另一个文本文件一样尝试修改它 当前版本文件如下所示:Ruby on rails Ruby迭代版本号,ruby-on-rails,ruby,makefile,Ruby On Rails,Ruby,Makefile,我正在构建一条管道,将gem部署到Rubygems。一般的共识是,它将读取github库中的一个更改,并在版本中迭代次要的内容。我正在努力想出一个方法来实现这一点,目前,makefile将用于执行迭代version.rb文件的内容: 例如:makedeployupdate=minor 或者类似的东西,但我不确定如何以“ruby”的方式迭代该文件,而不是像修改另一个文本文件一样尝试修改它 当前版本文件如下所示: module Pugin release_no = 0 patch_no =
module Pugin
release_no = 0
patch_no = 1
hotfix_no = 0
VERSION = release_no.to_s + "." + patch_no.to_s + "." + hotfix_no.to_s
end
最简单的方法可能是将纯版本移动到文本文件中,然后在version.rb中读取它 version.txt:
"1.2.3"
pugin.rb:
module Pugin
VERSION = File.read("version.txt").split("\n").first
end
要增加版本,请使用解析版本的ruby脚本:
major, minor, patch = File.read("version.txt").
split("\n").
first.
split(".").
map(&:to_i)
然后,您可以轻松地增加所需的零件,并将其写回文件
minor += 1
File.open("version.txt", "wb") {|f| f.write("#{major}.#{minor}.#{patch}")}
最简单的方法可能是将纯版本移动到文本文件中,然后在version.rb中读取它 version.txt:
"1.2.3"
pugin.rb:
module Pugin
VERSION = File.read("version.txt").split("\n").first
end
要增加版本,请使用解析版本的ruby脚本:
major, minor, patch = File.read("version.txt").
split("\n").
first.
split(".").
map(&:to_i)
然后,您可以轻松地增加所需的零件,并将其写回文件
minor += 1
File.open("version.txt", "wb") {|f| f.write("#{major}.#{minor}.#{patch}")}
没有理由重新发明轮子,有:
我相信你有这个想法。没有理由重新发明轮子,有:
我相信你有这个想法。在最后一行使用字符串插值或数组连接会更为习惯,即{release_no}.{patch_no}.{hotfix_no}或[release_no,patch_no,hotfix_no].join'。我会使用主、次、补丁而不是局部变量。在最后一行使用字符串插值或Arrayjoin更为惯用,即{release_no}.{PATCH_no}.{hotfix_no}或[release_no,PATCH_no,hotfix_no].join'。我会用主变量,次变量,补丁代替局部变量。