has_token_on 1.0.3 → 1.0.4

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/has_token_on.gemspec CHANGED
@@ -18,17 +18,17 @@ Gem::Specification.new do |s|
18
18
  s.extra_rdoc_files = ['README.md']
19
19
  s.require_paths = ['lib']
20
20
 
21
- s.add_dependency 'railties', ['>= 3.0.0']
21
+ s.add_dependency 'railties', ['~> 3.0']
22
22
  s.add_development_dependency 'simple_uuid'
23
23
  s.add_development_dependency 'sqlite3', ['>= 0']
24
- s.add_development_dependency 'rspec', ['>= 2.0.0']
25
- s.add_development_dependency 'mocha', ['>= 0.9.8']
24
+ s.add_development_dependency 'rspec', ['~> 2.0']
25
+ s.add_development_dependency 'mocha', ['~> 0.9.8']
26
26
  s.add_development_dependency 'with_model', ['>= 0.1.4']
27
27
  s.add_development_dependency 'guard', ['>= 0.3.4']
28
28
  s.add_development_dependency 'guard-rspec', ['>= 0']
29
29
  s.add_development_dependency 'growl', ['>= 0']
30
30
  s.add_development_dependency 'rb-fsevent', ['>= 0']
31
31
  s.add_development_dependency 'ruby-debug19', ['>= 0']
32
- s.add_development_dependency 'mongoid', ['>= 2']
32
+ s.add_development_dependency 'mongoid', ['~> 2.0']
33
33
  s.add_development_dependency 'bson_ext', ['>= 1.3.1']
34
34
  end
@@ -9,7 +9,7 @@ module HasTokenOn
9
9
  extend ActiveSupport::Concern
10
10
 
11
11
  included do
12
- after_initialize { |record| create_tokens(record, :initialize) }
12
+ after_initialize { |record| create_tokens(record, :initialize) if record.new_record? }
13
13
  before_create { |record| create_tokens(record, :create) }
14
14
  before_update { |record| create_tokens(record, :update) }
15
15
  end
@@ -130,7 +130,7 @@ module HasTokenOn
130
130
  def tokens_to_build_on(callback)
131
131
  self.class.tokens.select{ |token, config|
132
132
  if config.has_key?(:on)
133
- config[:on].include?(callback)
133
+ [config[:on]].flatten.include?(callback)
134
134
  else
135
135
  # if user didn't specify :on we set token before record create
136
136
  callback == :create
@@ -1,3 +1,3 @@
1
1
  module HasTokenOn
2
- VERSION = '1.0.3'
2
+ VERSION = '1.0.4'
3
3
  end
@@ -31,8 +31,7 @@ describe HasTokenOn::Base, "instantiation" do
31
31
  has_token_on :tkn
32
32
  end
33
33
 
34
- subject.tokens.size.should == 2
35
- subject.tokens.keys == [:permalink, :tkn]
34
+ subject.tokens.keys.should include(:tkn)
36
35
  end
37
36
 
38
37
  it "should allow to set multiple tokens with hash syntax" do
@@ -40,8 +39,7 @@ describe HasTokenOn::Base, "instantiation" do
40
39
  has_token_on :tkn1 => { :length => 3 }, :tkn2 => { :length => 4 }
41
40
  end
42
41
 
43
- subject.tokens.size.should == 4
44
- subject.tokens.keys.should == [:permalink, :tkn, :tkn1, :tkn2]
42
+ subject.tokens.keys.should include(:tkn1, :tkn2)
45
43
  end
46
44
 
47
45
  it "should allow to set multiple tokens with array syntax (same configuration for all)" do
@@ -49,7 +47,6 @@ describe HasTokenOn::Base, "instantiation" do
49
47
  has_token_on [:tkn3, :tkn4], { :length => 10 }
50
48
  end
51
49
 
52
- subject.tokens.size.should == 6
53
50
  subject.tokens.keys.should include(:tkn3, :tkn4)
54
51
  end
55
52
 
@@ -62,6 +59,7 @@ describe HasTokenOn::Base, "callbacks" do
62
59
  with_model :post do
63
60
  table do |t|
64
61
  t.string "permalink_init"
62
+ t.string "permalink_init_hash"
65
63
  t.string "permalink_create"
66
64
  t.string "permalink_update"
67
65
  t.string "permalink_none"
@@ -69,6 +67,7 @@ describe HasTokenOn::Base, "callbacks" do
69
67
 
70
68
  model do
71
69
  has_token_on :permalink_init, { :length => 3, :on => [:initialize] }
70
+ has_token_on :permalink_init_hash, { :length => 3, :on => :initialize }
72
71
  has_token_on :permalink_create, { :length => 3, :on => [:create] }
73
72
  has_token_on :permalink_update, { :length => 3, :on => [:update] }
74
73
  has_token_on :permalink_none, { :length => 3 }
@@ -77,6 +76,7 @@ describe HasTokenOn::Base, "callbacks" do
77
76
 
78
77
  it "should set token on initialize if specified" do
79
78
  subject.permalink_init.should_not be_nil
79
+ subject.permalink_init_hash.should_not be_nil
80
80
  subject.permalink_create.should be_nil
81
81
  subject.permalink_update.should be_nil
82
82
  end
@@ -101,6 +101,12 @@ describe HasTokenOn::Base, "callbacks" do
101
101
  subject.update_attribute(:permalink_init, "sup yo")
102
102
  subject.permalink_none.should_not be_nil
103
103
  end
104
+
105
+ it "should not regenerate tokens on :initialize if record is persisted" do
106
+ permalink = subject.permalink_init
107
+ subject.save
108
+ subject.reload.permalink_init.should == permalink
109
+ end
104
110
  end
105
111
 
106
112
  describe HasTokenOn::Base do
@@ -109,7 +115,7 @@ describe HasTokenOn::Base do
109
115
  with_model :post do
110
116
  table do |t|
111
117
  t.string "permalink"
112
- t.string "test"
118
+ t.string "test_token"
113
119
  t.string "str"
114
120
  t.string "sixteen"
115
121
  t.string "proc_seed"
@@ -127,7 +133,7 @@ describe HasTokenOn::Base do
127
133
  :append => "bar",
128
134
  :on => [:initialize]
129
135
  },
