ruby - 使用什么在 ruby​​ array/hash/set 中存储版本号列表?

标签 ruby

我想根据我们在发布文件夹中的每个版本获取我的软件版本的有序列表。即 /releases/7.1/releases/7.2

# Regexp out the number from the filename
def get_version(filename)
  [0,0] # obviously returns different numbers based on regx
  # {:major => 0, :minor => 0}  # or was thinking about a Hash?
end

versions = [] 
#versions = Array.new() # Is this better? 

Dir.new(basedir).entries.each do |filename|
  versions << get_version(filename) if not File.directory? filename
end

versions.each {|major, minor| puts "#{major}.#{minor}" }

给我我的 list

7.5
7.8
7.9
4.10
7.3
7.11
7.2
7.4
7.6
7.1
7.10

但现在我想命令它们看起来像这样:-

4.10
7.1
7.2
7.3
7.4
7.5
7.6
7.8
7.9
7.10  # I appreciate that these might appear below 7.1, I dont mind too much about that
7.11

Symbol 呢?!

非常感谢。

最佳答案

我建议你使用versionomy gem 。或者如果你不想使用 gem 创建你自己的类并混合在可比较的模块中并实现版本比较(关于如何做到这一点有很多关于 SO 的问题)

关于ruby - 使用什么在 ruby​​ array/hash/set 中存储版本号列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7025883/

相关文章:

ruby-on-rails - 如果你想在生产模式下使用它,如何解决 "You need to add gem ' 守护进程到你的 Gemfile 的错误?

Ruby 类中的类(或模块中的模块)

ruby-on-rails - rails : How to render path to namespaced file

ruby-on-rails - 在测试中创建的模型对象会怎样?

ruby - 为什么这个 Ruby 方法会返回 "void value expression"错误?

ruby-on-rails - 在 Ruby on Rails 中使用服务器停止守护进程

ruby-on-rails - 在单个页面上显示多个 View 文件-Rails

ruby - 如何在 Ruby 期望脚本中使用条件

ruby - 用 Ruby 折叠和柯里化(Currying)

ruby-on-rails - 在实例上重新定义单个方法以调用父类(super class)方法