在rails中使用UUIDTools

阅读更多
无意间发现一UUID生成器UUIDTools:http://rubyforge.org/projects/uuidtools/,可以从这里下载http://rubyforge.org/frs/?group_id=914。它本身就是个plugin,所以并不需要我们做什么额外的事情,只需要放到vendorpluginsuuidtools下,然后在需要用的地方require进来就可以了
ex:
  def getFileName(filename)
     if !filename.nil?
       require 'uuidtools'
       filename.sub(/.*./,UUID.random_create.to_s+'.')
     end
  end


readme.txt中的使用说明
  UUID.md5_create(UUID_DNS_NAMESPACE, "www.widgets.com")
  => #
  UUID.sha1_create(UUID_DNS_NAMESPACE, "www.widgets.com")
  => #
  UUID.timestamp_create
  => #
  UUID.random_create
  => #


看一下它的测试用类:


require 'test/unit'
require 'uuidtools'

class CreateTest < Test::Unit::TestCase
  def setup
  end
  
  def test_sha1_create
    assert_equal(
      "f2d04685-b787-55da-8644-9bd28a6f5a53",
      UUID.sha1_create(UUID_URL_NAMESPACE, 'http://sporkmonger.com').to_s)
  end

  def test_md5_create
    assert_equal(
      "15074785-9071-3fe3-89bd-876e4b9e919b",
      UUID.md5_create(UUID_URL_NAMESPACE, 'http://sporkmonger.com').to_s)
  end
  
  def test_timestamp_create
    assert_not_equal(
      UUID.timestamp_create.to_s,
      UUID.timestamp_create.to_s)
    current_time = Time.now
    assert_not_equal(
      UUID.timestamp_create(current_time).to_s,
      UUID.timestamp_create(current_time).to_s)
    uuids = []
    1000.times do
      uuids << UUID.timestamp_create
    end
    assert_equal(uuids.size, (uuids.map {|x| x.to_s}).uniq.size,
      "Duplicate timestamp-based UUID generated.")
  end

  def test_random_create
    assert_not_equal(
      UUID.random_create.to_s,
      UUID.random_create.to_s)
  end
end
  • 描述: UUIDTools 生成的UUID
  • 大小: 31.7 KB
  • 查看图片附件

你可能感兴趣的:(Rails)