130
- :test => {
136
+ :test_token => {
131
137
  :length => 4,
132
138
  :prepend => "foo",
133
139
  :seed => :simplerandom,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: has_token_on
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,24 +9,24 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-09 00:00:00.000000000 Z
12
+ date: 2012-07-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ! '>='
19
+ - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 3.0.0
21
+ version: '3.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
- - - ! '>='
27
+ - - ~>
28
28
  - !ruby/object:Gem::Version
29
- version: 3.0.0
29
+ version: '3.0'
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: simple_uuid
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -64,23 +64,23 @@ dependencies:
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  none: false
66
66
  requirements:
67
- - - ! '>='
67
+ - - ~>
68
68
  - !ruby/object:Gem::Version
69
- version: 2.0.0
69
+ version: '2.0'
70
70
  type: :development
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
- - - ! '>='
75
+ - - ~>
76
76
  - !ruby/object:Gem::Version
77
- version: 2.0.0
77
+ version: '2.0'
78
78
  - !ruby/object:Gem::Dependency
79
79
  name: mocha
80
80
  requirement: !ruby/object:Gem::Requirement
81
81
  none: false
82
82
  requirements:
83
- - - ! '>='
83
+ - - ~>
84
84
  - !ruby/object:Gem::Version
85
85
  version: 0.9.8
86
86
  type: :development
@@ -88,7 +88,7 @@ dependencies:
88
88
  version_requirements: !ruby/object:Gem::Requirement
89
89
  none: false
90
90
  requirements:
91
- - - ! '>='
91
+ - - ~>
92
92
  - !ruby/object:Gem::Version
93
93
  version: 0.9.8
94
94
  - !ruby/object:Gem::Dependency
@@ -192,17 +192,17 @@ dependencies:
192
192
  requirement: !ruby/object:Gem::Requirement
193
193
  none: false
194
194
  requirements:
195
- - - ! '>='
195
+ - - ~>
196
196
  - !ruby/object:Gem::Version
197
- version: '2'
197
+ version: '2.0'
198
198
  type: :development
199
199
  prerelease: false
200
200
  version_requirements: !ruby/object:Gem::Requirement
201
201
  none: false
202
202
  requirements:
203
- - - ! '>='
203
+ - - ~>
204
204
  - !ruby/object:Gem::Version
205
- version: '2'
205
+ version: '2.0'
206
206
  - !ruby/object:Gem::Dependency
207
207
  name: bson_ext
208
208
  requirement: !ruby/object:Gem::Requirement