从PHP切换到Rails需要帮助翻译URL缩短器


Switching from PHP to Rails Need Help translating URL shortener

以前的开发人员使用这个网站的源代码来创建URL缩短器。我的主要任务是将这段代码翻译成ruby:

function getIDFromShortenedURL1 ($string, $base = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
{
    $length = strlen($base);
    $size = strlen($string) - 1;
    $string = str_split($string);
    $out = strpos($base, array_pop($string));
    foreach($string as $i => $char)
    {
        $out += strpos($base, $char) * pow($length, $size - $i);
    }
    return $out;
}

我是ruby新手,任何帮助都将非常感激:)

这基本上相当于直接移植PHP代码。

def getIDFromShortenedURL1(string, base = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
  length = base.length         # $length = strlen($base);
  size   = string.length - 1   # $size   = strlen($string) - 1;
  string = string.split ''     # $string = str_split($string);
  out = base.index string.pop  # $out = strpos($base, array_pop($string));
  string.each_with_index do |char, i|  # foreach($string as $i => $char);
    # $out += strpos($base, $char) * pow($length, $size - $i);
    out << base.index(char) * (length ** (size - i))
  end
  out # return $out;
end

代码和一个非常基本的测试的结果(确保功能是相等的)可以在https://gist.github.com/941152找到。