has_token_on 0.2.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1 +1,2 @@
1
1
  Gemfile.lock
2
+ *.gem
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # HasTokenOn
2
2
 
3
- Simple yet customizable token generator for Rails 3
3
+ Simple yet customizable token generator for Rails 3.
4
4
 
5
5
  # Features
6
6
 
@@ -106,7 +106,7 @@ has_token_on comes with a generator that generates a migration for token.
106
106
 
107
107
  # Testing
108
108
 
109
- Tested on Mac OS X with Ruby 1.9.2 p180.
109
+ Tested on Mac OS X with Ruby 1.9.2. Should work on Ruby 1.8.7+.
110
110
 
111
111
  * Enter gem directory
112
112
  * Execute
data/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'bundler'
2
- require 'rake/rdoctask'
2
+ require 'rdoc/task'
3
3
  Bundler::GemHelper.install_tasks
4
4
 
5
5
  require 'rspec/core'
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
 
21
21
 
22
22
  s.add_dependency 'rails', ['>= 3.0.0']
23
- s.add_dependency 'simple_uuid'
23
+ s.add_development_dependency 'simple_uuid'
24
24
  s.add_development_dependency 'sqlite3', ['>= 0']
25
25
  s.add_development_dependency 'rspec', ['>= 2.0.0']
26
26
  s.add_development_dependency 'mocha', ['>= 0.9.8']
@@ -30,4 +30,6 @@ Gem::Specification.new do |s|
30
30
  s.add_development_dependency 'growl', ['>= 0']
31
31
  s.add_development_dependency 'rb-fsevent', ['>= 0']
32
32
  s.add_development_dependency 'ruby-debug19', ['>= 0']
33
+ s.add_development_dependency 'mongoid', ['>= 2']
34
+ s.add_development_dependency 'bson_ext', ['>= 1.3.1']
33
35
  end
@@ -1,149 +1,17 @@
1
- begin; require 'simple_uuid'; rescue LoadError; end
1
+ require 'has_token_on/models/base'
2
2
 
3
3
  module HasTokenOn
4
-
5
- class LibraryNotPresent < StandardError #:nodoc:
6
- end
7
-
8
4
  module ActiveRecord
9
5
  extend ActiveSupport::Concern
10
-
11
- included do
12
- after_initialize { |record| create_tokens(record, :initialize) }
13
- before_create { |record| create_tokens(record, :create) }
14
- before_update { |record| create_tokens(record, :update) }
15
- end
16
-
17
- module ClassMethods
18
- # = has_token_on
19
- #
20
- # Simple yet customizable token generator
21
- #
22
- # == Declaration
23
- #
24
- # Declare this in your model to generate token on specified attributes. Declaration can either be:
25
- #
26
- # For single token with configuration:
27
- #
28
- # has_token_on :slug, :length => 3
29
- #
30
- # For multiple tokens with same configuration:
31
- #
32
- # has_token_on [:slug, :permalink], :length => 3
33
- #
34
- # For multiple tokens with individual configurations:
35
- #
36
- # has_token_on :slug, :length => 3
37
- # has_token_on :permalink, :length => 5
38
- #
39
- # Or using single hash:
40
- #
41
- # has_token_on :slug => { :length => 3 }, :permalink => { :length => 5 }
42
- #
43
- # == Options
44
- #
45
- # * :length - length of the token to generate
46
- # * :prepend - prepend something to the token string
47
- # * :append - append something to the token string
48
- # * :unique - should the token be unique among other record's tokens
49
- # * :if - sets the token only if Proc passed to this option returns true
50
- # * :on - specify when to set the token, possible options are: :initialize, :create, :update
51
- # * :seed - elements or functions used to generate hash. Possible options:
52
- # * :securerandom (default) uses ActiveSupport::SecureRandom.hex
53
- # * :guid uses simple_uuid gem (add it to your Gemfile!).
54
- # Length is ignored in this case. GUIDs are 36 characters long.
55
- # * ('a'..'z') a Range. Mixes the range elements up to specified length.
56
- # * lambda { 2 * 2 } a Proc. Executes proc, length param is ignored in this case.
57
- #
58
- def has_token_on(*args)
59
- @tokens ||= {}
60
-
61
- case args.first
62
- when String, Symbol
63
- @tokens[args.first] = args.last
64
- when Hash
65
- args.first.each { |token, config|
66
- @tokens[token] = config
67
- }
68
- when Array
69
- args.first.each { |token|
70
- @tokens[token] = args.last
71
- }
72
- end
73
- end
74
-
75
- # Returns Hash of tokens that are configured for specific class
76
- def tokens
77
- @tokens
78
- end
79
-
80
- end
6
+ include HasTokenOn::Base
81
7
 
