# Unique data

**URL:** <https://www.ruby-forum.com/t/unique-data/69821>\
**Category:** Ruby\
**Created:** [September 24, 2006, 2:27pm UTC](https://www.ruby-forum.com/t/unique-data/69821 "2006-09-24T14:27:06Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![dracos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/ea666f/32.png) [@dracos](https://www.ruby-forum.com/u/dracos)\
**Post date:** [September 24, 2006, 2:27pm UTC](https://www.ruby-forum.com/t/unique-data/69821/1 "2006-09-24T14:27:06Z")

</div>

Hi,

I’d like to use the gem “rubytree” to store some data in a tree.  
But this requires a unique name for each node.

Does anybody has some advice, how to generate such a unique id?  
Could be a random, but unique number, …

Thanks  
Peter

---

<div class="post-metadata">

**Author:** ![dracos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/ea666f/32.png) [@dracos](https://www.ruby-forum.com/u/dracos)\
**Post date:** [September 24, 2006, 3:11pm UTC](https://www.ruby-forum.com/t/unique-data/69821/2 "2006-09-24T15:11:41Z")

</div>

Peter M. wrote:

> Does anybody has some advice, how to generate such a unique id?  
> Could be a random, but unique number, …

Hi Peter,

How about a type-4 UUID?

class UUID  
@@range = %{0123456789abcdef}.split(//)  
@@indices = [7,11,15,19]  
def self.new  
uuid=[]  
32.times { |i|  
uuid \<\< @@range[rand(16)]  
uuid \<\< ‘-’ if @@indices.include?(i)  
}  
uuid.join  
end  
end  
puts UUID.new

Mabye just using the object\_id of the node itself or the object you’re  
inserting into the node would work?

Regards,  
Jordan

---

<div class="post-metadata">

**Author:** ![dracos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/ea666f/32.png) [@dracos](https://www.ruby-forum.com/u/dracos)\
**Post date:** [September 24, 2006, 5:15pm UTC](https://www.ruby-forum.com/t/unique-data/69821/3 "2006-09-24T17:15:56Z")

</div>

Peter M. wrote:

> Hi,
> 
> I’d like to use the gem “rubytree” to store some data in a tree.  
> But this requires a unique name for each node.
> 
> Does anybody has some advice, how to generate such a unique id?  
> Could be a random, but unique number, …

Why not use a counter?

```
robert
```

---

<div class="post-metadata">

**Author:** ![dracos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/ea666f/32.png) [@dracos](https://www.ruby-forum.com/u/dracos)\
**Post date:** [September 24, 2006, 9:36pm UTC](https://www.ruby-forum.com/t/unique-data/69821/4 "2006-09-24T21:36:27Z")

</div>

Robert K. wrote:

> Why not use a counter?

Doh! Curse you rubyists for always thinking of easy ways to do things!  
I’m going to fire up perl5 and write some code, just to spite you! 😉

Regards,  
Jordan
