gentok 0.1.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.
- data/.gitignore +2 -0
- data/Rakefile +17 -0
- data/VERSION +1 -0
- data/gentok.gemspec +39 -0
- data/lib/gentok.rb +37 -0
- metadata +67 -0
data/.gitignore
ADDED
data/Rakefile
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
require "rubygems"
|
|
2
|
+
require "rake"
|
|
3
|
+
|
|
4
|
+
begin
|
|
5
|
+
require "jeweler"
|
|
6
|
+
Jeweler::Tasks.new do |gemspec|
|
|
7
|
+
gemspec.name = "gentok"
|
|
8
|
+
gemspec.summary = "Generate a unique token with ActiveRecord, called in a before_create method."
|
|
9
|
+
gemspec.description = "Generate a unique token with ActiveRecord, called in a before_create method."
|
|
10
|
+
gemspec.email = "patrick.elder@me.com"
|
|
11
|
+
gemspec.homepage = "http://github.com/patrickelder/gentok"
|
|
12
|
+
gemspec.authors = ["Patrick Elder"]
|
|
13
|
+
end
|
|
14
|
+
Jeweler::GemcutterTasks.new
|
|
15
|
+
rescue LoadError
|
|
16
|
+
puts "Jeweler is not available. Install it with: sudo gem install jeweler"
|
|
17
|
+
end
|
data/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.1.0
|
data/gentok.gemspec
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Generated by jeweler
|
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
|
4
|
+
# -*- encoding: utf-8 -*-
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |s|
|
|
7
|
+
s.name = %q{gentok}
|
|
8
|
+
s.version = "0.1.0"
|
|
9
|
+
|
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
|
+
s.authors = ["Patrick Elder"]
|
|
12
|
+
s.date = %q{2010-05-01}
|
|
13
|
+
s.description = %q{Generate a unique token with ActiveRecord, called in a before_create method.}
|
|
14
|
+
s.email = %q{patrick.elder@me.com}
|
|
15
|
+
s.files = [
|
|
16
|
+
".gitignore",
|
|
17
|
+
"Rakefile",
|
|
18
|
+
"VERSION",
|
|
19
|
+
"gentok-0.1.0.gem",
|
|
20
|
+
"gentok.gemspec",
|
|
21
|
+
"lib/gentok.rb"
|
|
22
|
+
]
|
|
23
|
+
s.homepage = %q{http://github.com/patrickelder/gentok}
|
|
24
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
|
25
|
+
s.require_paths = ["lib"]
|
|
26
|
+
s.rubygems_version = %q{1.3.6}
|
|
27
|
+
s.summary = %q{Generate a unique token with ActiveRecord, called in a before_create method.}
|
|
28
|
+
|
|
29
|
+
if s.respond_to? :specification_version then
|
|
30
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
|
31
|
+
s.specification_version = 3
|
|
32
|
+
|
|
33
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
|
34
|
+
else
|
|
35
|
+
end
|
|
36
|
+
else
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
data/lib/gentok.rb
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
module Gentok
|
|
2
|
+
def validate_unique value
|
|
3
|
+
begin
|
|
4
|
+
self[value] = yield
|
|
5
|
+
end while self.class.exists? value => self[value]
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
module ClassMethods
|
|
9
|
+
def gentok *args, &block
|
|
10
|
+
opts = {
|
|
11
|
+
:length => 8,
|
|
12
|
+
:chars => ('a'..'z').to_a + ('A'..'Z').to_a
|
|
13
|
+
}
|
|
14
|
+
opts.merge! args.pop if args.last.kind_of? Hash
|
|
15
|
+
args.each do |value|
|
|
16
|
+
before_create do |record|
|
|
17
|
+
if block
|
|
18
|
+
record.validate_unique value, &block
|
|
19
|
+
else
|
|
20
|
+
record.validate_unqiue value do
|
|
21
|
+
Array.new(opts[:length]) { opts[:chars].to_a[rand(options[:chars].to_a.size)] }.join
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end # end before create block
|
|
25
|
+
end # end args block
|
|
26
|
+
end # end function
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.included(receiver)
|
|
30
|
+
receiver.extend ClassMethods
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
class ActiveRecord::Base
|
|
36
|
+
include Gentok
|
|
37
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: gentok
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
prerelease: false
|
|
5
|
+
segments:
|
|
6
|
+
- 0
|
|
7
|
+
- 1
|
|
8
|
+
- 0
|
|
9
|
+
version: 0.1.0
|
|
10
|
+
platform: ruby
|
|
11
|
+
authors:
|
|
12
|
+
- Patrick Elder
|
|
13
|
+
autorequire:
|
|
14
|
+
bindir: bin
|
|
15
|
+
cert_chain: []
|
|
16
|
+
|
|
17
|
+
date: 2010-05-01 00:00:00 -05:00
|
|
18
|
+
default_executable:
|
|
19
|
+
dependencies: []
|
|
20
|
+
|
|
21
|
+
description: Generate a unique token with ActiveRecord, called in a before_create method.
|
|
22
|
+
email: patrick.elder@me.com
|
|
23
|
+
executables: []
|
|
24
|
+
|
|
25
|
+
extensions: []
|
|
26
|
+
|
|
27
|
+
extra_rdoc_files: []
|
|
28
|
+
|
|
29
|
+
files:
|
|
30
|
+
- .gitignore
|
|
31
|
+
- Rakefile
|
|
32
|
+
- VERSION
|
|
33
|
+
- gentok-0.1.0.gem
|
|
34
|
+
- gentok.gemspec
|
|
35
|
+
- lib/gentok.rb
|
|
36
|
+
has_rdoc: true
|
|
37
|
+
homepage: http://github.com/patrickelder/gentok
|
|
38
|
+
licenses: []
|
|
39
|
+
|
|
40
|
+
post_install_message:
|
|
41
|
+
rdoc_options:
|
|
42
|
+
- --charset=UTF-8
|
|
43
|
+
require_paths:
|
|
44
|
+
- lib
|
|
45
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
46
|
+
requirements:
|
|
47
|
+
- - ">="
|
|
48
|
+
- !ruby/object:Gem::Version
|
|
49
|
+
segments:
|
|
50
|
+
- 0
|
|
51
|
+
version: "0"
|
|
52
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
53
|
+
requirements:
|
|
54
|
+
- - ">="
|
|
55
|
+
- !ruby/object:Gem::Version
|
|
56
|
+
segments:
|
|
57
|
+
- 0
|
|
58
|
+
version: "0"
|
|
59
|
+
requirements: []
|
|
60
|
+
|
|
61
|
+
rubyforge_project:
|
|
62
|
+
rubygems_version: 1.3.6
|
|
63
|
+
signing_key:
|
|
64
|
+
specification_version: 3
|
|
65
|
+
summary: Generate a unique token with ActiveRecord, called in a before_create method.
|
|
66
|
+
test_files: []
|
|
67
|
+
|