82
8
  module InstanceMethods
83
9
 
84
10
  private
85
11
 
86
- def create_tokens(record, callback)
87
- return unless any_tokens?
88
-
89
- tokens_to_build_on(callback).each do |token, config|
90
- if !config.has_key?(:if) or (config.has_key?(:if) and config[:if].call(record))
91
- begin
92
- self[token] = build_token(config)
93
- end while (config.has_key?(:unique) and config[:unique]) and self.class.exists?(token => self[token])
94
- end
95
- end
12
+ def token_is_nonunique?(token)
13
+ self.class.exists?(token => self[token])
96
14
  end
97
-
98
- def build_token(config)
99
- defaults = { :length => 16, :prepend => "", :append => "", :seed => :securerandom }
100
- config = defaults.merge(config)
101
-
102
- return [config[:prepend],
103
- build_from_seed(config),
104
- config[:append]
105
- ].join
106
- end
107
-
108
- def build_from_seed(config)
109
- case config[:seed]
110
- when Symbol
111
- if config[:seed] == :securerandom
112
- ActiveSupport::SecureRandom.hex(config[:length]).first(config[:length])
113
- elsif config[:seed] == :guid
114
- if simple_uuid_present?
115
- ::SimpleUUID::UUID.new.to_guid
116
- else
117
- raise LibraryNotPresent, "Supporting library SimpleUUID is not present. Add it to your Gemfile?"
118
- end
119
- end
120
- when Range
121
- chars = config[:seed].to_a
122
- (0...config[:length]).collect { chars[Kernel.rand(chars.length)] }.join
123
- when Proc
124
- config[:seed].call.to_s
125
- end
126
- end
127
-
128
- def any_tokens?
129
- self.class.tokens && self.class.tokens.any?
130
- end
131
-
132
- def tokens_to_build_on(callback)
133
- self.class.tokens.select{ |token, config|
134
- if config.has_key?(:on)
135
- config[:on].include?(callback)
136
- else
137
- # if user didn't specify :on we set token before record create
138
- callback == :create
139
- end
140
- }
141
- end
142
-
143
- def simple_uuid_present?
144
- defined? ::SimpleUUID
145
- end
146
-
147
15
  end
148
16
  end
149
17
  end
