suid 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. data/README.markdown +33 -0
  2. data/spec/suid_spec.rb +21 -0
  3. metadata +55 -0
data/README.markdown ADDED
@@ -0,0 +1,33 @@
1
+ ## SUID : A gem to generate sorta unique IDs
2
+
3
+ github: http://github.com/dburkes/suid
4
+
5
+ ## Intro
6
+
7
+ SUIDs are sorta unique IDs. A SUID is similar to a UUID, except that SUIDs
8
+
9
+ * Are only 11 characters long
10
+
11
+ * Are semi human-readable
12
+
13
+ * Don't make URLs look ridiculous
14
+
15
+ A SUID consists of 11 characters from the set [A-Za-z0-9], so the resulting namespace can hold 62^11 unique values. That's a lot smaller
16
+ namespace than UUIDs, but, if it's good enough for YouTube URLs, I'm willing to bet it's good enough for a lot of other things too.
17
+
18
+ ## Installation
19
+
20
+ gem install suid
21
+
22
+ ## Usage
23
+
24
+ SUID.generate => "bEsrB0H2yw1"
25
+
26
+ suid = SUID.new
27
+ suid.to_s => "kwNr8FMYAaO"
28
+ suit.to_i => 17229968328302299310
29
+
30
+ ## Notes
31
+
32
+ * You can seed the random number generator if you want with `srand`, but ruby does that automatically when it starts up, so, unless
33
+ you purposefully want to create duplicate SUIDs, don't bother.
data/spec/suid_spec.rb ADDED
@@ -0,0 +1,21 @@
1
+ require 'lib/suid'
2
+
3
+ describe SUID do
4
+ it "should generate sorta unique ids" do
5
+ lambda { SUID.generate }.should_not raise_error
6
+ end
7
+
8
+ it "should not generate duplicates in a decent size set" do
9
+ suids = []
10
+ 1000.times { suids << SUID.generate }
11
+ suids.size.should == suids.uniq.size
12
+ end
13
+
14
+ it "should generate duplicate suids if instructed to do so" do
15
+ srand(0xf00)
16
+ s1 = SUID.generate
17
+ srand(0xf00)
18
+ s2 = SUID.generate
19
+ s1.should == s1
20
+ end
21
+ end
metadata ADDED
@@ -0,0 +1,55 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: suid
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Danny Burkes
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-11-20 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Sorta Unique ID
17
+ email: dburkes@netable.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - README.markdown
24
+ files:
25
+ - README.markdown
26
+ has_rdoc: true
27
+ homepage: http://github.com/dburkes/suid
28
+ licenses: []
29
+
30
+ post_install_message:
31
+ rdoc_options:
32
+ - --charset=UTF-8
33
+ require_paths:
34
+ - lib
35
+ required_ruby_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: "0"
40
+ version:
41
+ required_rubygems_version: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: "0"
46
+ version:
47
+ requirements: []
48
+
49
+ rubyforge_project:
50
+ rubygems_version: 1.3.5
51
+ signing_key:
52
+ specification_version: 3
53
+ summary: Sorta Unique ID
54
+ test_files:
55
+ - spec/suid_spec.rb