Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby迭代版本号_Ruby On Rails_Ruby_Makefile - Fatal编程技术网

Ruby on rails 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 =

我正在构建一条管道,将gem部署到Rubygems。一般的共识是,它将读取github库中的一个更改,并在版本中迭代次要的内容。我正在努力想出一个方法来实现这一点,目前,makefile将用于执行迭代version.rb文件的内容:

例如:makedeployupdate=minor

或者类似的东西,但我不确定如何以“ruby”的方式迭代该文件,而不是像修改另一个文本文件一样尝试修改它

当前版本文件如下所示:

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'。我会用主变量,次变量,补丁代替局部变量。