@@ -0,0 +1,149 @@
1
+ begin; require 'simple_uuid'; rescue LoadError; end
2
+
3
+ module HasTokenOn
4
+
5
+ class LibraryNotPresent < StandardError #:nodoc:
6
+ end
7
+
8
+ module Base
9
+ extend ActiveSupport::Concern
10
+
11
+ included do
12
+ after_initialize { |record| create_tokens(record, :initialize) }
13
+ before_create { |record| create_tokens(record, :create) }
14
+ before_update { |record| create_tokens(record, :update) }
15
+ end
16
+
17
+ module ClassMethods
18
+ # = has_token_on
19
+ #
20
+ # Simple yet customizable token generator
21
+ #
22
+ # == Declaration
23
+ #
24
+ # Declare this in your model to generate token on specified attributes. Declaration can either be:
25
+ #
26
+ # For single token with configuration:
27
+ #
28
+ # has_token_on :slug, :length => 3
29
+ #
30
+ # For multiple tokens with same configuration:
31
+ #
32
+ # has_token_on [:slug, :permalink], :length => 3
33
+ #
34
+ # For multiple tokens with individual configurations:
35
+ #
36
+ # has_token_on :slug, :length => 3
37
+ # has_token_on :permalink, :length => 5
38
+ #
39
+ # Or using single hash:
40
+ #
41
+ # has_token_on :slug => { :length => 3 }, :permalink => { :length => 5 }
42
+ #
43
+ # == Options
44
+ #
45
+ # * :length - length of the token to generate
46
+ # * :prepend - prepend something to the token string
47
+ # * :append - append something to the token string
48
+ # * :unique - should the token be unique among other record's tokens
49
+ # * :if - sets the token only if Proc passed to this option returns true
50
+ # * :on - specify when to set the token, possible options are: :initialize, :create, :update
51
+ # * :seed - elements or functions used to generate hash. Possible options:
52
+ # * :securerandom (default) uses ActiveSupport::SecureRandom.hex
53
+ # * :guid uses simple_uuid gem (add it to your Gemfile!).
54
+ # Length is ignored in this case. GUIDs are 36 characters long.
55
+ # * ('a'..'z') a Range. Mixes the range elements up to specified length.
56
+ # * lambda { 2 * 2 } a Proc. Executes proc, length param is ignored in this case.
57
+ #
58
+ def has_token_on(*args)
59
+ @tokens ||= {}
60
+
61
+ case args.first
62
+ when String, Symbol
63
+ @tokens[args.first] = args.last.kind_of?(Symbol) ? {} : args.last
64
+ when Hash
65
+ args.first.each { |token, config|
66
+ @tokens[token] = config
67
+ }
68
+ when Array
69
+ args.first.each { |token|
70
+ @tokens[token] = args.last
71
+ }
72
+ end
73
+ end
74
+
75
+ # Returns Hash of tokens that are configured for specific class
76
+ def tokens
77
+ @tokens
78
+ end
79
+
80
+ end
81
+
82
+ module InstanceMethods
83
+
84
+ private
85
+
86
+ def create_tokens(record, callback)
87
+ return unless any_tokens?
88
+
89
+ tokens_to_build_on(callback).each do |token, config|
90
+ if !config.has_key?(:if) or (config.has_key?(:if) and config[:if].call(record))
91
+ begin
92
+ self[token] = build_token(config)
93
+ end while (config.has_key?(:unique) and config[:unique]) and token_is_nonunique?(token)
94
+ end
95
+ end
96
+ end
97
+
98
+ def build_token(config)
99
+ defaults = { :length => 16, :prepend => "", :append => "", :seed => :securerandom }
100
+ config = defaults.merge(config)
101
+
102
+ return [config[:prepend],
103
+ build_from_seed(config),
104
+ config[:append]
105
+ ].join
106
+ end
107
+
108
+ def build_from_seed(config)
109
+ case config[:seed]
110
+ when Symbol
111
+ if config[:seed] == :securerandom
112
+ SecureRandom.hex(config[:length]).first(config[:length])
113
+ elsif config[:seed] == :guid
114
+ if simple_uuid_present?
115
+ ::SimpleUUID::UUID.new.to_guid
116
+ else
117
+ raise LibraryNotPresent, "Supporting library SimpleUUID is not present. Add it to your Gemfile?"
118
+ end
119
+ end
120
+ when Range
121
+ chars = config[:seed].to_a
122
+ (0...config[:length]).collect { chars[Kernel.rand(chars.length)] }.join
123
+ when Proc
124
+ config[:seed].call.to_s
125
+ end
126
+ end
127
+
128
+ def any_tokens?
129
+ self.class.tokens && self.class.tokens.any?
130
+ end
131
+
132
+ def tokens_to_build_on(callback)
133
+ self.class.tokens.select{ |token, config|
134
+ if config.has_key?(:on)
135
+ config[:on].include?(callback)
136
+ else
137
+ # if user didn't specify :on we set token before record create
138
+ callback == :create
139
+ end
140
+ }
141
+ end
142
+
143
+ def simple_uuid_present?
144
+ defined? ::SimpleUUID
145
+ end
146
+
147
+ end
148
+ end
149
+ end
@@ -0,0 +1,20 @@
1
+ require 'has_token_on/models/base'
2
+ require 'mongoid'
3
+
4
+ module HasTokenOn
5
+ module Mongoid
6
+ extend ActiveSupport::Concern
7
+ include HasTokenOn::Base
8
+
9
+ module InstanceMethods
10
+
11
+ private
12
+
13
+ def token_is_nonunique?(token)
14
+ self.class.first(:conditions => { token => self[token] }).present?
15
+ end
16
+ end
17
+ end
18
+ end
19
+
20
+ ::Mongoid::Document.send :include, HasTokenOn::Mongoid
@@ -1,4 +1,5 @@
1
1
  require 'rails'
2
+ begin; require 'mongoid'; rescue LoadError; end
2
3
 
3
4
  module HasTokenOn
4
5
  class Engine < ::Rails::Engine #:nodoc:
@@ -11,6 +12,10 @@ module HasTokenOn
11
12
  ::ActiveSupport.on_load(:active_record) do
12
13
  require File.join(File.dirname(__FILE__), 'models/active_record')
13
14
  end
15
+
16
+ if defined? ::Mongoid
17
+ require File.join(File.dirname(__FILE__), 'models/mongoid')
18
+ end
14
19
  end
