noid 0.5.2 → 0.5.3
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/VERSION +1 -1
- data/lib/noid/minter.rb +7 -7
- data/spec/lib/minter_spec.rb +18 -5
- metadata +12 -13
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.3
|
data/lib/noid/minter.rb
CHANGED
@@ -38,18 +38,18 @@ module Noid
|
|
38
38
|
# @param [String] id
|
39
39
|
# @return bool
|
40
40
|
def valid? id
|
41
|
-
prefix = id[0..@prefix.length-1]
|
42
|
-
ch = id[@prefix.length..-1].split('')
|
43
|
-
check = ch.pop if @
|
44
|
-
return false unless prefix == @prefix
|
41
|
+
prefix = @template.prefix.empty? ? '' : id[0..@template.prefix.length-1]
|
42
|
+
ch = @template.prefix.empty? ? id.split('') : id[@template.prefix.length..-1].split('')
|
43
|
+
check = ch.pop if @template.checkdigit?
|
44
|
+
return false unless prefix == @template.prefix
|
45
45
|
|
46
|
-
return false unless @characters.length == ch.length
|
47
|
-
@characters.each_with_index do |c, i|
|
46
|
+
return false unless @template.characters.length == ch.length
|
47
|
+
@template.characters.each_with_index do |c, i|
|
48
48
|
return false unless Noid::XDIGIT.include? ch[i]
|
49
49
|
return false if c == 'd' and ch[i] =~ /[^\d]/
|
50
50
|
end
|
51
51
|
|
52
|
-
return false unless check.nil? or check == checkdigit(id[0..-2])
|
52
|
+
return false unless check.nil? or check == @template.checkdigit(id[0..-2])
|
53
53
|
|
54
54
|
true
|
55
55
|
end
|
data/spec/lib/minter_spec.rb
CHANGED
@@ -93,15 +93,28 @@ describe Noid::Minter do
|
|
93
93
|
minter.mint.should =~ /63q\w\d\w\w/
|
94
94
|
end
|
95
95
|
|
96
|
+
describe "validate" do
|
97
|
+
it "should validate a prefixed identifier" do
|
98
|
+
minter = Noid::Minter.new(:template => "foobar.redek")
|
99
|
+
id = minter.mint
|
100
|
+
minter.valid?(id).should be_true
|
101
|
+
end
|
102
|
+
it "should validate a prefixless identifier" do
|
103
|
+
minter = Noid::Minter.new(:template => ".redek")
|
104
|
+
id = minter.mint
|
105
|
+
minter.valid?(id).should be_true
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
96
109
|
describe "seed" do
|
97
110
|
it "given a specific seed, identifiers should be replicable" do
|
98
111
|
minter = Noid::Minter.new(:template => "63q.redek")
|
99
|
-
minter.seed(
|
100
|
-
minter.mint.should == "
|
101
|
-
|
112
|
+
minter.seed(1)
|
113
|
+
minter.mint.should == "63q3706"
|
114
|
+
|
102
115
|
minter = Noid::Minter.new(:template => "63q.redek")
|
103
|
-
minter.seed(
|
104
|
-
minter.mint.should == "
|
116
|
+
minter.seed(1)
|
117
|
+
minter.mint.should == "63q3706"
|
105
118
|
end
|
106
119
|
|
107
120
|
it "given a specific seed and sequence, identifiers should be replicable" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: noid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
13
|
-
default_executable:
|
12
|
+
date: 2012-01-27 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: backports
|
17
|
-
requirement: &
|
16
|
+
requirement: &2156059240 !ruby/object:Gem::Requirement
|
18
17
|
none: false
|
19
18
|
requirements:
|
20
19
|
- - ! '>='
|
@@ -22,10 +21,10 @@ dependencies:
|
|
22
21
|
version: '0'
|
23
22
|
type: :runtime
|
24
23
|
prerelease: false
|
25
|
-
version_requirements: *
|
24
|
+
version_requirements: *2156059240
|
26
25
|
- !ruby/object:Gem::Dependency
|
27
26
|
name: bundler
|
28
|
-
requirement: &
|
27
|
+
requirement: &2156058720 !ruby/object:Gem::Requirement
|
29
28
|
none: false
|
30
29
|
requirements:
|
31
30
|
- - ~>
|
@@ -33,10 +32,10 @@ dependencies:
|
|
33
32
|
version: 1.0.0
|
34
33
|
type: :development
|
35
34
|
prerelease: false
|
36
|
-
version_requirements: *
|
35
|
+
version_requirements: *2156058720
|
37
36
|
- !ruby/object:Gem::Dependency
|
38
37
|
name: rspec
|
39
|
-
requirement: &
|
38
|
+
requirement: &2156058200 !ruby/object:Gem::Requirement
|
40
39
|
none: false
|
41
40
|
requirements:
|
42
41
|
- - ! '>='
|
@@ -44,10 +43,10 @@ dependencies:
|
|
44
43
|
version: '2.0'
|
45
44
|
type: :development
|
46
45
|
prerelease: false
|
47
|
-
version_requirements: *
|
46
|
+
version_requirements: *2156058200
|
48
47
|
- !ruby/object:Gem::Dependency
|
49
48
|
name: rcov
|
50
|
-
requirement: &
|
49
|
+
requirement: &2156057420 !ruby/object:Gem::Requirement
|
51
50
|
none: false
|
52
51
|
requirements:
|
53
52
|
- - ! '>='
|
@@ -55,7 +54,7 @@ dependencies:
|
|
55
54
|
version: '0'
|
56
55
|
type: :development
|
57
56
|
prerelease: false
|
58
|
-
version_requirements: *
|
57
|
+
version_requirements: *2156057420
|
59
58
|
description: ''
|
60
59
|
email:
|
61
60
|
- chris@cbeer.info
|
@@ -76,7 +75,6 @@ files:
|
|
76
75
|
- noid.gemspec
|
77
76
|
- spec/lib/minter_spec.rb
|
78
77
|
- spec/spec_helper.rb
|
79
|
-
has_rdoc: true
|
80
78
|
homepage: http://github.com/microservices/noid
|
81
79
|
licenses: []
|
82
80
|
post_install_message:
|
@@ -97,10 +95,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
95
|
version: '0'
|
98
96
|
requirements: []
|
99
97
|
rubyforge_project: noid
|
100
|
-
rubygems_version: 1.
|
98
|
+
rubygems_version: 1.8.10
|
101
99
|
signing_key:
|
102
100
|
specification_version: 3
|
103
101
|
summary: Nice Opaque Identifier
|
104
102
|
test_files:
|
105
103
|
- spec/lib/minter_spec.rb
|
106
104
|
- spec/spec_helper.rb
|
105
|
+
has_rdoc:
|