Variety of improvements and additions:
[selectricity-live] / lib / uniq_token.rb
diff --git a/lib/uniq_token.rb b/lib/uniq_token.rb
new file mode 100644 (file)
index 0000000..ec93546
--- /dev/null
@@ -0,0 +1,25 @@
+require 'digest/md5'
+
+class UniqueTokenGenerator
+  def initialize(length=10)
+    @length = length 
+  end
+
+  # this should probably be rewritten as a class method
+  def token
+    token = ""
+    while token.length < @length
+      seed = ""
+      16.times do
+        seed << ( i = Kernel.rand(62)
+                  i += ((i < 10) ? 48 : ((i < 36) ? 55 : 61 )) ).chr
+      end
+      token << Digest::MD5.hexdigest( seed )
+    end
+    token.slice( 0..@length )
+  end
+end
+
+# debug code
+# puts UniqueTokenGenerator.new(300).token
+

Benjamin Mako Hill || Want to submit a patch?