15
20
  end
16
21
  end
@@ -1,3 +1,3 @@
1
1
  module HasTokenOn
2
- VERSION = '0.2.0'
2
+ VERSION = '1.0.0'
3
3
  end
@@ -0,0 +1,31 @@
1
+ require File.expand_path('../spec_helper', File.dirname(__FILE__))
2
+
3
+ describe HasTokenOn::ActiveRecord do
4
+ subject { Post.new }
5
+
6
+ with_model :post do
7
+ table do |t|
8
+ t.string "permalink"
9
+ end
10
+
11
+ model do
12
+ has_token_on :permalink, {
13
+ :length => 5,
14
+ :unique => true,
15
+ :prepend => "foo",
16
+ :append => "bar",
17
+ :on => [:create]
18
+ }
19
+ end
20
+ end
21
+
22
+ it "should generate unique token if requested" do
23
+ somepost = Post.new
24
+ somepost.stubs(:build_token).returns('hi')
25
+ somepost.save
26
+ subject.expects(:build_token).times(3).returns('hi').then.returns('unique')
27
+ Post.expects(:exists?).twice # on first time we'll find unique
28
+ subject.save
29
+ end
30
+
31
+ end
@@ -1,8 +1,6 @@
1
1
  require File.expand_path('../spec_helper', File.dirname(__FILE__))
2
- require 'pp'
3
- ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
4
2
 
5
- describe HasTokenOn::ActiveRecord, "instantiation" do
3
+ describe HasTokenOn::Base, "instantiation" do
6
4
  subject { Post }
7
5
 
8
6
  with_model :post do
@@ -58,7 +56,7 @@ describe HasTokenOn::ActiveRecord, "instantiation" do
58
56
  end
59
57
  end
60
58
 
61
- describe HasTokenOn::ActiveRecord, "callbacks" do
59
+ describe HasTokenOn::Base, "callbacks" do
62
60
  subject { Post.new }
63
61
 
64
62
  with_model :post do
@@ -105,7 +103,7 @@ describe HasTokenOn::ActiveRecord, "callbacks" do
105
103
  end
106
104
  end
107
105
 
108
- describe HasTokenOn::ActiveRecord do
106
+ describe HasTokenOn::Base do
109
107
  subject { Post.new }
110
108
 
111
109
  with_model :post do
@@ -210,34 +208,3 @@ describe HasTokenOn::ActiveRecord do
210
208
  end
211
209
 
212
210
  end
213
-
214
- describe HasTokenOn::ActiveRecord do
215
- subject { Post.new }
216
-
217
- with_model :post do
218
- table do |t|
219
- t.string "permalink"
220
- end
221
-
222
- model do
223
- has_token_on :permalink, {
224
- :length => 5,
225
- :unique => true,
226
- :prepend => "foo",
227
- :append => "bar",
228
- :on => [:create]
229
- }
230
- end
231
- end
232
-
233
- it "should generate unique token if requested" do
234
- somepost = Post.new
235
- somepost.stubs(:build_token).returns('hi')
236
- somepost.save
237
- subject.expects(:build_token).times(3).returns('hi').then.returns('unique')
238
- Post.expects(:exists?).twice # on first time we'll find unique
239
- subject.save
240
- end
241
-
242
-
243
- end
@@ -0,0 +1,30 @@
1
+ require File.expand_path('../spec_helper', File.dirname(__FILE__))
2
+
3
+ connection = Mongo::Connection.new
4
+ Mongoid.database = connection.db("has_token_on_test")
5
+
6
+ describe HasTokenOn::Mongoid do
7
+ before :all do
8
+ class Post
9
+ include Mongoid::Document
10
+ field :slug
11
+ has_token_on :slug, :unique => true
12
+ end
13
+ end
14
+
15
+ before :each do
16
+ Post.destroy_all
17
+ end
18
+
19
+ subject { Post.new }
20
+
21
+ it "should generate unique token if requested" do
22
+ somepost = Post.new
23
+ somepost.stubs(:build_token).returns('hi')
24
+ somepost.save
25
+ subject.expects(:build_token).times(3).returns('hi').then.returns('unique')
26
+ Post.expects(:exists?).twice # on first time we'll find unique
27
+ subject.save
28
+ end
29
+
30
+ end
@@ -8,7 +8,9 @@ require 'with_model'
8
8
  require 'mocha'
9
9
 
10
10
  require 'has_token_on'
