yml 中未知数量的节点 - 如何解析?

Unknown amount of the nodes in yml - how to parse?

在一个应用程序中我有这个:

def get_debt_for_month(api_requests_count)
  case api_requests_count
  when 0..50
    5
  when 50..100
    9
  when 100..200
    13
  # and so on
  end
end

显然,硬编码并不是一个好主意。我该怎么做?我认为最好的方法是将价格移动到 yml 文件中,但是为什么我要动态解析它,因为案例的数量是未知的并且可能会有所不同?

如果范围内没有间隙,就使用起始值...

# data.yml
0: 5
51: 9
101: 13

然后你的方法...

def get_debt_for_month(api_request_count)
  thresholds = YAML.load_file('data.yml')
  thresholds.sort.select{|e| e[0] <= api_request_count}.last[1]
end