sorcery 0.7.2 → 0.7.3
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of sorcery might be problematic. Click here for more details.
- data/Gemfile +0 -3
- data/Gemfile.lock +2 -19
- data/README.rdoc +1 -1
- data/VERSION +1 -1
- data/lib/generators/sorcery/install_generator.rb +1 -0
- data/lib/sorcery/controller/submodules/activity_logging.rb +4 -4
- data/lib/sorcery/controller/submodules/brute_force_protection.rb +2 -2
- data/lib/sorcery/controller/submodules/external/providers/twitter.rb +1 -1
- data/lib/sorcery/controller/submodules/remember_me.rb +13 -12
- data/lib/sorcery/controller/submodules/session_timeout.rb +3 -3
- data/lib/sorcery/model/submodules/brute_force_protection.rb +6 -6
- data/lib/sorcery/model/submodules/remember_me.rb +1 -1
- data/lib/sorcery/model/submodules/reset_password.rb +2 -2
- data/lib/sorcery/model/submodules/user_activation.rb +1 -1
- data/lib/sorcery/model/temporary_token.rb +4 -2
- data/sorcery.gemspec +2 -11
- data/spec/Gemfile.lock +3 -13
- data/spec/rails3/Gemfile.lock +3 -13
- data/spec/rails3/spec/controller_activity_logging_spec.rb +6 -6
- data/spec/rails3/spec/controller_brute_force_protection_spec.rb +2 -2
- data/spec/rails3/spec/controller_session_timeout_spec.rb +4 -4
- data/spec/rails3_mongo_mapper/Gemfile.lock +13 -14
- data/spec/rails3_mongoid/Gemfile.lock +7 -14
- data/spec/rails3_mongoid/spec/controller_activity_logging_spec.rb +6 -6
- data/spec/shared_examples/user_activation_shared_examples.rb +1 -1
- data/spec/shared_examples/user_remember_me_shared_examples.rb +1 -1
- data/spec/shared_examples/user_reset_password_shared_examples.rb +2 -2
- metadata +30 -63
data/Gemfile
CHANGED
@@ -4,15 +4,12 @@ source "http://rubygems.org"
|
|
4
4
|
# gem "activesupport", ">= 2.3.5"
|
5
5
|
gem 'oauth', "~> 0.4.4"
|
6
6
|
gem 'oauth2', "~> 0.4.1"
|
7
|
-
gem 'mongo_mapper'
|
8
7
|
|
9
8
|
# Add dependencies to develop your gem here.
|
10
9
|
# Include everything needed to run rake, tests, features, etc.
|
11
10
|
group :development do
|
12
11
|
gem "rails", ">= 3.0.0"
|
13
12
|
gem 'json', ">= 1.5.1"
|
14
|
-
gem "mongoid", "~> 2.0"
|
15
|
-
gem "bson_ext", "~> 1.3"
|
16
13
|
gem "rspec", "~> 2.5.0"
|
17
14
|
gem 'rspec-rails', "~> 2.5.0"
|
18
15
|
gem 'ruby-debug19'
|
data/Gemfile.lock
CHANGED
@@ -32,8 +32,6 @@ GEM
|
|
32
32
|
addressable (2.2.6)
|
33
33
|
archive-tar-minitar (0.5.2)
|
34
34
|
arel (2.2.1)
|
35
|
-
bson (1.4.1)
|
36
|
-
bson_ext (1.4.1)
|
37
35
|
builder (3.0.0)
|
38
36
|
columnize (0.3.4)
|
39
37
|
diff-lcs (1.1.3)
|
@@ -56,25 +54,13 @@ GEM
|
|
56
54
|
i18n (>= 0.4.0)
|
57
55
|
mime-types (~> 1.16)
|
58
56
|
treetop (~> 1.4.8)
|
59
|
-
mime-types (1.
|
60
|
-
mongo (1.4.1)
|
61
|
-
bson (= 1.4.1)
|
62
|
-
mongo_mapper (0.9.2)
|
63
|
-
activemodel (~> 3.0)
|
64
|
-
activesupport (~> 3.0)
|
65
|
-
plucky (~> 0.3.8)
|
66
|
-
mongoid (2.3.2)
|
67
|
-
activemodel (~> 3.1)
|
68
|
-
mongo (~> 1.4)
|
69
|
-
tzinfo (~> 0.3.22)
|
57
|
+
mime-types (1.17.2)
|
70
58
|
multi_json (1.0.3)
|
71
59
|
multipart-post (1.1.3)
|
72
60
|
oauth (0.4.5)
|
73
61
|
oauth2 (0.4.1)
|
74
62
|
faraday (~> 0.6.1)
|
75
63
|
multi_json (>= 0.0.5)
|
76
|
-
plucky (0.3.8)
|
77
|
-
mongo (~> 1.3)
|
78
64
|
polyglot (0.3.2)
|
79
65
|
rack (1.3.5)
|
80
66
|
rack-cache (1.1)
|
@@ -100,7 +86,7 @@ GEM
|
|
100
86
|
rake (>= 0.8.7)
|
101
87
|
rdoc (~> 3.4)
|
102
88
|
thor (~> 0.14.6)
|
103
|
-
rake (0.9.2)
|
89
|
+
rake (0.9.2.2)
|
104
90
|
rdoc (3.11)
|
105
91
|
json (~> 1.4)
|
106
92
|
rspec (2.5.0)
|
@@ -150,12 +136,9 @@ PLATFORMS
|
|
150
136
|
ruby
|
151
137
|
|
152
138
|
DEPENDENCIES
|
153
|
-
bson_ext (~> 1.3)
|
154
139
|
bundler (~> 1.0.0)
|
155
140
|
jeweler (~> 1.5.2)
|
156
141
|
json (>= 1.5.1)
|
157
|
-
mongo_mapper
|
158
|
-
mongoid (~> 2.0)
|
159
142
|
oauth (~> 0.4.4)
|
160
143
|
oauth2 (~> 0.4.1)
|
161
144
|
rails (>= 3.0.0)
|
data/README.rdoc
CHANGED
@@ -28,7 +28,7 @@ Railscast: http://railscasts.com/episodes/283-authentication-with-sorcery
|
|
28
28
|
|
29
29
|
Example Rails 3 app using sorcery: https://github.com/NoamB/sorcery-example-app
|
30
30
|
|
31
|
-
Documentation: http://rubydoc.info/gems/sorcery/0.7.
|
31
|
+
Documentation: http://rubydoc.info/gems/sorcery/0.7.3/frames
|
32
32
|
|
33
33
|
Check out the tutorials in the github wiki!
|
34
34
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.7.
|
1
|
+
0.7.3
|
@@ -54,6 +54,7 @@ module Sorcery
|
|
54
54
|
# Define the next_migration_number method (necessary for the migration_template method to work)
|
55
55
|
def self.next_migration_number(dirname)
|
56
56
|
if ActiveRecord::Base.timestamped_migrations
|
57
|
+
sleep 100 # make sure each time we get a different timestamp
|
57
58
|
Time.new.utc.strftime("%Y%m%d%H%M%S")
|
58
59
|
else
|
59
60
|
"%.3d" % (current_migration_number(dirname) + 1)
|
@@ -52,14 +52,14 @@ module Sorcery
|
|
52
52
|
# This runs as a hook just after a successful login.
|
53
53
|
def register_login_time_to_db(user, credentials)
|
54
54
|
return unless Config.register_login_time
|
55
|
-
user.
|
55
|
+
user.update_attribute(user.sorcery_config.last_login_at_attribute_name, Time.now.in_time_zone)
|
56
56
|
end
|
57
57
|
|
58
58
|
# registers last logout time on every logout.
|
59
59
|
# This runs as a hook just before a logout.
|
60
60
|
def register_logout_time_to_db(user)
|
61
61
|
return unless Config.register_logout_time
|
62
|
-
user.
|
62
|
+
user.update_attribute(user.sorcery_config.last_logout_at_attribute_name, Time.now.in_time_zone)
|
63
63
|
end
|
64
64
|
|
65
65
|
# Updates last activity time on every request.
|
@@ -67,10 +67,10 @@ module Sorcery
|
|
67
67
|
def register_last_activity_time_to_db
|
68
68
|
return unless Config.register_last_activity_time
|
69
69
|
return unless logged_in?
|
70
|
-
current_user.
|
70
|
+
current_user.update_attribute(current_user.sorcery_config.last_activity_at_attribute_name, Time.now.in_time_zone)
|
71
71
|
end
|
72
72
|
end
|
73
73
|
end
|
74
74
|
end
|
75
75
|
end
|
76
|
-
end
|
76
|
+
end
|
@@ -30,10 +30,10 @@ module Sorcery
|
|
30
30
|
# Runs as a hook after a successful login.
|
31
31
|
def reset_failed_logins_count!(user, credentials)
|
32
32
|
user.send(:"#{user_class.sorcery_config.failed_logins_count_attribute_name}=", 0)
|
33
|
-
user.save!
|
33
|
+
user.save!(:validate => false)
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
39
|
-
end
|
39
|
+
end
|
@@ -55,7 +55,7 @@ module Sorcery
|
|
55
55
|
user_hash = {}
|
56
56
|
response = @access_token.get(@user_info_path)
|
57
57
|
user_hash[:user_info] = JSON.parse(response.body)
|
58
|
-
user_hash[:uid] = user_hash[:user_info]['id']
|
58
|
+
user_hash[:uid] = user_hash[:user_info]['id'].to_s
|
59
59
|
user_hash
|
60
60
|
end
|
61
61
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Sorcery
|
2
2
|
module Controller
|
3
3
|
module Submodules
|
4
|
-
# The Remember Me submodule takes care of setting the user's cookie so that he will
|
4
|
+
# The Remember Me submodule takes care of setting the user's cookie so that he will
|
5
5
|
# be automatically logged in to the site on every visit,
|
6
6
|
# until the cookie expires.
|
7
7
|
# See Sorcery::Model::Submodules::RememberMe for configuration options.
|
@@ -12,20 +12,20 @@ module Sorcery
|
|
12
12
|
Config.after_login << :remember_me_if_asked_to
|
13
13
|
Config.after_logout << :forget_me!
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
module InstanceMethods
|
17
17
|
# This method sets the cookie and calls the user to save the token and the expiration to db.
|
18
18
|
def remember_me!
|
19
19
|
current_user.remember_me!
|
20
|
-
set_remember_me_cookie!(current_user)
|
20
|
+
set_remember_me_cookie!(current_user)
|
21
21
|
end
|
22
22
|
|
23
23
|
# Clears the cookie and clears the token from the db.
|
24
24
|
def forget_me!
|
25
25
|
@current_user.forget_me!
|
26
|
-
cookies
|
26
|
+
cookies.delete(:remember_me_token, :domain => Config.cookie_domain)
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
# Override.
|
30
30
|
# logins a user instance, and optionally remembers him.
|
31
31
|
def auto_login(user, should_remember = false)
|
@@ -33,31 +33,32 @@ module Sorcery
|
|
33
33
|
@current_user = user
|
34
34
|
remember_me! if should_remember
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
protected
|
38
|
-
|
38
|
+
|
39
39
|
# calls remember_me! if a third credential was passed to the login method.
|
40
40
|
# Runs as a hook after login.
|
41
41
|
def remember_me_if_asked_to(user, credentials)
|
42
42
|
remember_me! if ( credentials.size == 3 && credentials[2] && credentials[2] != "0" )
|
43
43
|
end
|
44
|
-
|
45
|
-
# Checks the cookie for a remember me token, tried to find a user with that token
|
44
|
+
|
45
|
+
# Checks the cookie for a remember me token, tried to find a user with that token
|
46
46
|
# and logs the user in if found.
|
47
47
|
# Runs as a login source. See 'current_user' method for how it is used.
|
48
48
|
def login_from_cookie
|
49
49
|
user = cookies.signed[:remember_me_token] && user_class.find_by_remember_me_token(cookies.signed[:remember_me_token])
|
50
50
|
if user && user.remember_me_token?
|
51
51
|
set_remember_me_cookie!(user)
|
52
|
+
session[:user_id] = user.id
|
52
53
|
@current_user = user
|
53
54
|
else
|
54
55
|
@current_user = false
|
55
56
|
end
|
56
57
|
end
|
57
|
-
|
58
|
+
|
58
59
|
def set_remember_me_cookie!(user)
|
59
|
-
cookies.signed[:remember_me_token] = {
|
60
|
-
:value => user.send(user.sorcery_config.remember_me_token_attribute_name),
|
60
|
+
cookies.signed[:remember_me_token] = {
|
61
|
+
:value => user.send(user.sorcery_config.remember_me_token_attribute_name),
|
61
62
|
:expires => user.send(user.sorcery_config.remember_me_token_expires_at_attribute_name),
|
62
63
|
:httponly => true,
|
63
64
|
:domain => Config.cookie_domain
|
@@ -30,18 +30,18 @@ module Sorcery
|
|
30
30
|
# Registers last login to be used as the timeout starting point.
|
31
31
|
# Runs as a hook after a successful login.
|
32
32
|
def register_login_time(user, credentials)
|
33
|
-
session[:login_time] = session[:last_action_time] = Time.now.
|
33
|
+
session[:login_time] = session[:last_action_time] = Time.now.in_time_zone
|
34
34
|
end
|
35
35
|
|
36
36
|
# Checks if session timeout was reached and expires the current session if so.
|
37
37
|
# To be used as a before_filter, before require_login
|
38
38
|
def validate_session
|
39
39
|
session_to_use = Config.session_timeout_from_last_action ? session[:last_action_time] : session[:login_time]
|
40
|
-
if session_to_use && (Time.now.
|
40
|
+
if session_to_use && (Time.now.in_time_zone - session_to_use > Config.session_timeout)
|
41
41
|
reset_session
|
42
42
|
@current_user = nil
|
43
43
|
else
|
44
|
-
session[:last_action_time] = Time.now.
|
44
|
+
session[:last_action_time] = Time.now.in_time_zone
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
@@ -54,7 +54,7 @@ module Sorcery
|
|
54
54
|
config = sorcery_config
|
55
55
|
return if !unlocked?
|
56
56
|
self.increment(config.failed_logins_count_attribute_name)
|
57
|
-
save!
|
57
|
+
save!(:validate => false)
|
58
58
|
self.lock! if self.send(config.failed_logins_count_attribute_name) >= config.consecutive_login_retries_amount_limit
|
59
59
|
end
|
60
60
|
|
@@ -62,15 +62,15 @@ module Sorcery
|
|
62
62
|
|
63
63
|
def lock!
|
64
64
|
config = sorcery_config
|
65
|
-
self.send(:"#{config.lock_expires_at_attribute_name}=", Time.now.
|
66
|
-
self.save!
|
65
|
+
self.send(:"#{config.lock_expires_at_attribute_name}=", Time.now.in_time_zone + config.login_lock_time_period)
|
66
|
+
self.save!(validate: false)
|
67
67
|
end
|
68
68
|
|
69
69
|
def unlock!
|
70
70
|
config = sorcery_config
|
71
71
|
self.send(:"#{config.lock_expires_at_attribute_name}=", nil)
|
72
72
|
self.send(:"#{config.failed_logins_count_attribute_name}=", 0)
|
73
|
-
self.save!
|
73
|
+
self.save!(validate: false)
|
74
74
|
end
|
75
75
|
|
76
76
|
def unlocked?
|
@@ -83,7 +83,7 @@ module Sorcery
|
|
83
83
|
def prevent_locked_user_login
|
84
84
|
config = sorcery_config
|
85
85
|
if !self.unlocked? && config.login_lock_time_period != 0
|
86
|
-
self.unlock! if self.send(config.lock_expires_at_attribute_name) <= Time.now.
|
86
|
+
self.unlock! if self.send(config.lock_expires_at_attribute_name) <= Time.now.in_time_zone
|
87
87
|
end
|
88
88
|
unlocked?
|
89
89
|
end
|
@@ -91,4 +91,4 @@ module Sorcery
|
|
91
91
|
end
|
92
92
|
end
|
93
93
|
end
|
94
|
-
end
|
94
|
+
end
|
@@ -50,7 +50,7 @@ module Sorcery
|
|
50
50
|
def remember_me!
|
51
51
|
config = sorcery_config
|
52
52
|
self.send(:"#{config.remember_me_token_attribute_name}=", TemporaryToken.generate_random_token)
|
53
|
-
self.send(:"#{config.remember_me_token_expires_at_attribute_name}=", Time.now + config.remember_me_for)
|
53
|
+
self.send(:"#{config.remember_me_token_expires_at_attribute_name}=", Time.now.in_time_zone + config.remember_me_for)
|
54
54
|
self.save!(:validate => false)
|
55
55
|
end
|
56
56
|
|
@@ -91,8 +91,8 @@ module Sorcery
|
|
91
91
|
# hammering protection
|
92
92
|
return if config.reset_password_time_between_emails && self.send(config.reset_password_email_sent_at_attribute_name) && self.send(config.reset_password_email_sent_at_attribute_name) > config.reset_password_time_between_emails.ago.utc
|
93
93
|
self.send(:"#{config.reset_password_token_attribute_name}=", TemporaryToken.generate_random_token)
|
94
|
-
self.send(:"#{config.reset_password_token_expires_at_attribute_name}=", Time.now.
|
95
|
-
self.send(:"#{config.reset_password_email_sent_at_attribute_name}=", Time.now.
|
94
|
+
self.send(:"#{config.reset_password_token_expires_at_attribute_name}=", Time.now.in_time_zone + config.reset_password_expiration_period) if config.reset_password_expiration_period
|
95
|
+
self.send(:"#{config.reset_password_email_sent_at_attribute_name}=", Time.now.in_time_zone)
|
96
96
|
self.class.transaction do
|
97
97
|
self.save!(:validate => false)
|
98
98
|
generic_send_email(:reset_password_email_method_name, :reset_password_mailer)
|
@@ -115,7 +115,7 @@ module Sorcery
|
|
115
115
|
generated_activation_token = TemporaryToken.generate_random_token
|
116
116
|
self.send(:"#{config.activation_token_attribute_name}=", generated_activation_token)
|
117
117
|
self.send(:"#{config.activation_state_attribute_name}=", "pending")
|
118
|
-
self.send(:"#{config.activation_token_expires_at_attribute_name}=", Time.now.
|
118
|
+
self.send(:"#{config.activation_token_expires_at_attribute_name}=", Time.now.in_time_zone + config.activation_token_expiration_period) if config.activation_token_expiration_period
|
119
119
|
end
|
120
120
|
|
121
121
|
# called automatically after user initial creation.
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'securerandom'
|
2
|
+
|
1
3
|
module Sorcery
|
2
4
|
module Model
|
3
5
|
# This module encapsulates the logic for temporary token.
|
@@ -10,7 +12,7 @@ module Sorcery
|
|
10
12
|
|
11
13
|
# Random code, used for salt and temporary tokens.
|
12
14
|
def self.generate_random_token
|
13
|
-
|
15
|
+
SecureRandom.base64(15).tr('+/=lIO0', 'pqrsxyz')
|
14
16
|
end
|
15
17
|
|
16
18
|
module ClassMethods
|
@@ -18,7 +20,7 @@ module Sorcery
|
|
18
20
|
return nil if token.blank?
|
19
21
|
user = find_by_sorcery_token(token_attr_name,token)
|
20
22
|
if !user.blank? && !user.send(token_expiration_date_attr).nil?
|
21
|
-
return Time.now.
|
23
|
+
return Time.now.in_time_zone < user.send(token_expiration_date_attr) ? user : nil
|
22
24
|
end
|
23
25
|
user
|
24
26
|
end
|
data/sorcery.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "sorcery"
|
8
|
-
s.version = "0.7.
|
8
|
+
s.version = "0.7.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Noam Ben Ari"]
|
12
|
-
s.date = "2011-10-
|
12
|
+
s.date = "2011-10-29"
|
13
13
|
s.description = "Provides common authentication needs such as signing in/out, activating by email and resetting password."
|
14
14
|
s.email = "nbenari@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -307,11 +307,8 @@ Gem::Specification.new do |s|
|
|
307
307
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
308
308
|
s.add_runtime_dependency(%q<oauth>, ["~> 0.4.4"])
|
309
309
|
s.add_runtime_dependency(%q<oauth2>, ["~> 0.4.1"])
|
310
|
-
s.add_runtime_dependency(%q<mongo_mapper>, [">= 0"])
|
311
310
|
s.add_development_dependency(%q<rails>, [">= 3.0.0"])
|
312
311
|
s.add_development_dependency(%q<json>, [">= 1.5.1"])
|
313
|
-
s.add_development_dependency(%q<mongoid>, ["~> 2.0"])
|
314
|
-
s.add_development_dependency(%q<bson_ext>, ["~> 1.3"])
|
315
312
|
s.add_development_dependency(%q<rspec>, ["~> 2.5.0"])
|
316
313
|
s.add_development_dependency(%q<rspec-rails>, ["~> 2.5.0"])
|
317
314
|
s.add_development_dependency(%q<ruby-debug19>, [">= 0"])
|
@@ -327,11 +324,8 @@ Gem::Specification.new do |s|
|
|
327
324
|
else
|
328
325
|
s.add_dependency(%q<oauth>, ["~> 0.4.4"])
|
329
326
|
s.add_dependency(%q<oauth2>, ["~> 0.4.1"])
|
330
|
-
s.add_dependency(%q<mongo_mapper>, [">= 0"])
|
331
327
|
s.add_dependency(%q<rails>, [">= 3.0.0"])
|
332
328
|
s.add_dependency(%q<json>, [">= 1.5.1"])
|
333
|
-
s.add_dependency(%q<mongoid>, ["~> 2.0"])
|
334
|
-
s.add_dependency(%q<bson_ext>, ["~> 1.3"])
|
335
329
|
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
336
330
|
s.add_dependency(%q<rspec-rails>, ["~> 2.5.0"])
|
337
331
|
s.add_dependency(%q<ruby-debug19>, [">= 0"])
|
@@ -348,11 +342,8 @@ Gem::Specification.new do |s|
|
|
348
342
|
else
|
349
343
|
s.add_dependency(%q<oauth>, ["~> 0.4.4"])
|
350
344
|
s.add_dependency(%q<oauth2>, ["~> 0.4.1"])
|
351
|
-
s.add_dependency(%q<mongo_mapper>, [">= 0"])
|
352
345
|
s.add_dependency(%q<rails>, [">= 3.0.0"])
|
353
346
|
s.add_dependency(%q<json>, [">= 1.5.1"])
|
354
|
-
s.add_dependency(%q<mongoid>, ["~> 2.0"])
|
355
|
-
s.add_dependency(%q<bson_ext>, ["~> 1.3"])
|
356
347
|
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
357
348
|
s.add_dependency(%q<rspec-rails>, ["~> 2.5.0"])
|
358
349
|
s.add_dependency(%q<ruby-debug19>, [">= 0"])
|
data/spec/Gemfile.lock
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ../
|
3
3
|
specs:
|
4
|
-
sorcery (0.7.
|
4
|
+
sorcery (0.7.2)
|
5
5
|
bcrypt-ruby (~> 3.0.0)
|
6
|
-
mongo_mapper
|
7
6
|
oauth (~> 0.4.4)
|
8
7
|
oauth (~> 0.4.4)
|
9
8
|
oauth2 (~> 0.4.1)
|
@@ -43,7 +42,6 @@ GEM
|
|
43
42
|
archive-tar-minitar (0.5.2)
|
44
43
|
arel (2.0.10)
|
45
44
|
bcrypt-ruby (3.0.1)
|
46
|
-
bson (1.4.1)
|
47
45
|
builder (2.1.2)
|
48
46
|
columnize (0.3.4)
|
49
47
|
diff-lcs (1.1.3)
|
@@ -61,21 +59,13 @@ GEM
|
|
61
59
|
i18n (>= 0.4.0)
|
62
60
|
mime-types (~> 1.16)
|
63
61
|
treetop (~> 1.4.8)
|
64
|
-
mime-types (1.
|
65
|
-
mongo (1.4.1)
|
66
|
-
bson (= 1.4.1)
|
67
|
-
mongo_mapper (0.9.2)
|
68
|
-
activemodel (~> 3.0)
|
69
|
-
activesupport (~> 3.0)
|
70
|
-
plucky (~> 0.3.8)
|
62
|
+
mime-types (1.17.2)
|
71
63
|
multi_json (1.0.3)
|
72
64
|
multipart-post (1.1.3)
|
73
65
|
oauth (0.4.5)
|
74
66
|
oauth2 (0.4.1)
|
75
67
|
faraday (~> 0.6.1)
|
76
68
|
multi_json (>= 0.0.5)
|
77
|
-
plucky (0.3.8)
|
78
|
-
mongo (~> 1.3)
|
79
69
|
polyglot (0.3.2)
|
80
70
|
rack (1.2.4)
|
81
71
|
rack-mount (0.6.14)
|
@@ -95,7 +85,7 @@ GEM
|
|
95
85
|
activesupport (= 3.0.3)
|
96
86
|
rake (>= 0.8.7)
|
97
87
|
thor (~> 0.14.4)
|
98
|
-
rake (0.9.2)
|
88
|
+
rake (0.9.2.2)
|
99
89
|
rspec (2.5.0)
|
100
90
|
rspec-core (~> 2.5.0)
|
101
91
|
rspec-expectations (~> 2.5.0)
|
data/spec/rails3/Gemfile.lock
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ../../
|
3
3
|
specs:
|
4
|
-
sorcery (0.7.
|
4
|
+
sorcery (0.7.2)
|
5
5
|
bcrypt-ruby (~> 3.0.0)
|
6
|
-
mongo_mapper
|
7
6
|
oauth (~> 0.4.4)
|
8
7
|
oauth (~> 0.4.4)
|
9
8
|
oauth2 (~> 0.4.1)
|
@@ -43,7 +42,6 @@ GEM
|
|
43
42
|
archive-tar-minitar (0.5.2)
|
44
43
|
arel (2.0.10)
|
45
44
|
bcrypt-ruby (3.0.1)
|
46
|
-
bson (1.4.1)
|
47
45
|
builder (2.1.2)
|
48
46
|
columnize (0.3.4)
|
49
47
|
diff-lcs (1.1.3)
|
@@ -63,21 +61,13 @@ GEM
|
|
63
61
|
i18n (>= 0.4.0)
|
64
62
|
mime-types (~> 1.16)
|
65
63
|
treetop (~> 1.4.8)
|
66
|
-
mime-types (1.
|
67
|
-
mongo (1.4.1)
|
68
|
-
bson (= 1.4.1)
|
69
|
-
mongo_mapper (0.9.2)
|
70
|
-
activemodel (~> 3.0)
|
71
|
-
activesupport (~> 3.0)
|
72
|
-
plucky (~> 0.3.8)
|
64
|
+
mime-types (1.17.2)
|
73
65
|
multi_json (1.0.3)
|
74
66
|
multipart-post (1.1.3)
|
75
67
|
oauth (0.4.5)
|
76
68
|
oauth2 (0.4.1)
|
77
69
|
faraday (~> 0.6.1)
|
78
70
|
multi_json (>= 0.0.5)
|
79
|
-
plucky (0.3.8)
|
80
|
-
mongo (~> 1.3)
|
81
71
|
polyglot (0.3.2)
|
82
72
|
rack (1.2.4)
|
83
73
|
rack-mount (0.6.14)
|
@@ -97,7 +87,7 @@ GEM
|
|
97
87
|
activesupport (= 3.0.3)
|
98
88
|
rake (>= 0.8.7)
|
99
89
|
thor (~> 0.14.4)
|
100
|
-
rake (0.9.2)
|
90
|
+
rake (0.9.2.2)
|
101
91
|
rspec (2.5.0)
|
102
92
|
rspec-core (~> 2.5.0)
|
103
93
|
rspec-expectations (~> 2.5.0)
|
@@ -30,7 +30,7 @@ describe ApplicationController do
|
|
30
30
|
end
|
31
31
|
|
32
32
|
it "should log login time on login" do
|
33
|
-
now = Time.now.
|
33
|
+
now = Time.now.in_time_zone
|
34
34
|
login_user
|
35
35
|
@user.last_login_at.should_not be_nil
|
36
36
|
@user.last_login_at.to_s(:db).should >= now.to_s(:db)
|
@@ -39,7 +39,7 @@ describe ApplicationController do
|
|
39
39
|
|
40
40
|
it "should log logout time on logout" do
|
41
41
|
login_user
|
42
|
-
now = Time.now.
|
42
|
+
now = Time.now.in_time_zone
|
43
43
|
logout_user
|
44
44
|
User.first.last_logout_at.should_not be_nil
|
45
45
|
User.first.last_logout_at.to_s(:db).should >= now.to_s(:db)
|
@@ -48,7 +48,7 @@ describe ApplicationController do
|
|
48
48
|
|
49
49
|
it "should log last activity time when logged in" do
|
50
50
|
login_user
|
51
|
-
now = Time.now.
|
51
|
+
now = Time.now.in_time_zone
|
52
52
|
get :some_action
|
53
53
|
User.first.last_activity_at.to_s(:db).should >= now.to_s(:db)
|
54
54
|
User.first.last_activity_at.to_s(:db).should <= (now+2).to_s(:db)
|
@@ -81,14 +81,14 @@ describe ApplicationController do
|
|
81
81
|
|
82
82
|
it "should not register login time if configured so" do
|
83
83
|
sorcery_controller_property_set(:register_login_time, false)
|
84
|
-
now = Time.now.
|
84
|
+
now = Time.now.in_time_zone
|
85
85
|
login_user
|
86
86
|
@user.last_login_at.should be_nil
|
87
87
|
end
|
88
88
|
|
89
89
|
it "should not register logout time if configured so" do
|
90
90
|
sorcery_controller_property_set(:register_logout_time, false)
|
91
|
-
now = Time.now.
|
91
|
+
now = Time.now.in_time_zone
|
92
92
|
login_user
|
93
93
|
logout_user
|
94
94
|
@user.last_logout_at.should be_nil
|
@@ -96,7 +96,7 @@ describe ApplicationController do
|
|
96
96
|
|
97
97
|
it "should not register last activity time if configured so" do
|
98
98
|
sorcery_controller_property_set(:register_last_activity_time, false)
|
99
|
-
now = Time.now.
|
99
|
+
now = Time.now.in_time_zone
|
100
100
|
login_user
|
101
101
|
get :some_action
|
102
102
|
@user.last_activity_at.should be_nil
|
@@ -47,7 +47,7 @@ describe ApplicationController do
|
|
47
47
|
get :test_login, :username => 'gizmo', :password => 'blabla'
|
48
48
|
get :test_login, :username => 'gizmo', :password => 'blabla'
|
49
49
|
User.find_by_username('gizmo').lock_expires_at.should_not be_nil
|
50
|
-
Timecop.travel(Time.now + 0.3)
|
50
|
+
Timecop.travel(Time.now.in_time_zone + 0.3)
|
51
51
|
get :test_login, :username => 'gizmo', :password => 'blabla'
|
52
52
|
User.find_by_username('gizmo').lock_expires_at.should be_nil
|
53
53
|
end
|
@@ -58,7 +58,7 @@ describe ApplicationController do
|
|
58
58
|
get :test_login, :username => 'gizmo', :password => 'blabla'
|
59
59
|
get :test_login, :username => 'gizmo', :password => 'blabla'
|
60
60
|
unlock_date = User.find_by_username('gizmo').lock_expires_at
|
61
|
-
Timecop.travel(Time.now + 1)
|
61
|
+
Timecop.travel(Time.now.in_time_zone + 1)
|
62
62
|
get :test_login, :username => 'gizmo', :password => 'blabla'
|
63
63
|
User.find_by_username('gizmo').lock_expires_at.to_s.should == unlock_date.to_s
|
64
64
|
end
|
@@ -23,7 +23,7 @@ describe ApplicationController do
|
|
23
23
|
|
24
24
|
it "should reset session after session timeout" do
|
25
25
|
login_user
|
26
|
-
Timecop.travel(Time.now+0.6)
|
26
|
+
Timecop.travel(Time.now.in_time_zone+0.6)
|
27
27
|
get :test_should_be_logged_in
|
28
28
|
session[:user_id].should be_nil
|
29
29
|
response.should be_a_redirect
|
@@ -33,10 +33,10 @@ describe ApplicationController do
|
|
33
33
|
it "should not logout if there was activity" do
|
34
34
|
sorcery_controller_property_set(:session_timeout_from_last_action, true)
|
35
35
|
get :test_login, :username => 'gizmo', :password => 'secret'
|
36
|
-
Timecop.travel(Time.now+0.3)
|
36
|
+
Timecop.travel(Time.now.in_time_zone+0.3)
|
37
37
|
get :test_should_be_logged_in
|
38
38
|
session[:user_id].should_not be_nil
|
39
|
-
Timecop.travel(Time.now+0.3)
|
39
|
+
Timecop.travel(Time.now.in_time_zone+0.3)
|
40
40
|
get :test_should_be_logged_in
|
41
41
|
session[:user_id].should_not be_nil
|
42
42
|
response.should be_a_success
|
@@ -45,7 +45,7 @@ describe ApplicationController do
|
|
45
45
|
it "with 'session_timeout_from_last_action' should logout if there was no activity" do
|
46
46
|
sorcery_controller_property_set(:session_timeout_from_last_action, true)
|
47
47
|
get :test_login, :username => 'gizmo', :password => 'secret'
|
48
|
-
Timecop.travel(Time.now+0.6)
|
48
|
+
Timecop.travel(Time.now.in_time_zone+0.6)
|
49
49
|
get :test_should_be_logged_in
|
50
50
|
session[:user_id].should be_nil
|
51
51
|
response.should be_a_redirect
|
@@ -1,9 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ../../
|
3
3
|
specs:
|
4
|
-
sorcery (0.7.
|
4
|
+
sorcery (0.7.2)
|
5
5
|
bcrypt-ruby (~> 3.0.0)
|
6
|
-
mongo_mapper
|
7
6
|
oauth (~> 0.4.4)
|
8
7
|
oauth (~> 0.4.4)
|
9
8
|
oauth2 (~> 0.4.1)
|
@@ -43,8 +42,8 @@ GEM
|
|
43
42
|
archive-tar-minitar (0.5.2)
|
44
43
|
arel (2.0.10)
|
45
44
|
bcrypt-ruby (3.0.1)
|
46
|
-
bson (1.
|
47
|
-
bson_ext (1.
|
45
|
+
bson (1.3.1)
|
46
|
+
bson_ext (1.3.1)
|
48
47
|
builder (2.1.2)
|
49
48
|
coderay (0.9.8)
|
50
49
|
columnize (0.3.4)
|
@@ -63,11 +62,11 @@ GEM
|
|
63
62
|
i18n (>= 0.4.0)
|
64
63
|
mime-types (~> 1.16)
|
65
64
|
treetop (~> 1.4.8)
|
66
|
-
method_source (0.6.
|
67
|
-
ruby_parser (
|
68
|
-
mime-types (1.
|
69
|
-
mongo (1.
|
70
|
-
bson (
|
65
|
+
method_source (0.6.7)
|
66
|
+
ruby_parser (>= 2.3.1)
|
67
|
+
mime-types (1.17.2)
|
68
|
+
mongo (1.3.1)
|
69
|
+
bson (>= 1.3.1)
|
71
70
|
mongo_mapper (0.9.2)
|
72
71
|
activemodel (~> 3.0)
|
73
72
|
activesupport (~> 3.0)
|
@@ -81,10 +80,10 @@ GEM
|
|
81
80
|
plucky (0.3.8)
|
82
81
|
mongo (~> 1.3)
|
83
82
|
polyglot (0.3.2)
|
84
|
-
pry (0.9.
|
83
|
+
pry (0.9.7.3)
|
85
84
|
coderay (~> 0.9.8)
|
86
|
-
method_source (~> 0.6.
|
87
|
-
ruby_parser (
|
85
|
+
method_source (~> 0.6.7)
|
86
|
+
ruby_parser (>= 2.3.1)
|
88
87
|
slop (~> 2.1.0)
|
89
88
|
rack (1.2.4)
|
90
89
|
rack-mount (0.6.14)
|
@@ -104,7 +103,7 @@ GEM
|
|
104
103
|
activesupport (= 3.0.3)
|
105
104
|
rake (>= 0.8.7)
|
106
105
|
thor (~> 0.14.4)
|
107
|
-
rake (0.9.2)
|
106
|
+
rake (0.9.2.2)
|
108
107
|
rspec (2.5.0)
|
109
108
|
rspec-core (~> 2.5.0)
|
110
109
|
rspec-expectations (~> 2.5.0)
|
@@ -128,7 +127,7 @@ GEM
|
|
128
127
|
ruby-debug-base19 (>= 0.11.19)
|
129
128
|
ruby_core_source (0.1.5)
|
130
129
|
archive-tar-minitar (>= 0.5.2)
|
131
|
-
ruby_parser (2.
|
130
|
+
ruby_parser (2.3.1)
|
132
131
|
sexp_processor (~> 3.0)
|
133
132
|
sexp_processor (3.0.7)
|
134
133
|
simplecov (0.5.4)
|
@@ -1,9 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ../../
|
3
3
|
specs:
|
4
|
-
sorcery (0.7.
|
4
|
+
sorcery (0.7.2)
|
5
5
|
bcrypt-ruby (~> 3.0.0)
|
6
|
-
mongo_mapper
|
7
6
|
oauth (~> 0.4.4)
|
8
7
|
oauth (~> 0.4.4)
|
9
8
|
oauth2 (~> 0.4.1)
|
@@ -43,8 +42,8 @@ GEM
|
|
43
42
|
archive-tar-minitar (0.5.2)
|
44
43
|
arel (2.0.10)
|
45
44
|
bcrypt-ruby (3.0.1)
|
46
|
-
bson (1.
|
47
|
-
bson_ext (1.
|
45
|
+
bson (1.3.1)
|
46
|
+
bson_ext (1.3.1)
|
48
47
|
builder (2.1.2)
|
49
48
|
columnize (0.3.4)
|
50
49
|
diff-lcs (1.1.3)
|
@@ -62,13 +61,9 @@ GEM
|
|
62
61
|
i18n (>= 0.4.0)
|
63
62
|
mime-types (~> 1.16)
|
64
63
|
treetop (~> 1.4.8)
|
65
|
-
mime-types (1.
|
66
|
-
mongo (1.
|
67
|
-
bson (
|
68
|
-
mongo_mapper (0.9.2)
|
69
|
-
activemodel (~> 3.0)
|
70
|
-
activesupport (~> 3.0)
|
71
|
-
plucky (~> 0.3.8)
|
64
|
+
mime-types (1.17.2)
|
65
|
+
mongo (1.3.1)
|
66
|
+
bson (>= 1.3.1)
|
72
67
|
mongoid (2.2.3)
|
73
68
|
activemodel (~> 3.0)
|
74
69
|
mongo (~> 1.3)
|
@@ -79,8 +74,6 @@ GEM
|
|
79
74
|
oauth2 (0.4.1)
|
80
75
|
faraday (~> 0.6.1)
|
81
76
|
multi_json (>= 0.0.5)
|
82
|
-
plucky (0.3.8)
|
83
|
-
mongo (~> 1.3)
|
84
77
|
polyglot (0.3.2)
|
85
78
|
rack (1.2.4)
|
86
79
|
rack-mount (0.6.14)
|
@@ -100,7 +93,7 @@ GEM
|
|
100
93
|
activesupport (= 3.0.3)
|
101
94
|
rake (>= 0.8.7)
|
102
95
|
thor (~> 0.14.4)
|
103
|
-
rake (0.9.2)
|
96
|
+
rake (0.9.2.2)
|
104
97
|
rspec (2.5.0)
|
105
98
|
rspec-core (~> 2.5.0)
|
106
99
|
rspec-expectations (~> 2.5.0)
|
@@ -23,7 +23,7 @@ describe ApplicationController do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
it "should log login time on login" do
|
26
|
-
now = Time.now.
|
26
|
+
now = Time.now.in_time_zone
|
27
27
|
login_user
|
28
28
|
@user.last_login_at.should_not be_nil
|
29
29
|
@user.last_login_at.to_s(:db).should >= now.to_s(:db)
|
@@ -32,7 +32,7 @@ describe ApplicationController do
|
|
32
32
|
|
33
33
|
it "should log logout time on logout" do
|
34
34
|
login_user
|
35
|
-
now = Time.now.
|
35
|
+
now = Time.now.in_time_zone
|
36
36
|
logout_user
|
37
37
|
User.first.last_logout_at.should_not be_nil
|
38
38
|
User.first.last_logout_at.to_s(:db).should >= now.to_s(:db)
|
@@ -41,7 +41,7 @@ describe ApplicationController do
|
|
41
41
|
|
42
42
|
it "should log last activity time when logged in" do
|
43
43
|
login_user
|
44
|
-
now = Time.now.
|
44
|
+
now = Time.now.in_time_zone
|
45
45
|
get :some_action
|
46
46
|
User.first.last_activity_at.to_s(:db).should >= now.to_s(:db)
|
47
47
|
User.first.last_activity_at.to_s(:db).should <= (now+2).to_s(:db)
|
@@ -74,14 +74,14 @@ describe ApplicationController do
|
|
74
74
|
|
75
75
|
it "should not register login time if configured so" do
|
76
76
|
sorcery_controller_property_set(:register_login_time, false)
|
77
|
-
now = Time.now.
|
77
|
+
now = Time.now.in_time_zone
|
78
78
|
login_user
|
79
79
|
@user.last_login_at.should be_nil
|
80
80
|
end
|
81
81
|
|
82
82
|
it "should not register logout time if configured so" do
|
83
83
|
sorcery_controller_property_set(:register_logout_time, false)
|
84
|
-
now = Time.now.
|
84
|
+
now = Time.now.in_time_zone
|
85
85
|
login_user
|
86
86
|
logout_user
|
87
87
|
@user.last_logout_at.should be_nil
|
@@ -89,7 +89,7 @@ describe ApplicationController do
|
|
89
89
|
|
90
90
|
it "should not register last activity time if configured so" do
|
91
91
|
sorcery_controller_property_set(:register_last_activity_time, false)
|
92
|
-
now = Time.now.
|
92
|
+
now = Time.now.in_time_zone
|
93
93
|
login_user
|
94
94
|
get :some_action
|
95
95
|
@user.last_activity_at.should be_nil
|
@@ -155,7 +155,7 @@ shared_examples_for "rails_3_activation_model" do
|
|
155
155
|
it "load_from_activation_token should NOT return user when token is found and expired" do
|
156
156
|
sorcery_model_property_set(:activation_token_expiration_period, 0.1)
|
157
157
|
create_new_user
|
158
|
-
Timecop.travel(Time.now+0.5)
|
158
|
+
Timecop.travel(Time.now.in_time_zone+0.5)
|
159
159
|
User.load_from_activation_token(@user.activation_token).should == nil
|
160
160
|
end
|
161
161
|
|
@@ -34,7 +34,7 @@ shared_examples_for "rails_3_remember_me_model" do
|
|
34
34
|
it "should set an expiration based on 'remember_me_for' attribute" do
|
35
35
|
sorcery_model_property_set(:remember_me_for, 2 * 60 * 60 * 24)
|
36
36
|
@user.remember_me!
|
37
|
-
@user.remember_me_token_expires_at.utc.to_s.should == (Time.now + 2 * 60 * 60 * 24).utc.to_s
|
37
|
+
@user.remember_me_token_expires_at.utc.to_s.should == (Time.now.in_time_zone + 2 * 60 * 60 * 24).utc.to_s
|
38
38
|
end
|
39
39
|
|
40
40
|
it "should delete the token and expiration on 'forget_me!'" do
|
@@ -93,7 +93,7 @@ shared_examples_for "rails_3_reset_password_model" do
|
|
93
93
|
create_new_user
|
94
94
|
sorcery_model_property_set(:reset_password_expiration_period, 0.1)
|
95
95
|
@user.deliver_reset_password_instructions!
|
96
|
-
Timecop.travel(Time.now+0.5)
|
96
|
+
Timecop.travel(Time.now.in_time_zone+0.5)
|
97
97
|
User.load_from_reset_password_token(@user.reset_password_token).should == nil
|
98
98
|
end
|
99
99
|
|
@@ -157,7 +157,7 @@ shared_examples_for "rails_3_reset_password_model" do
|
|
157
157
|
old_size = ActionMailer::Base.deliveries.size
|
158
158
|
@user.deliver_reset_password_instructions!
|
159
159
|
ActionMailer::Base.deliveries.size.should == old_size + 1
|
160
|
-
Timecop.travel(Time.now+0.5)
|
160
|
+
Timecop.travel(Time.now.in_time_zone+0.5)
|
161
161
|
@user.deliver_reset_password_instructions!
|
162
162
|
ActionMailer::Base.deliveries.size.should == old_size + 2
|
163
163
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: sorcery
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.7.
|
5
|
+
version: 0.7.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Noam Ben Ari
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-10-
|
13
|
+
date: 2011-10-29 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: oauth
|
@@ -34,20 +34,9 @@ dependencies:
|
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: *id002
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: mongo_mapper
|
39
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
40
|
-
none: false
|
41
|
-
requirements:
|
42
|
-
- - ">="
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
version: "0"
|
45
|
-
type: :runtime
|
46
|
-
prerelease: false
|
47
|
-
version_requirements: *id003
|
48
37
|
- !ruby/object:Gem::Dependency
|
49
38
|
name: rails
|
50
|
-
requirement: &
|
39
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
51
40
|
none: false
|
52
41
|
requirements:
|
53
42
|
- - ">="
|
@@ -55,10 +44,10 @@ dependencies:
|
|
55
44
|
version: 3.0.0
|
56
45
|
type: :development
|
57
46
|
prerelease: false
|
58
|
-
version_requirements: *
|
47
|
+
version_requirements: *id003
|
59
48
|
- !ruby/object:Gem::Dependency
|
60
49
|
name: json
|
61
|
-
requirement: &
|
50
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
62
51
|
none: false
|
63
52
|
requirements:
|
64
53
|
- - ">="
|
@@ -66,32 +55,10 @@ dependencies:
|
|
66
55
|
version: 1.5.1
|
67
56
|
type: :development
|
68
57
|
prerelease: false
|
69
|
-
version_requirements: *
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: mongoid
|
72
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: "2.0"
|
78
|
-
type: :development
|
79
|
-
prerelease: false
|
80
|
-
version_requirements: *id006
|
81
|
-
- !ruby/object:Gem::Dependency
|
82
|
-
name: bson_ext
|
83
|
-
requirement: &id007 !ruby/object:Gem::Requirement
|
84
|
-
none: false
|
85
|
-
requirements:
|
86
|
-
- - ~>
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: "1.3"
|
89
|
-
type: :development
|
90
|
-
prerelease: false
|
91
|
-
version_requirements: *id007
|
58
|
+
version_requirements: *id004
|
92
59
|
- !ruby/object:Gem::Dependency
|
93
60
|
name: rspec
|
94
|
-
requirement: &
|
61
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
95
62
|
none: false
|
96
63
|
requirements:
|
97
64
|
- - ~>
|
@@ -99,10 +66,10 @@ dependencies:
|
|
99
66
|
version: 2.5.0
|
100
67
|
type: :development
|
101
68
|
prerelease: false
|
102
|
-
version_requirements: *
|
69
|
+
version_requirements: *id005
|
103
70
|
- !ruby/object:Gem::Dependency
|
104
71
|
name: rspec-rails
|
105
|
-
requirement: &
|
72
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
106
73
|
none: false
|
107
74
|
requirements:
|
108
75
|
- - ~>
|
@@ -110,10 +77,10 @@ dependencies:
|
|
110
77
|
version: 2.5.0
|
111
78
|
type: :development
|
112
79
|
prerelease: false
|
113
|
-
version_requirements: *
|
80
|
+
version_requirements: *id006
|
114
81
|
- !ruby/object:Gem::Dependency
|
115
82
|
name: ruby-debug19
|
116
|
-
requirement: &
|
83
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
117
84
|
none: false
|
118
85
|
requirements:
|
119
86
|
- - ">="
|
@@ -121,10 +88,10 @@ dependencies:
|
|
121
88
|
version: "0"
|
122
89
|
type: :development
|
123
90
|
prerelease: false
|
124
|
-
version_requirements: *
|
91
|
+
version_requirements: *id007
|
125
92
|
- !ruby/object:Gem::Dependency
|
126
93
|
name: sqlite3-ruby
|
127
|
-
requirement: &
|
94
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
128
95
|
none: false
|
129
96
|
requirements:
|
130
97
|
- - ">="
|
@@ -132,10 +99,10 @@ dependencies:
|
|
132
99
|
version: "0"
|
133
100
|
type: :development
|
134
101
|
prerelease: false
|
135
|
-
version_requirements: *
|
102
|
+
version_requirements: *id008
|
136
103
|
- !ruby/object:Gem::Dependency
|
137
104
|
name: yard
|
138
|
-
requirement: &
|
105
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
139
106
|
none: false
|
140
107
|
requirements:
|
141
108
|
- - ~>
|
@@ -143,10 +110,10 @@ dependencies:
|
|
143
110
|
version: 0.6.0
|
144
111
|
type: :development
|
145
112
|
prerelease: false
|
146
|
-
version_requirements: *
|
113
|
+
version_requirements: *id009
|
147
114
|
- !ruby/object:Gem::Dependency
|
148
115
|
name: bundler
|
149
|
-
requirement: &
|
116
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
150
117
|
none: false
|
151
118
|
requirements:
|
152
119
|
- - ~>
|
@@ -154,10 +121,10 @@ dependencies:
|
|
154
121
|
version: 1.0.0
|
155
122
|
type: :development
|
156
123
|
prerelease: false
|
157
|
-
version_requirements: *
|
124
|
+
version_requirements: *id010
|
158
125
|
- !ruby/object:Gem::Dependency
|
159
126
|
name: jeweler
|
160
|
-
requirement: &
|
127
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
161
128
|
none: false
|
162
129
|
requirements:
|
163
130
|
- - ~>
|
@@ -165,10 +132,10 @@ dependencies:
|
|
165
132
|
version: 1.5.2
|
166
133
|
type: :development
|
167
134
|
prerelease: false
|
168
|
-
version_requirements: *
|
135
|
+
version_requirements: *id011
|
169
136
|
- !ruby/object:Gem::Dependency
|
170
137
|
name: simplecov
|
171
|
-
requirement: &
|
138
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
172
139
|
none: false
|
173
140
|
requirements:
|
174
141
|
- - ">="
|
@@ -176,10 +143,10 @@ dependencies:
|
|
176
143
|
version: 0.3.8
|
177
144
|
type: :development
|
178
145
|
prerelease: false
|
179
|
-
version_requirements: *
|
146
|
+
version_requirements: *id012
|
180
147
|
- !ruby/object:Gem::Dependency
|
181
148
|
name: timecop
|
182
|
-
requirement: &
|
149
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
183
150
|
none: false
|
184
151
|
requirements:
|
185
152
|
- - ">="
|
@@ -187,10 +154,10 @@ dependencies:
|
|
187
154
|
version: "0"
|
188
155
|
type: :development
|
189
156
|
prerelease: false
|
190
|
-
version_requirements: *
|
157
|
+
version_requirements: *id013
|
191
158
|
- !ruby/object:Gem::Dependency
|
192
159
|
name: bcrypt-ruby
|
193
|
-
requirement: &
|
160
|
+
requirement: &id014 !ruby/object:Gem::Requirement
|
194
161
|
none: false
|
195
162
|
requirements:
|
196
163
|
- - ~>
|
@@ -198,10 +165,10 @@ dependencies:
|
|
198
165
|
version: 3.0.0
|
199
166
|
type: :runtime
|
200
167
|
prerelease: false
|
201
|
-
version_requirements: *
|
168
|
+
version_requirements: *id014
|
202
169
|
- !ruby/object:Gem::Dependency
|
203
170
|
name: oauth
|
204
|
-
requirement: &
|
171
|
+
requirement: &id015 !ruby/object:Gem::Requirement
|
205
172
|
none: false
|
206
173
|
requirements:
|
207
174
|
- - ~>
|
@@ -209,10 +176,10 @@ dependencies:
|
|
209
176
|
version: 0.4.4
|
210
177
|
type: :runtime
|
211
178
|
prerelease: false
|
212
|
-
version_requirements: *
|
179
|
+
version_requirements: *id015
|
213
180
|
- !ruby/object:Gem::Dependency
|
214
181
|
name: oauth2
|
215
|
-
requirement: &
|
182
|
+
requirement: &id016 !ruby/object:Gem::Requirement
|
216
183
|
none: false
|
217
184
|
requirements:
|
218
185
|
- - ~>
|
@@ -220,7 +187,7 @@ dependencies:
|
|
220
187
|
version: 0.4.1
|
221
188
|
type: :runtime
|
222
189
|
prerelease: false
|
223
|
-
version_requirements: *
|
190
|
+
version_requirements: *id016
|
224
191
|
description: Provides common authentication needs such as signing in/out, activating by email and resetting password.
|
225
192
|
email: nbenari@gmail.com
|
226
193
|
executables: []
|