11
+ require 'has_token_on/models/base'
11
12
  require 'has_token_on/models/active_record'
13
+ require 'has_token_on/models/mongoid'
12
14
 
13
15
  RSpec.configure do |config|
14
16
  config.filter_run :focus => true
@@ -16,3 +18,4 @@ RSpec.configure do |config|
16
18
  config.extend WithModel
17
19
  end
18
20
 
21
+ ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
metadata CHANGED
@@ -1,149 +1,168 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: has_token_on
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
4
5
  prerelease:
5
- version: 0.2.0
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Saulius Grigaliunas
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-05-21 00:00:00 +03:00
12
+ date: 2011-08-19 00:00:00.000000000 +03:00
14
13
  default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
17
16
  name: rails
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &2161380880 !ruby/object:Gem::Requirement
20
18
  none: false
21
- requirements:
22
- - - ">="
23
- - !ruby/object:Gem::Version
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
24
22
  version: 3.0.0
25
23
  type: :runtime
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: simple_uuid
29
24
  prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
25
+ version_requirements: *2161380880
26
+ - !ruby/object:Gem::Dependency
27
+ name: simple_uuid
28
+ requirement: &2161380460 !ruby/object:Gem::Requirement
31
29
  none: false
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: "0"
36
- type: :runtime
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
39
- name: sqlite3
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
40
35
  prerelease: false
41
- requirement: &id003 !ruby/object:Gem::Requirement
36
+ version_requirements: *2161380460
37
+ - !ruby/object:Gem::Dependency
38
+ name: sqlite3
39
+ requirement: &2161379900 !ruby/object:Gem::Requirement
42
40
  none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: "0"
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
47
45
  type: :development
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
50
- name: rspec
51
46
  prerelease: false
52
- requirement: &id004 !ruby/object:Gem::Requirement
47
+ version_requirements: *2161379900
48
+ - !ruby/object:Gem::Dependency
49
+ name: rspec
50
+ requirement: &2161379380 !ruby/object:Gem::Requirement
53
51
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
57
55
  version: 2.0.0
58
56
  type: :development
59
- version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
61
- name: mocha
62
57
  prerelease: false
63
- requirement: &id005 !ruby/object:Gem::Requirement
58
+ version_requirements: *2161379380
59
+ - !ruby/object:Gem::Dependency
60
+ name: mocha
61
+ requirement: &2161378900 !ruby/object:Gem::Requirement
64
62
  none: false
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
68
66
  version: 0.9.8
69
67
  type: :development
70
- version_requirements: *id005
71
- - !ruby/object:Gem::Dependency
72
- name: with_model
73
68
  prerelease: false
74
- requirement: &id006 !ruby/object:Gem::Requirement
69
+ version_requirements: *2161378900
70
+ - !ruby/object:Gem::Dependency
71
+ name: with_model
72
+ requirement: &2161378420 !ruby/object:Gem::Requirement
75
73
  none: false
76
- requirements:
77
- - - ">="
78
- - !ruby/object:Gem::Version
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
79
77
  version: 0.1.4
80
78
  type: :development
81
- version_requirements: *id006
82
- - !ruby/object:Gem::Dependency
83
- name: guard
84
79
  prerelease: false
85
- requirement: &id007 !ruby/object:Gem::Requirement
80
+ version_requirements: *2161378420
81
+ - !ruby/object:Gem::Dependency
82
+ name: guard
83
+ requirement: &2161377940 !ruby/object:Gem::Requirement
86
84
  none: false
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
90
88
  version: 0.3.4
91
89
  type: :development
92
- version_requirements: *id007
93
- - !ruby/object:Gem::Dependency
94
- name: guard-rspec
95
90
  prerelease: false
96
- requirement: &id008 !ruby/object:Gem::Requirement
91
+ version_requirements: *2161377940
92
+ - !ruby/object:Gem::Dependency
93
+ name: guard-rspec
94
+ requirement: &2161377460 !ruby/object:Gem::Requirement
97
95
  none: false
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- version: "0"
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
102
100
  type: :development
103
- version_requirements: *id008
104
- - !ruby/object:Gem::Dependency
105
- name: growl
106
101
  prerelease: false
107
- requirement: &id009 !ruby/object:Gem::Requirement
102
+ version_requirements: *2161377460
103
+ - !ruby/object:Gem::Dependency
104
+ name: growl
105
+ requirement: &2161369020 !ruby/object:Gem::Requirement
108
106
  none: false
