noid 0.5.0 → 0.5.1

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/VERSION +1 -1
  2. data/lib/noid/minter.rb +15 -18
  3. metadata +9 -9
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.0
1
+ 0.5.1
data/lib/noid/minter.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require 'backports'
2
- require 'backports'
3
2
 
4
3
  module Noid
5
4
  class Minter
@@ -12,29 +11,19 @@ module Noid
12
11
  @template_string = args[:template]
13
12
  @max_counters = args[:max_counters]
14
13
  @counters = args[:counters]
14
+
15
+ @after_mint = args[:after_mint]
15
16
  end
16
17
 
17
18
  ##
18
19
  # Mint a new identifier
19
20
  def mint
20
- n = nil
21
-
22
-
23
- case template.generator
24
- when 's'
25
- n = next_in_sequence
26
- when 'z'
27
- n = next_in_sequence
28
- when 'r'
29
- raise Exception if counters.size == 0
30
- i = @rand.rand(counters.size)
31
- next_in_sequence
32
- n = counters[i][:value]
33
- counters[i][:value] += 1
34
- counters.delete_at(i) if counters[i][:value] == counters[i][:max]
21
+ n = next_in_sequence
22
+ id = template.mint(n)
23
+ if @after_mint
24
+ @after_mint.call(self, id)
35
25
  end
36
-
37
- template.mint(n)
26
+ id
38
27
  end
39
28
 
40
29
  ##
@@ -84,6 +73,14 @@ module Noid
84
73
  def next_in_sequence
85
74
  n = @seq
86
75
  @seq += 1
76
+ case template.generator
77
+ when 'r'
78
+ raise Exception if counters.size == 0
79
+ i = @rand.rand(counters.size)
80
+ n = counters[i][:value]
81
+ counters[i][:value] += 1
82
+ counters.delete_at(i) if counters[i][:value] == counters[i][:max]
83
+ end
87
84
  n
88
85
  end
89
86
 
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.0
4
+ version: 0.5.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: backports
17
- requirement: &2153449260 !ruby/object:Gem::Requirement
17
+ requirement: &2153515780 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2153449260
25
+ version_requirements: *2153515780
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: bundler
28
- requirement: &2153448740 !ruby/object:Gem::Requirement
28
+ requirement: &2153515260 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 1.0.0
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *2153448740
36
+ version_requirements: *2153515260
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: rspec
39
- requirement: &2153448240 !ruby/object:Gem::Requirement
39
+ requirement: &2153514760 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '2.0'
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *2153448240
47
+ version_requirements: *2153514760
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rcov
50
- requirement: &2153447780 !ruby/object:Gem::Requirement
50
+ requirement: &2153514300 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,7 +55,7 @@ dependencies:
55
55
  version: '0'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *2153447780
58
+ version_requirements: *2153514300
59
59
  description: ''
60
60
  email:
61
61
  - chris@cbeer.info