sorcery 0.7.11 → 0.7.12
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/.travis.yml +1 -0
- data/Gemfile +3 -2
- data/Gemfile.lock +7 -0
- data/README.rdoc +21 -1
- data/Rakefile +6 -5
- data/VERSION +1 -1
- data/lib/sorcery/controller/submodules/external.rb +2 -0
- data/lib/sorcery/model/submodules/brute_force_protection.rb +7 -5
- data/sorcery.gemspec +9 -6
- data/spec/rails3/app/controllers/application_controller.rb +40 -0
- data/spec/rails3/spec/controller_oauth2_spec.rb +32 -0
- data/spec/rails3/spec/controller_oauth_spec.rb +9 -0
- metadata +129 -123
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -4,6 +4,7 @@ source :rubygems
|
|
4
4
|
# gem "activesupport", ">= 2.3.5"
|
5
5
|
gem 'oauth', "~> 0.4.4"
|
6
6
|
gem 'oauth2', "~> 0.5.1"
|
7
|
+
gem 'bcrypt-ruby', "~> 3.0.0"
|
7
8
|
|
8
9
|
# Add dependencies to develop your gem here.
|
9
10
|
# Include everything needed to run rake, tests, features, etc.
|
@@ -20,6 +21,6 @@ group :development do
|
|
20
21
|
gem 'simplecov', '>= 0.3.8', :require => false # Will install simplecov-html as a dependency
|
21
22
|
gem 'timecop'
|
22
23
|
gem 'capybara'
|
23
|
-
gem '
|
24
|
+
gem 'mongo_mapper'
|
24
25
|
gem 'mongoid', "~> 2.4.4"
|
25
|
-
end
|
26
|
+
end
|
data/Gemfile.lock
CHANGED
@@ -70,6 +70,10 @@ GEM
|
|
70
70
|
mime-types (1.18)
|
71
71
|
mongo (1.6.1)
|
72
72
|
bson (~> 1.6.1)
|
73
|
+
mongo_mapper (0.11.1)
|
74
|
+
activemodel (~> 3.0)
|
75
|
+
activesupport (~> 3.0)
|
76
|
+
plucky (~> 0.4.0)
|
73
77
|
mongoid (2.4.7)
|
74
78
|
activemodel (~> 3.1)
|
75
79
|
mongo (~> 1.3)
|
@@ -81,6 +85,8 @@ GEM
|
|
81
85
|
oauth2 (0.5.2)
|
82
86
|
faraday (~> 0.7)
|
83
87
|
multi_json (~> 1.0)
|
88
|
+
plucky (0.4.4)
|
89
|
+
mongo (~> 1.5)
|
84
90
|
polyglot (0.3.3)
|
85
91
|
rack (1.4.1)
|
86
92
|
rack-cache (1.2)
|
@@ -167,6 +173,7 @@ DEPENDENCIES
|
|
167
173
|
capybara
|
168
174
|
jeweler (~> 1.8.3)
|
169
175
|
json (>= 1.5.1)
|
176
|
+
mongo_mapper
|
170
177
|
mongoid (~> 2.4.4)
|
171
178
|
oauth (~> 0.4.4)
|
172
179
|
oauth2 (~> 0.5.1)
|
data/README.rdoc
CHANGED
@@ -29,7 +29,7 @@ Railscast: http://railscasts.com/episodes/283-authentication-with-sorcery
|
|
29
29
|
|
30
30
|
Example Rails 3 app using sorcery: https://github.com/NoamB/sorcery-example-app
|
31
31
|
|
32
|
-
Documentation: http://rubydoc.info/gems/sorcery/0.7.
|
32
|
+
Documentation: http://rubydoc.info/gems/sorcery/0.7.12/frames
|
33
33
|
|
34
34
|
Check out the tutorials in the github wiki!
|
35
35
|
|
@@ -118,6 +118,26 @@ add them to the initializer file.
|
|
118
118
|
Inside the initializer, the comments will tell you what each setting does.
|
119
119
|
|
120
120
|
|
121
|
+
== DelayedJob Integration
|
122
|
+
|
123
|
+
By default emails are sent synchronously. You can send them asynchronously by using the
|
124
|
+
[delayed_job gem](https://github.com/collectiveidea/delayed_job).
|
125
|
+
|
126
|
+
After implementing the `delayed_job` into your project add the code below at the end of
|
127
|
+
the `config/initializers/sorcery.rb` file. After that all emails will be sent asynchronously.
|
128
|
+
|
129
|
+
module Sorcery
|
130
|
+
module Model
|
131
|
+
module InstanceMethods
|
132
|
+
def generic_send_email(method, mailer)
|
133
|
+
config = sorcery_config
|
134
|
+
mail = config.send(mailer).delay.send(config.send(method), self)
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
|
121
141
|
== Full Features List by module:
|
122
142
|
|
123
143
|
|
data/Rakefile
CHANGED
@@ -43,13 +43,14 @@ task :default => :all_sorcery_specs
|
|
43
43
|
|
44
44
|
desc "Run all sorcery specs"
|
45
45
|
task :all_sorcery_specs do
|
46
|
+
# we need to be empty, otherwise bundler will use parent bundler.
|
47
|
+
env = {
|
48
|
+
'BUNDLE_GEMFILE' => nil,
|
49
|
+
'GEM_HOME' => nil
|
50
|
+
}
|
46
51
|
Dir['spec/**/Rakefile'].each do |rakefile|
|
47
52
|
directory_name = File.dirname(rakefile)
|
48
|
-
|
49
|
-
cd #{directory_name}
|
50
|
-
bundle
|
51
|
-
bundle exec rake
|
52
|
-
CMD
|
53
|
+
system(env, "cd #{directory_name} && bundle && bundle exec rake")
|
53
54
|
end
|
54
55
|
end
|
55
56
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.7.
|
1
|
+
0.7.12
|
@@ -46,7 +46,9 @@ module Sorcery
|
|
46
46
|
@provider.process_callback(params,session)
|
47
47
|
@user_hash = @provider.get_user_hash
|
48
48
|
if user = user_class.load_from_provider(provider,@user_hash[:uid].to_s)
|
49
|
+
return_to_url = session[:return_to_url]
|
49
50
|
reset_session
|
51
|
+
session[:return_to_url] = return_to_url
|
50
52
|
auto_login(user)
|
51
53
|
user
|
52
54
|
end
|
@@ -41,10 +41,6 @@ module Sorcery
|
|
41
41
|
end
|
42
42
|
base.extend(ClassMethods)
|
43
43
|
base.send(:include, InstanceMethods)
|
44
|
-
|
45
|
-
base.class_eval do
|
46
|
-
after_update :send_unlock_token_email!, :if => Proc.new { |user| user.send(sorcery_config.unlock_token_attribute_name).present? }
|
47
|
-
end
|
48
44
|
end
|
49
45
|
|
50
46
|
module ClassMethods
|
@@ -59,11 +55,13 @@ module Sorcery
|
|
59
55
|
def define_brute_force_protection_mongoid_fields
|
60
56
|
field sorcery_config.failed_logins_count_attribute_name, :type => Integer, :default => 0
|
61
57
|
field sorcery_config.lock_expires_at_attribute_name, :type => Time
|
58
|
+
field sorcery_config.unlock_token_attribute_name, :type => String
|
62
59
|
end
|
63
60
|
|
64
61
|
def define_brute_force_protection_mongo_mapper_fields
|
65
62
|
key sorcery_config.failed_logins_count_attribute_name, Integer, :default => 0
|
66
63
|
key sorcery_config.lock_expires_at_attribute_name, Time
|
64
|
+
key sorcery_config.unlock_token_attribute_name, String
|
67
65
|
end
|
68
66
|
end
|
69
67
|
|
@@ -94,7 +92,11 @@ module Sorcery
|
|
94
92
|
def lock!
|
95
93
|
config = sorcery_config
|
96
94
|
self.send(:"#{config.lock_expires_at_attribute_name}=", Time.now.in_time_zone + config.login_lock_time_period)
|
97
|
-
|
95
|
+
|
96
|
+
unless config.unlock_token_mailer_disabled || config.unlock_token_mailer.nil?
|
97
|
+
self.send(:"#{config.unlock_token_attribute_name}=", TemporaryToken.generate_random_token)
|
98
|
+
send_unlock_token_email!
|
99
|
+
end
|
98
100
|
self.save!(:validate => false)
|
99
101
|
end
|
100
102
|
|
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.12"
|
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 = "2012-
|
12
|
+
s.date = "2012-05-06"
|
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 = [
|
@@ -302,7 +302,7 @@ Gem::Specification.new do |s|
|
|
302
302
|
s.homepage = "http://github.com/NoamB/sorcery"
|
303
303
|
s.licenses = ["MIT"]
|
304
304
|
s.require_paths = ["lib"]
|
305
|
-
s.rubygems_version = "1.8.
|
305
|
+
s.rubygems_version = "1.8.10"
|
306
306
|
s.summary = "Magical authentication for Rails 3 applications"
|
307
307
|
|
308
308
|
if s.respond_to? :specification_version then
|
@@ -311,6 +311,7 @@ Gem::Specification.new do |s|
|
|
311
311
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
312
312
|
s.add_runtime_dependency(%q<oauth>, ["~> 0.4.4"])
|
313
313
|
s.add_runtime_dependency(%q<oauth2>, ["~> 0.5.1"])
|
314
|
+
s.add_runtime_dependency(%q<bcrypt-ruby>, ["~> 3.0.0"])
|
314
315
|
s.add_development_dependency(%q<rails>, [">= 3.0.0"])
|
315
316
|
s.add_development_dependency(%q<json>, [">= 1.5.1"])
|
316
317
|
s.add_development_dependency(%q<rspec>, ["~> 2.5.0"])
|
@@ -323,11 +324,12 @@ Gem::Specification.new do |s|
|
|
323
324
|
s.add_development_dependency(%q<simplecov>, [">= 0.3.8"])
|
324
325
|
s.add_development_dependency(%q<timecop>, [">= 0"])
|
325
326
|
s.add_development_dependency(%q<capybara>, [">= 0"])
|
326
|
-
s.add_development_dependency(%q<
|
327
|
+
s.add_development_dependency(%q<mongo_mapper>, [">= 0"])
|
327
328
|
s.add_development_dependency(%q<mongoid>, ["~> 2.4.4"])
|
328
329
|
else
|
329
330
|
s.add_dependency(%q<oauth>, ["~> 0.4.4"])
|
330
331
|
s.add_dependency(%q<oauth2>, ["~> 0.5.1"])
|
332
|
+
s.add_dependency(%q<bcrypt-ruby>, ["~> 3.0.0"])
|
331
333
|
s.add_dependency(%q<rails>, [">= 3.0.0"])
|
332
334
|
s.add_dependency(%q<json>, [">= 1.5.1"])
|
333
335
|
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
@@ -340,12 +342,13 @@ Gem::Specification.new do |s|
|
|
340
342
|
s.add_dependency(%q<simplecov>, [">= 0.3.8"])
|
341
343
|
s.add_dependency(%q<timecop>, [">= 0"])
|
342
344
|
s.add_dependency(%q<capybara>, [">= 0"])
|
343
|
-
s.add_dependency(%q<
|
345
|
+
s.add_dependency(%q<mongo_mapper>, [">= 0"])
|
344
346
|
s.add_dependency(%q<mongoid>, ["~> 2.4.4"])
|
345
347
|
end
|
346
348
|
else
|
347
349
|
s.add_dependency(%q<oauth>, ["~> 0.4.4"])
|
348
350
|
s.add_dependency(%q<oauth2>, ["~> 0.5.1"])
|
351
|
+
s.add_dependency(%q<bcrypt-ruby>, ["~> 3.0.0"])
|
349
352
|
s.add_dependency(%q<rails>, [">= 3.0.0"])
|
350
353
|
s.add_dependency(%q<json>, [">= 1.5.1"])
|
351
354
|
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
@@ -358,7 +361,7 @@ Gem::Specification.new do |s|
|
|
358
361
|
s.add_dependency(%q<simplecov>, [">= 0.3.8"])
|
359
362
|
s.add_dependency(%q<timecop>, [">= 0"])
|
360
363
|
s.add_dependency(%q<capybara>, [">= 0"])
|
361
|
-
s.add_dependency(%q<
|
364
|
+
s.add_dependency(%q<mongo_mapper>, [">= 0"])
|
362
365
|
s.add_dependency(%q<mongoid>, ["~> 2.4.4"])
|
363
366
|
end
|
364
367
|
end
|
@@ -137,6 +137,46 @@ class ApplicationController < ActionController::Base
|
|
137
137
|
end
|
138
138
|
end
|
139
139
|
|
140
|
+
def test_return_to_with_external
|
141
|
+
if @user = login_from(:twitter)
|
142
|
+
redirect_back_or_to "bla", :notice => "Success!"
|
143
|
+
else
|
144
|
+
redirect_to "blu", :alert => "Failed!"
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
def test_return_to_with_external2
|
149
|
+
if @user = login_from(:facebook)
|
150
|
+
redirect_back_or_to "bla", :notice => "Success!"
|
151
|
+
else
|
152
|
+
redirect_to "blu", :alert => "Failed!"
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
def test_return_to_with_external3
|
157
|
+
if @user = login_from(:github)
|
158
|
+
redirect_back_or_to "bla", :notice => "Success!"
|
159
|
+
else
|
160
|
+
redirect_to "blu", :alert => "Failed!"
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
def test_return_to_with_external4
|
165
|
+
if @user = login_from(:google)
|
166
|
+
redirect_back_or_to "bla", :notice => "Success!"
|
167
|
+
else
|
168
|
+
redirect_to "blu", :alert => "Failed!"
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
def test_return_to_with_external5
|
173
|
+
if @user = login_from(:liveid)
|
174
|
+
redirect_back_or_to "bla", :notice => "Success!"
|
175
|
+
else
|
176
|
+
redirect_to "blu", :alert => "Failed!"
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
140
180
|
def test_create_from_provider
|
141
181
|
provider = params[:provider]
|
142
182
|
login_from(provider)
|
@@ -81,6 +81,14 @@ describe ApplicationController do
|
|
81
81
|
flash[:alert].should == "Failed!"
|
82
82
|
end
|
83
83
|
|
84
|
+
it "on successful login_from the user should be redirected to the url he originally wanted" do
|
85
|
+
sorcery_model_property_set(:authentications_class, Authentication)
|
86
|
+
create_new_external_user(:facebook)
|
87
|
+
get :test_return_to_with_external2, {}, :return_to_url => "fuu"
|
88
|
+
response.should redirect_to("fuu")
|
89
|
+
flash[:notice].should == "Success!"
|
90
|
+
end
|
91
|
+
|
84
92
|
# provider: github
|
85
93
|
it "login_at redirects correctly (github)" do
|
86
94
|
create_new_user
|
@@ -103,6 +111,14 @@ describe ApplicationController do
|
|
103
111
|
flash[:alert].should == "Failed!"
|
104
112
|
end
|
105
113
|
|
114
|
+
it "on successful login_from the user should be redirected to the url he originally wanted (github)" do
|
115
|
+
sorcery_model_property_set(:authentications_class, Authentication)
|
116
|
+
create_new_external_user(:github)
|
117
|
+
get :test_return_to_with_external3, {}, :return_to_url => "fuu"
|
118
|
+
response.should redirect_to("fuu")
|
119
|
+
flash[:notice].should == "Success!"
|
120
|
+
end
|
121
|
+
|
106
122
|
# provider: google
|
107
123
|
it "login_at redirects correctly (google)" do
|
108
124
|
create_new_user
|
@@ -125,6 +141,14 @@ describe ApplicationController do
|
|
125
141
|
flash[:alert].should == "Failed!"
|
126
142
|
end
|
127
143
|
|
144
|
+
it "on successful login_from the user should be redirected to the url he originally wanted (google)" do
|
145
|
+
sorcery_model_property_set(:authentications_class, Authentication)
|
146
|
+
create_new_external_user(:google)
|
147
|
+
get :test_return_to_with_external4, {}, :return_to_url => "fuu"
|
148
|
+
response.should redirect_to("fuu")
|
149
|
+
flash[:notice].should == "Success!"
|
150
|
+
end
|
151
|
+
|
128
152
|
# provider: liveid
|
129
153
|
it "login_at redirects correctly (liveid)" do
|
130
154
|
create_new_user
|
@@ -147,6 +171,14 @@ describe ApplicationController do
|
|
147
171
|
flash[:alert].should == "Failed!"
|
148
172
|
end
|
149
173
|
|
174
|
+
it "on successful login_from the user should be redirected to the url he originally wanted (liveid)" do
|
175
|
+
sorcery_model_property_set(:authentications_class, Authentication)
|
176
|
+
create_new_external_user(:liveid)
|
177
|
+
get :test_return_to_with_external5, {}, :return_to_url => "fuu"
|
178
|
+
response.should redirect_to("fuu")
|
179
|
+
flash[:notice].should == "Success!"
|
180
|
+
end
|
181
|
+
|
150
182
|
end
|
151
183
|
|
152
184
|
|
@@ -63,6 +63,15 @@ describe ApplicationController do
|
|
63
63
|
get :test_login_from, :oauth_verifier => "blablaRERASDFcxvSDFA"
|
64
64
|
flash[:alert].should == "Failed!"
|
65
65
|
end
|
66
|
+
|
67
|
+
it "on successful 'login_from' the user should be redirected to the url he originally wanted" do
|
68
|
+
sorcery_model_property_set(:authentications_class, Authentication)
|
69
|
+
create_new_external_user(:twitter)
|
70
|
+
get :test_return_to_with_external, {}, :return_to_url => "fuu"
|
71
|
+
response.should redirect_to("fuu")
|
72
|
+
flash[:notice].should == "Success!"
|
73
|
+
end
|
74
|
+
|
66
75
|
end
|
67
76
|
|
68
77
|
describe ApplicationController do
|
metadata
CHANGED
@@ -1,203 +1,212 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: sorcery
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.7.12
|
4
5
|
prerelease:
|
5
|
-
version: 0.7.11
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Noam Ben Ari
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-05-06 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: oauth
|
17
|
-
requirement: &
|
16
|
+
requirement: &2158314580 !ruby/object:Gem::Requirement
|
18
17
|
none: false
|
19
|
-
requirements:
|
18
|
+
requirements:
|
20
19
|
- - ~>
|
21
|
-
- !ruby/object:Gem::Version
|
20
|
+
- !ruby/object:Gem::Version
|
22
21
|
version: 0.4.4
|
23
22
|
type: :runtime
|
24
23
|
prerelease: false
|
25
|
-
version_requirements: *
|
26
|
-
- !ruby/object:Gem::Dependency
|
24
|
+
version_requirements: *2158314580
|
25
|
+
- !ruby/object:Gem::Dependency
|
27
26
|
name: oauth2
|
28
|
-
requirement: &
|
27
|
+
requirement: &2158314020 !ruby/object:Gem::Requirement
|
29
28
|
none: false
|
30
|
-
requirements:
|
29
|
+
requirements:
|
31
30
|
- - ~>
|
32
|
-
- !ruby/object:Gem::Version
|
31
|
+
- !ruby/object:Gem::Version
|
33
32
|
version: 0.5.1
|
34
33
|
type: :runtime
|
35
34
|
prerelease: false
|
36
|
-
version_requirements: *
|
37
|
-
- !ruby/object:Gem::Dependency
|
35
|
+
version_requirements: *2158314020
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: bcrypt-ruby
|
38
|
+
requirement: &2158313520 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 3.0.0
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *2158313520
|
47
|
+
- !ruby/object:Gem::Dependency
|
38
48
|
name: rails
|
39
|
-
requirement: &
|
49
|
+
requirement: &2158313000 !ruby/object:Gem::Requirement
|
40
50
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
44
54
|
version: 3.0.0
|
45
55
|
type: :development
|
46
56
|
prerelease: false
|
47
|
-
version_requirements: *
|
48
|
-
- !ruby/object:Gem::Dependency
|
57
|
+
version_requirements: *2158313000
|
58
|
+
- !ruby/object:Gem::Dependency
|
49
59
|
name: json
|
50
|
-
requirement: &
|
60
|
+
requirement: &2158312440 !ruby/object:Gem::Requirement
|
51
61
|
none: false
|
52
|
-
requirements:
|
53
|
-
- -
|
54
|
-
- !ruby/object:Gem::Version
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
55
65
|
version: 1.5.1
|
56
66
|
type: :development
|
57
67
|
prerelease: false
|
58
|
-
version_requirements: *
|
59
|
-
- !ruby/object:Gem::Dependency
|
68
|
+
version_requirements: *2158312440
|
69
|
+
- !ruby/object:Gem::Dependency
|
60
70
|
name: rspec
|
61
|
-
requirement: &
|
71
|
+
requirement: &2158311900 !ruby/object:Gem::Requirement
|
62
72
|
none: false
|
63
|
-
requirements:
|
73
|
+
requirements:
|
64
74
|
- - ~>
|
65
|
-
- !ruby/object:Gem::Version
|
75
|
+
- !ruby/object:Gem::Version
|
66
76
|
version: 2.5.0
|
67
77
|
type: :development
|
68
78
|
prerelease: false
|
69
|
-
version_requirements: *
|
70
|
-
- !ruby/object:Gem::Dependency
|
79
|
+
version_requirements: *2158311900
|
80
|
+
- !ruby/object:Gem::Dependency
|
71
81
|
name: rspec-rails
|
72
|
-
requirement: &
|
82
|
+
requirement: &2158613600 !ruby/object:Gem::Requirement
|
73
83
|
none: false
|
74
|
-
requirements:
|
84
|
+
requirements:
|
75
85
|
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
86
|
+
- !ruby/object:Gem::Version
|
77
87
|
version: 2.5.0
|
78
88
|
type: :development
|
79
89
|
prerelease: false
|
80
|
-
version_requirements: *
|
81
|
-
- !ruby/object:Gem::Dependency
|
90
|
+
version_requirements: *2158613600
|
91
|
+
- !ruby/object:Gem::Dependency
|
82
92
|
name: ruby-debug19
|
83
|
-
requirement: &
|
93
|
+
requirement: &2158611860 !ruby/object:Gem::Requirement
|
84
94
|
none: false
|
85
|
-
requirements:
|
86
|
-
- -
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version:
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
89
99
|
type: :development
|
90
100
|
prerelease: false
|
91
|
-
version_requirements: *
|
92
|
-
- !ruby/object:Gem::Dependency
|
101
|
+
version_requirements: *2158611860
|
102
|
+
- !ruby/object:Gem::Dependency
|
93
103
|
name: sqlite3-ruby
|
94
|
-
requirement: &
|
104
|
+
requirement: &2158611100 !ruby/object:Gem::Requirement
|
95
105
|
none: false
|
96
|
-
requirements:
|
97
|
-
- -
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
version:
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
100
110
|
type: :development
|
101
111
|
prerelease: false
|
102
|
-
version_requirements: *
|
103
|
-
- !ruby/object:Gem::Dependency
|
112
|
+
version_requirements: *2158611100
|
113
|
+
- !ruby/object:Gem::Dependency
|
104
114
|
name: yard
|
105
|
-
requirement: &
|
115
|
+
requirement: &2158610620 !ruby/object:Gem::Requirement
|
106
116
|
none: false
|
107
|
-
requirements:
|
117
|
+
requirements:
|
108
118
|
- - ~>
|
109
|
-
- !ruby/object:Gem::Version
|
119
|
+
- !ruby/object:Gem::Version
|
110
120
|
version: 0.6.0
|
111
121
|
type: :development
|
112
122
|
prerelease: false
|
113
|
-
version_requirements: *
|
114
|
-
- !ruby/object:Gem::Dependency
|
123
|
+
version_requirements: *2158610620
|
124
|
+
- !ruby/object:Gem::Dependency
|
115
125
|
name: bundler
|
116
|
-
requirement: &
|
126
|
+
requirement: &2158610060 !ruby/object:Gem::Requirement
|
117
127
|
none: false
|
118
|
-
requirements:
|
119
|
-
- -
|
120
|
-
- !ruby/object:Gem::Version
|
128
|
+
requirements:
|
129
|
+
- - ! '>='
|
130
|
+
- !ruby/object:Gem::Version
|
121
131
|
version: 1.1.0
|
122
132
|
type: :development
|
123
133
|
prerelease: false
|
124
|
-
version_requirements: *
|
125
|
-
- !ruby/object:Gem::Dependency
|
134
|
+
version_requirements: *2158610060
|
135
|
+
- !ruby/object:Gem::Dependency
|
126
136
|
name: jeweler
|
127
|
-
requirement: &
|
137
|
+
requirement: &2158609520 !ruby/object:Gem::Requirement
|
128
138
|
none: false
|
129
|
-
requirements:
|
139
|
+
requirements:
|
130
140
|
- - ~>
|
131
|
-
- !ruby/object:Gem::Version
|
141
|
+
- !ruby/object:Gem::Version
|
132
142
|
version: 1.8.3
|
133
143
|
type: :development
|
134
144
|
prerelease: false
|
135
|
-
version_requirements: *
|
136
|
-
- !ruby/object:Gem::Dependency
|
145
|
+
version_requirements: *2158609520
|
146
|
+
- !ruby/object:Gem::Dependency
|
137
147
|
name: simplecov
|
138
|
-
requirement: &
|
148
|
+
requirement: &2158609020 !ruby/object:Gem::Requirement
|
139
149
|
none: false
|
140
|
-
requirements:
|
141
|
-
- -
|
142
|
-
- !ruby/object:Gem::Version
|
150
|
+
requirements:
|
151
|
+
- - ! '>='
|
152
|
+
- !ruby/object:Gem::Version
|
143
153
|
version: 0.3.8
|
144
154
|
type: :development
|
145
155
|
prerelease: false
|
146
|
-
version_requirements: *
|
147
|
-
- !ruby/object:Gem::Dependency
|
156
|
+
version_requirements: *2158609020
|
157
|
+
- !ruby/object:Gem::Dependency
|
148
158
|
name: timecop
|
149
|
-
requirement: &
|
159
|
+
requirement: &2158608520 !ruby/object:Gem::Requirement
|
150
160
|
none: false
|
151
|
-
requirements:
|
152
|
-
- -
|
153
|
-
- !ruby/object:Gem::Version
|
154
|
-
version:
|
161
|
+
requirements:
|
162
|
+
- - ! '>='
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '0'
|
155
165
|
type: :development
|
156
166
|
prerelease: false
|
157
|
-
version_requirements: *
|
158
|
-
- !ruby/object:Gem::Dependency
|
167
|
+
version_requirements: *2158608520
|
168
|
+
- !ruby/object:Gem::Dependency
|
159
169
|
name: capybara
|
160
|
-
requirement: &
|
170
|
+
requirement: &2158608000 !ruby/object:Gem::Requirement
|
161
171
|
none: false
|
162
|
-
requirements:
|
163
|
-
- -
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
version:
|
172
|
+
requirements:
|
173
|
+
- - ! '>='
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
version: '0'
|
166
176
|
type: :development
|
167
177
|
prerelease: false
|
168
|
-
version_requirements: *
|
169
|
-
- !ruby/object:Gem::Dependency
|
170
|
-
name:
|
171
|
-
requirement: &
|
178
|
+
version_requirements: *2158608000
|
179
|
+
- !ruby/object:Gem::Dependency
|
180
|
+
name: mongo_mapper
|
181
|
+
requirement: &2158607480 !ruby/object:Gem::Requirement
|
172
182
|
none: false
|
173
|
-
requirements:
|
174
|
-
- -
|
175
|
-
- !ruby/object:Gem::Version
|
176
|
-
version:
|
183
|
+
requirements:
|
184
|
+
- - ! '>='
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '0'
|
177
187
|
type: :development
|
178
188
|
prerelease: false
|
179
|
-
version_requirements: *
|
180
|
-
- !ruby/object:Gem::Dependency
|
189
|
+
version_requirements: *2158607480
|
190
|
+
- !ruby/object:Gem::Dependency
|
181
191
|
name: mongoid
|
182
|
-
requirement: &
|
192
|
+
requirement: &2158606940 !ruby/object:Gem::Requirement
|
183
193
|
none: false
|
184
|
-
requirements:
|
194
|
+
requirements:
|
185
195
|
- - ~>
|
186
|
-
- !ruby/object:Gem::Version
|
196
|
+
- !ruby/object:Gem::Version
|
187
197
|
version: 2.4.4
|
188
198
|
type: :development
|
189
199
|
prerelease: false
|
190
|
-
version_requirements: *
|
191
|
-
description: Provides common authentication needs such as signing in/out, activating
|
200
|
+
version_requirements: *2158606940
|
201
|
+
description: Provides common authentication needs such as signing in/out, activating
|
202
|
+
by email and resetting password.
|
192
203
|
email: nbenari@gmail.com
|
193
204
|
executables: []
|
194
|
-
|
195
205
|
extensions: []
|
196
|
-
|
197
|
-
extra_rdoc_files:
|
206
|
+
extra_rdoc_files:
|
198
207
|
- LICENSE.txt
|
199
208
|
- README.rdoc
|
200
|
-
files:
|
209
|
+
files:
|
201
210
|
- .document
|
202
211
|
- .rspec
|
203
212
|
- .travis.yml
|
@@ -480,31 +489,28 @@ files:
|
|
480
489
|
- spec/spec.opts
|
481
490
|
- spec/spec_helper.rb
|
482
491
|
homepage: http://github.com/NoamB/sorcery
|
483
|
-
licenses:
|
492
|
+
licenses:
|
484
493
|
- MIT
|
485
494
|
post_install_message:
|
486
495
|
rdoc_options: []
|
487
|
-
|
488
|
-
require_paths:
|
496
|
+
require_paths:
|
489
497
|
- lib
|
490
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
498
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
491
499
|
none: false
|
492
|
-
requirements:
|
493
|
-
- -
|
494
|
-
- !ruby/object:Gem::Version
|
495
|
-
version:
|
496
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
500
|
+
requirements:
|
501
|
+
- - ! '>='
|
502
|
+
- !ruby/object:Gem::Version
|
503
|
+
version: '0'
|
504
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
497
505
|
none: false
|
498
|
-
requirements:
|
499
|
-
- -
|
500
|
-
- !ruby/object:Gem::Version
|
501
|
-
version:
|
506
|
+
requirements:
|
507
|
+
- - ! '>='
|
508
|
+
- !ruby/object:Gem::Version
|
509
|
+
version: '0'
|
502
510
|
requirements: []
|
503
|
-
|
504
511
|
rubyforge_project:
|
505
|
-
rubygems_version: 1.8.
|
512
|
+
rubygems_version: 1.8.10
|
506
513
|
signing_key:
|
507
514
|
specification_version: 3
|
508
515
|
summary: Magical authentication for Rails 3 applications
|
509
516
|
test_files: []
|
510
|
-
|