109
- requirements:
110
- - - ">="
111
- - !ruby/object:Gem::Version
112
- version: "0"
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
113
111
  type: :development
114
- version_requirements: *id009
115
- - !ruby/object:Gem::Dependency
116
- name: rb-fsevent
117
112
  prerelease: false
118
- requirement: &id010 !ruby/object:Gem::Requirement
113
+ version_requirements: *2161369020
114
+ - !ruby/object:Gem::Dependency
115
+ name: rb-fsevent
116
+ requirement: &2161368520 !ruby/object:Gem::Requirement
119
117
  none: false
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: "0"
118
+ requirements:
119
+ - - ! '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
124
122
  type: :development
125
- version_requirements: *id010
126
- - !ruby/object:Gem::Dependency
123
+ prerelease: false
124
+ version_requirements: *2161368520
125
+ - !ruby/object:Gem::Dependency
127
126
  name: ruby-debug19
127
+ requirement: &2161368040 !ruby/object:Gem::Requirement
128
+ none: false
129
+ requirements:
130
+ - - ! '>='
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :development
128
134
  prerelease: false
129
- requirement: &id011 !ruby/object:Gem::Requirement
135
+ version_requirements: *2161368040
136
+ - !ruby/object:Gem::Dependency
137
+ name: mongoid
138
+ requirement: &2161367520 !ruby/object:Gem::Requirement
130
139
  none: false
131
- requirements:
132
- - - ">="
133
- - !ruby/object:Gem::Version
134
- version: "0"
140
+ requirements:
141
+ - - ! '>='
142
+ - !ruby/object:Gem::Version
143
+ version: '2'
135
144
  type: :development
136
- version_requirements: *id011
145
+ prerelease: false
146
+ version_requirements: *2161367520
147
+ - !ruby/object:Gem::Dependency
148
+ name: bson_ext
149
+ requirement: &2161367000 !ruby/object:Gem::Requirement
150
+ none: false
151
+ requirements:
152
+ - - ! '>='
153
+ - !ruby/object:Gem::Version
154
+ version: 1.3.1
155
+ type: :development
156
+ prerelease: false
157
+ version_requirements: *2161367000
137
158
  description: Simple yet customizable token generator for Rails 3
138
- email:
159
+ email:
139
160
  - saulius@ninja.lt
140
161
  executables: []
141
-
142
162
  extensions: []
143
-
144
- extra_rdoc_files:
163
+ extra_rdoc_files:
145
164
  - README.md
146
- files:
165
+ files:
147
166
  - .gitignore
148
167
  - .rspec
149
168
  - .rvmrc
@@ -158,38 +177,39 @@ files:
158
177
  - lib/generators/has_token_on/templates/create_token.rb.erb
159
178
  - lib/has_token_on.rb
160
179
  - lib/has_token_on/models/active_record.rb
180
+ - lib/has_token_on/models/base.rb
181
+ - lib/has_token_on/models/mongoid.rb
161
182
  - lib/has_token_on/rails.rb
162
183
  - lib/has_token_on/version.rb
163
184
  - rails/init.rb
164
- - spec/has_token_on/has_token_on_spec.rb
185
+ - spec/has_token_on/active_record_spec.rb
186
+ - spec/has_token_on/base_spec.rb
187
+ - spec/has_token_on/mongoid_spec.rb
165
188
  - spec/spec_helper.rb
166
189
  has_rdoc: true
167
190
  homepage: https://github.com/sauliusg/has_token_on
168
- licenses:
191
+ licenses:
169
192
  - MIT
170
193
  post_install_message:
171
194
  rdoc_options: []
172
-
173
- require_paths:
195
+ require_paths:
174
196
  - lib
175
- required_ruby_version: !ruby/object:Gem::Requirement
197
+ required_ruby_version: !ruby/object:Gem::Requirement
176
198
  none: false
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: "0"
181
- required_rubygems_version: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ! '>='
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
203
+ required_rubygems_version: !ruby/object:Gem::Requirement
182
204
  none: false
183
- requirements:
184
- - - ">="
185
- - !ruby/object:Gem::Version
186
- version: "0"
205
+ requirements:
206
+ - - ! '>='
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
187
209
  requirements: []
188
-
189
210
  rubyforge_project: has_token_on
190
- rubygems_version: 1.6.1
211
+ rubygems_version: 1.6.2
191
212
  signing_key:
192
213
  specification_version: 3
193
214
  summary: A token generator plugin for Rails 3
194
215
  test_files: []
195
-