在rails中使用UUIDTools

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

readme.txt中的使用说明
[code] UUID.md5_create(UUID_DNS_NAMESPACE, "www.widgets.com")
=> #<UUID:0x287576 UUID:3d813cbb-47fb-32ba-91df-831e1593ac29>
UUID.sha1_create(UUID_DNS_NAMESPACE, "www.widgets.com")
=> #<UUID:0x2a0116 UUID:21f7f8de-8051-5b89-8680-0195ef798b6a>
UUID.timestamp_create
=> #<UUID:0x2adfdc UUID:64a5189c-25b3-11da-a97b-00c04fd430c8>
UUID.random_create
=> #<UUID:0x19013a UUID:984265dc-4200-4f02-ae70-fe4f48964159>[/code]

看一下它的测试用类:


[code]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[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值