devise 3.4.1 → 3.5.10
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.
Potentially problematic release.
This version of devise might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.travis.yml +28 -19
- data/CHANGELOG.md +193 -104
- data/CODE_OF_CONDUCT.md +22 -0
- data/CONTRIBUTING.md +2 -0
- data/Gemfile +3 -2
- data/Gemfile.lock +90 -95
- data/MIT-LICENSE +1 -1
- data/README.md +55 -34
- data/Rakefile +2 -1
- data/app/controllers/devise/confirmations_controller.rb +4 -0
- data/app/controllers/devise/omniauth_callbacks_controller.rb +4 -0
- data/app/controllers/devise/passwords_controller.rb +14 -4
- data/app/controllers/devise/registrations_controller.rb +10 -11
- data/app/controllers/devise/sessions_controller.rb +7 -2
- data/app/controllers/devise/unlocks_controller.rb +3 -0
- data/app/controllers/devise_controller.rb +34 -18
- data/app/mailers/devise/mailer.rb +4 -0
- data/app/views/devise/confirmations/new.html.erb +1 -1
- data/app/views/devise/mailer/password_change.html.erb +3 -0
- data/app/views/devise/passwords/edit.html.erb +3 -0
- data/app/views/devise/registrations/new.html.erb +1 -1
- data/app/views/devise/shared/_links.html.erb +1 -1
- data/config/locales/en.yml +2 -0
- data/devise.gemspec +0 -2
- data/gemfiles/Gemfile.rails-3.2-stable.lock +52 -49
- data/gemfiles/Gemfile.rails-4.0-stable +1 -0
- data/gemfiles/Gemfile.rails-4.0-stable.lock +61 -60
- data/gemfiles/Gemfile.rails-4.1-stable +1 -0
- data/gemfiles/Gemfile.rails-4.1-stable.lock +66 -65
- data/gemfiles/Gemfile.rails-4.2-stable +30 -0
- data/gemfiles/Gemfile.rails-4.2-stable.lock +193 -0
- data/lib/devise/controllers/helpers.rb +12 -6
- data/lib/devise/controllers/rememberable.rb +9 -2
- data/lib/devise/controllers/sign_in_out.rb +2 -8
- data/lib/devise/controllers/store_location.rb +3 -1
- data/lib/devise/controllers/url_helpers.rb +7 -9
- data/lib/devise/encryptor.rb +22 -0
- data/lib/devise/failure_app.rb +48 -13
- data/lib/devise/hooks/timeoutable.rb +5 -7
- data/lib/devise/mapping.rb +1 -0
- data/lib/devise/models/authenticatable.rb +20 -26
- data/lib/devise/models/confirmable.rb +51 -17
- data/lib/devise/models/database_authenticatable.rb +17 -11
- data/lib/devise/models/lockable.rb +5 -1
- data/lib/devise/models/recoverable.rb +23 -15
- data/lib/devise/models/rememberable.rb +56 -22
- data/lib/devise/models/timeoutable.rb +0 -6
- data/lib/devise/models/trackable.rb +1 -2
- data/lib/devise/models/validatable.rb +3 -3
- data/lib/devise/models.rb +1 -1
- data/lib/devise/rails/routes.rb +27 -18
- data/lib/devise/rails.rb +1 -1
- data/lib/devise/strategies/authenticatable.rb +7 -4
- data/lib/devise/strategies/database_authenticatable.rb +1 -1
- data/lib/devise/strategies/rememberable.rb +13 -6
- data/lib/devise/test_helpers.rb +2 -2
- data/lib/devise/version.rb +1 -1
- data/lib/devise.rb +37 -36
- data/lib/generators/active_record/templates/migration.rb +1 -1
- data/lib/generators/active_record/templates/migration_existing.rb +1 -1
- data/lib/generators/devise/views_generator.rb +14 -3
- data/lib/generators/templates/controllers/README +2 -2
- data/lib/generators/templates/controllers/omniauth_callbacks_controller.rb +1 -1
- data/lib/generators/templates/controllers/registrations_controller.rb +2 -2
- data/lib/generators/templates/controllers/sessions_controller.rb +1 -1
- data/lib/generators/templates/devise.rb +17 -11
- data/lib/generators/templates/markerb/confirmation_instructions.markerb +1 -1
- data/lib/generators/templates/markerb/password_change.markerb +3 -0
- data/lib/generators/templates/markerb/reset_password_instructions.markerb +1 -1
- data/lib/generators/templates/markerb/unlock_instructions.markerb +1 -1
- data/lib/generators/templates/simple_form_for/passwords/edit.html.erb +1 -1
- data/lib/generators/templates/simple_form_for/registrations/new.html.erb +1 -1
- data/test/controllers/custom_registrations_controller_test.rb +6 -1
- data/test/controllers/helper_methods_test.rb +21 -0
- data/test/controllers/helpers_test.rb +5 -0
- data/test/controllers/inherited_controller_i18n_messages_test.rb +51 -0
- data/test/controllers/internal_helpers_test.rb +4 -4
- data/test/controllers/load_hooks_controller_test.rb +19 -0
- data/test/controllers/passwords_controller_test.rb +1 -1
- data/test/controllers/sessions_controller_test.rb +3 -3
- data/test/devise_test.rb +3 -3
- data/test/failure_app_test.rb +40 -0
- data/test/generators/views_generator_test.rb +7 -0
- data/test/integration/database_authenticatable_test.rb +11 -0
- data/test/integration/omniauthable_test.rb +12 -10
- data/test/integration/recoverable_test.rb +13 -0
- data/test/integration/rememberable_test.rb +50 -3
- data/test/integration/timeoutable_test.rb +13 -18
- data/test/mailers/confirmation_instructions_test.rb +1 -1
- data/test/mapping_test.rb +6 -0
- data/test/models/confirmable_test.rb +93 -37
- data/test/models/database_authenticatable_test.rb +20 -0
- data/test/models/lockable_test.rb +29 -7
- data/test/models/recoverable_test.rb +62 -7
- data/test/models/rememberable_test.rb +68 -97
- data/test/models/validatable_test.rb +5 -5
- data/test/models_test.rb +15 -6
- data/test/rails_app/app/active_record/user_without_email.rb +8 -0
- data/test/rails_app/app/controllers/admins_controller.rb +0 -5
- data/test/rails_app/app/controllers/custom/registrations_controller.rb +10 -0
- data/test/rails_app/app/mongoid/user_without_email.rb +33 -0
- data/test/rails_app/config/application.rb +1 -1
- data/test/rails_app/config/environments/production.rb +6 -2
- data/test/rails_app/config/environments/test.rb +7 -2
- data/test/rails_app/config/initializers/devise.rb +12 -15
- data/test/rails_app/config/routes.rb +6 -3
- data/test/rails_app/lib/shared_user.rb +1 -1
- data/test/rails_app/lib/shared_user_without_email.rb +26 -0
- data/test/rails_test.rb +9 -0
- data/test/support/helpers.rb +4 -0
- data/test/support/integration.rb +2 -2
- data/test/test_helpers_test.rb +22 -7
- data/test/test_models.rb +2 -2
- data/test/time_helpers.rb +137 -0
- metadata +26 -4
@@ -23,6 +23,7 @@ class Devise::PasswordsController < DeviseController
|
|
23
23
|
# GET /resource/password/edit?reset_password_token=abcdef
|
24
24
|
def edit
|
25
25
|
self.resource = resource_class.new
|
26
|
+
set_minimum_password_length
|
26
27
|
resource.reset_password_token = params[:reset_password_token]
|
27
28
|
end
|
28
29
|
|
@@ -33,18 +34,23 @@ class Devise::PasswordsController < DeviseController
|
|
33
34
|
|
34
35
|
if resource.errors.empty?
|
35
36
|
resource.unlock_access! if unlockable?(resource)
|
36
|
-
|
37
|
-
|
38
|
-
|
37
|
+
if Devise.sign_in_after_reset_password
|
38
|
+
flash_message = resource.active_for_authentication? ? :updated : :updated_not_active
|
39
|
+
set_flash_message(:notice, flash_message) if is_flashing_format?
|
40
|
+
sign_in(resource_name, resource)
|
41
|
+
else
|
42
|
+
set_flash_message(:notice, :updated_not_active) if is_flashing_format?
|
43
|
+
end
|
39
44
|
respond_with resource, location: after_resetting_password_path_for(resource)
|
40
45
|
else
|
46
|
+
set_minimum_password_length
|
41
47
|
respond_with resource
|
42
48
|
end
|
43
49
|
end
|
44
50
|
|
45
51
|
protected
|
46
52
|
def after_resetting_password_path_for(resource)
|
47
|
-
after_sign_in_path_for(resource)
|
53
|
+
Devise.sign_in_after_reset_password ? after_sign_in_path_for(resource) : new_session_path(resource_name)
|
48
54
|
end
|
49
55
|
|
50
56
|
# The path used after sending reset password instructions
|
@@ -67,4 +73,8 @@ class Devise::PasswordsController < DeviseController
|
|
67
73
|
resource.respond_to?(:unlock_strategy_enabled?) &&
|
68
74
|
resource.unlock_strategy_enabled?(:email)
|
69
75
|
end
|
76
|
+
|
77
|
+
def translation_scope
|
78
|
+
'devise.passwords'
|
79
|
+
end
|
70
80
|
end
|
@@ -1,14 +1,12 @@
|
|
1
1
|
class Devise::RegistrationsController < DeviseController
|
2
|
-
prepend_before_filter :require_no_authentication, only: [
|
2
|
+
prepend_before_filter :require_no_authentication, only: [:new, :create, :cancel]
|
3
3
|
prepend_before_filter :authenticate_scope!, only: [:edit, :update, :destroy]
|
4
4
|
|
5
5
|
# GET /resource/sign_up
|
6
6
|
def new
|
7
7
|
build_resource({})
|
8
|
-
|
9
|
-
if
|
10
|
-
@minimum_password_length = resource_class.password_length.min
|
11
|
-
end
|
8
|
+
set_minimum_password_length
|
9
|
+
yield resource if block_given?
|
12
10
|
respond_with self.resource
|
13
11
|
end
|
14
12
|
|
@@ -16,9 +14,9 @@ class Devise::RegistrationsController < DeviseController
|
|
16
14
|
def create
|
17
15
|
build_resource(sign_up_params)
|
18
16
|
|
19
|
-
|
17
|
+
resource.save
|
20
18
|
yield resource if block_given?
|
21
|
-
if
|
19
|
+
if resource.persisted?
|
22
20
|
if resource.active_for_authentication?
|
23
21
|
set_flash_message :notice, :signed_up if is_flashing_format?
|
24
22
|
sign_up(resource_name, resource)
|
@@ -30,10 +28,7 @@ class Devise::RegistrationsController < DeviseController
|
|
30
28
|
end
|
31
29
|
else
|
32
30
|
clean_up_passwords resource
|
33
|
-
|
34
|
-
if @validatable
|
35
|
-
@minimum_password_length = resource_class.password_length.min
|
36
|
-
end
|
31
|
+
set_minimum_password_length
|
37
32
|
respond_with resource
|
38
33
|
end
|
39
34
|
end
|
@@ -145,4 +140,8 @@ class Devise::RegistrationsController < DeviseController
|
|
145
140
|
def account_update_params
|
146
141
|
devise_parameter_sanitizer.sanitize(:account_update)
|
147
142
|
end
|
143
|
+
|
144
|
+
def translation_scope
|
145
|
+
'devise.registrations'
|
146
|
+
end
|
148
147
|
end
|
@@ -1,13 +1,14 @@
|
|
1
1
|
class Devise::SessionsController < DeviseController
|
2
|
-
prepend_before_filter :require_no_authentication, only: [
|
2
|
+
prepend_before_filter :require_no_authentication, only: [:new, :create]
|
3
3
|
prepend_before_filter :allow_params_authentication!, only: :create
|
4
4
|
prepend_before_filter :verify_signed_out_user, only: :destroy
|
5
|
-
prepend_before_filter only: [
|
5
|
+
prepend_before_filter only: [:create, :destroy] { request.env["devise.skip_timeout"] = true }
|
6
6
|
|
7
7
|
# GET /resource/sign_in
|
8
8
|
def new
|
9
9
|
self.resource = resource_class.new(sign_in_params)
|
10
10
|
clean_up_passwords(resource)
|
11
|
+
yield resource if block_given?
|
11
12
|
respond_with(resource, serialize_options(resource))
|
12
13
|
end
|
13
14
|
|
@@ -45,6 +46,10 @@ class Devise::SessionsController < DeviseController
|
|
45
46
|
{ scope: resource_name, recall: "#{controller_path}#new" }
|
46
47
|
end
|
47
48
|
|
49
|
+
def translation_scope
|
50
|
+
'devise.sessions'
|
51
|
+
end
|
52
|
+
|
48
53
|
private
|
49
54
|
|
50
55
|
# Check if there is no signed in user before doing the sign out.
|
@@ -6,12 +6,28 @@ class DeviseController < Devise.parent_controller.constantize
|
|
6
6
|
|
7
7
|
helpers = %w(resource scope_name resource_name signed_in_resource
|
8
8
|
resource_class resource_params devise_mapping)
|
9
|
-
hide_action(*helpers)
|
10
9
|
helper_method(*helpers)
|
11
10
|
|
12
11
|
prepend_before_filter :assert_is_devise_resource!
|
13
12
|
respond_to :html if mimes_for_respond_to.empty?
|
14
13
|
|
14
|
+
# Override prefixes to consider the scoped view.
|
15
|
+
# Notice we need to check for the request due to a bug in
|
16
|
+
# Action Controller tests that forces _prefixes to be
|
17
|
+
# loaded before even having a request object.
|
18
|
+
#
|
19
|
+
# This method should be public as it is is in ActionPack
|
20
|
+
# itself. Changing its visibility may break other gems.
|
21
|
+
def _prefixes #:nodoc:
|
22
|
+
@_prefixes ||= if self.class.scoped_views? && request && devise_mapping
|
23
|
+
["#{devise_mapping.scoped_path}/#{controller_name}"] + super
|
24
|
+
else
|
25
|
+
super
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
protected
|
30
|
+
|
15
31
|
# Gets the actual resource stored in the instance variable
|
16
32
|
def resource
|
17
33
|
instance_variable_get(:"@#{resource_name}")
|
@@ -38,22 +54,6 @@ class DeviseController < Devise.parent_controller.constantize
|
|
38
54
|
@devise_mapping ||= request.env["devise.mapping"]
|
39
55
|
end
|
40
56
|
|
41
|
-
# Override prefixes to consider the scoped view.
|
42
|
-
# Notice we need to check for the request due to a bug in
|
43
|
-
# Action Controller tests that forces _prefixes to be
|
44
|
-
# loaded before even having a request object.
|
45
|
-
def _prefixes #:nodoc:
|
46
|
-
@_prefixes ||= if self.class.scoped_views? && request && devise_mapping
|
47
|
-
["#{devise_mapping.scoped_path}/#{controller_name}"] + super
|
48
|
-
else
|
49
|
-
super
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
hide_action :_prefixes
|
54
|
-
|
55
|
-
protected
|
56
|
-
|
57
57
|
# Checks whether it's a devise mapped resource or not.
|
58
58
|
def assert_is_devise_resource! #:nodoc:
|
59
59
|
unknown_action! <<-MESSAGE unless devise_mapping
|
@@ -154,19 +154,33 @@ MESSAGE
|
|
154
154
|
end
|
155
155
|
end
|
156
156
|
|
157
|
+
# Sets minimum password length to show to user
|
158
|
+
def set_minimum_password_length
|
159
|
+
if devise_mapping.validatable?
|
160
|
+
@minimum_password_length = resource_class.password_length.min
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
157
164
|
def devise_i18n_options(options)
|
158
165
|
options
|
159
166
|
end
|
160
167
|
|
161
168
|
# Get message for given
|
162
169
|
def find_message(kind, options = {})
|
163
|
-
options[:scope]
|
170
|
+
options[:scope] ||= translation_scope
|
164
171
|
options[:default] = Array(options[:default]).unshift(kind.to_sym)
|
165
172
|
options[:resource_name] = resource_name
|
166
173
|
options = devise_i18n_options(options)
|
167
174
|
I18n.t("#{options[:resource_name]}.#{kind}", options)
|
168
175
|
end
|
169
176
|
|
177
|
+
# Controllers inheriting DeviseController are advised to override this
|
178
|
+
# method so that other controllers inheriting from them would use
|
179
|
+
# existing translations.
|
180
|
+
def translation_scope
|
181
|
+
"devise.#{controller_name}"
|
182
|
+
end
|
183
|
+
|
170
184
|
def clean_up_passwords(object)
|
171
185
|
object.clean_up_passwords if object.respond_to?(:clean_up_passwords)
|
172
186
|
end
|
@@ -180,4 +194,6 @@ MESSAGE
|
|
180
194
|
def resource_params
|
181
195
|
params.fetch(resource_name, {})
|
182
196
|
end
|
197
|
+
|
198
|
+
ActiveSupport.run_load_hooks(:devise_controller, self)
|
183
199
|
end
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
<div class="field">
|
7
7
|
<%= f.label :email %><br />
|
8
|
-
<%= f.email_field :email, autofocus: true %>
|
8
|
+
<%= f.email_field :email, autofocus: true, value: (resource.pending_reconfirmation? ? resource.unconfirmed_email : resource.email) %>
|
9
9
|
</div>
|
10
10
|
|
11
11
|
<div class="actions">
|
@@ -6,6 +6,9 @@
|
|
6
6
|
|
7
7
|
<div class="field">
|
8
8
|
<%= f.label :password, "New password" %><br />
|
9
|
+
<% if @minimum_password_length %>
|
10
|
+
<em>(<%= @minimum_password_length %> characters minimum)</em><br />
|
11
|
+
<% end %>
|
9
12
|
<%= f.password_field :password, autofocus: true, autocomplete: "off" %>
|
10
13
|
</div>
|
11
14
|
|
@@ -20,6 +20,6 @@
|
|
20
20
|
|
21
21
|
<%- if devise_mapping.omniauthable? %>
|
22
22
|
<%- resource_class.omniauth_providers.each do |provider| %>
|
23
|
-
<%= link_to "Sign in with #{provider
|
23
|
+
<%= link_to "Sign in with #{OmniAuth::Utils.camelize(provider)}", omniauth_authorize_path(resource_name, provider) %><br />
|
24
24
|
<% end -%>
|
25
25
|
<% end -%>
|
data/config/locales/en.yml
CHANGED
@@ -23,6 +23,8 @@ en:
|
|
23
23
|
subject: "Reset password instructions"
|
24
24
|
unlock_instructions:
|
25
25
|
subject: "Unlock instructions"
|
26
|
+
password_change:
|
27
|
+
subject: "Password Changed"
|
26
28
|
omniauth_callbacks:
|
27
29
|
failure: "Could not authenticate you from %{kind} because \"%{reason}\"."
|
28
30
|
success: "Successfully authenticated from %{kind} account."
|
data/devise.gemspec
CHANGED
@@ -13,8 +13,6 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.description = "Flexible authentication solution for Rails with Warden"
|
14
14
|
s.authors = ['José Valim', 'Carlos Antônio']
|
15
15
|
|
16
|
-
s.rubyforge_project = "devise"
|
17
|
-
|
18
16
|
s.files = `git ls-files`.split("\n")
|
19
17
|
s.test_files = `git ls-files -- test/*`.split("\n")
|
20
18
|
s.require_paths = ["lib"]
|
@@ -1,14 +1,14 @@
|
|
1
1
|
GIT
|
2
2
|
remote: git://github.com/rails/rails.git
|
3
|
-
revision:
|
3
|
+
revision: f85bbed4cdc1bdfd1e0dbd97bce9db81e44cbd11
|
4
4
|
branch: 3-2-stable
|
5
5
|
specs:
|
6
|
-
actionmailer (3.2.
|
7
|
-
actionpack (= 3.2.
|
6
|
+
actionmailer (3.2.22.2)
|
7
|
+
actionpack (= 3.2.22.2)
|
8
8
|
mail (~> 2.5.4)
|
9
|
-
actionpack (3.2.
|
10
|
-
activemodel (= 3.2.
|
11
|
-
activesupport (= 3.2.
|
9
|
+
actionpack (3.2.22.2)
|
10
|
+
activemodel (= 3.2.22.2)
|
11
|
+
activesupport (= 3.2.22.2)
|
12
12
|
builder (~> 3.0.0)
|
13
13
|
erubis (~> 2.7.0)
|
14
14
|
journey (~> 1.0.4)
|
@@ -16,31 +16,31 @@ GIT
|
|
16
16
|
rack-cache (~> 1.2)
|
17
17
|
rack-test (~> 0.6.1)
|
18
18
|
sprockets (~> 2.2.1)
|
19
|
-
activemodel (3.2.
|
20
|
-
activesupport (= 3.2.
|
19
|
+
activemodel (3.2.22.2)
|
20
|
+
activesupport (= 3.2.22.2)
|
21
21
|
builder (~> 3.0.0)
|
22
|
-
activerecord (3.2.
|
23
|
-
activemodel (= 3.2.
|
24
|
-
activesupport (= 3.2.
|
22
|
+
activerecord (3.2.22.2)
|
23
|
+
activemodel (= 3.2.22.2)
|
24
|
+
activesupport (= 3.2.22.2)
|
25
25
|
arel (~> 3.0.2)
|
26
26
|
tzinfo (~> 0.3.29)
|
27
|
-
activeresource (3.2.
|
28
|
-
activemodel (= 3.2.
|
29
|
-
activesupport (= 3.2.
|
30
|
-
activesupport (3.2.
|
27
|
+
activeresource (3.2.22.2)
|
28
|
+
activemodel (= 3.2.22.2)
|
29
|
+
activesupport (= 3.2.22.2)
|
30
|
+
activesupport (3.2.22.2)
|
31
31
|
i18n (~> 0.6, >= 0.6.4)
|
32
32
|
multi_json (~> 1.0)
|
33
|
-
rails (3.2.
|
34
|
-
actionmailer (= 3.2.
|
35
|
-
actionpack (= 3.2.
|
36
|
-
activerecord (= 3.2.
|
37
|
-
activeresource (= 3.2.
|
38
|
-
activesupport (= 3.2.
|
33
|
+
rails (3.2.22.2)
|
34
|
+
actionmailer (= 3.2.22.2)
|
35
|
+
actionpack (= 3.2.22.2)
|
36
|
+
activerecord (= 3.2.22.2)
|
37
|
+
activeresource (= 3.2.22.2)
|
38
|
+
activesupport (= 3.2.22.2)
|
39
39
|
bundler (~> 1.0)
|
40
|
-
railties (= 3.2.
|
41
|
-
railties (3.2.
|
42
|
-
actionpack (= 3.2.
|
43
|
-
activesupport (= 3.2.
|
40
|
+
railties (= 3.2.22.2)
|
41
|
+
railties (3.2.22.2)
|
42
|
+
actionpack (= 3.2.22.2)
|
43
|
+
activesupport (= 3.2.22.2)
|
44
44
|
rack-ssl (~> 1.3.2)
|
45
45
|
rake (>= 0.8.7)
|
46
46
|
rdoc (~> 3.4)
|
@@ -49,7 +49,7 @@ GIT
|
|
49
49
|
PATH
|
50
50
|
remote: ..
|
51
51
|
specs:
|
52
|
-
devise (3.
|
52
|
+
devise (3.5.8)
|
53
53
|
bcrypt (~> 3.0)
|
54
54
|
orm_adapter (~> 0.1)
|
55
55
|
railties (>= 3.2.6, < 5)
|
@@ -61,36 +61,36 @@ GEM
|
|
61
61
|
remote: https://rubygems.org/
|
62
62
|
specs:
|
63
63
|
arel (3.0.3)
|
64
|
-
bcrypt (3.1.
|
64
|
+
bcrypt (3.1.11)
|
65
65
|
builder (3.0.4)
|
66
66
|
erubis (2.7.0)
|
67
|
-
faraday (0.9.
|
67
|
+
faraday (0.9.2)
|
68
68
|
multipart-post (>= 1.2, < 3)
|
69
|
-
hashie (3.
|
69
|
+
hashie (3.4.3)
|
70
70
|
hike (1.2.3)
|
71
|
-
i18n (0.
|
71
|
+
i18n (0.7.0)
|
72
72
|
journey (1.0.4)
|
73
|
-
json (1.8.
|
74
|
-
jwt (1.
|
73
|
+
json (1.8.3)
|
74
|
+
jwt (1.5.4)
|
75
75
|
mail (2.5.4)
|
76
76
|
mime-types (~> 1.16)
|
77
77
|
treetop (~> 1.4.8)
|
78
78
|
metaclass (0.0.4)
|
79
79
|
mime-types (1.25.1)
|
80
|
-
|
80
|
+
mini_portile2 (2.0.0)
|
81
81
|
mocha (1.1.0)
|
82
82
|
metaclass (~> 0.0.1)
|
83
|
-
mongoid (3.1.
|
83
|
+
mongoid (3.1.7)
|
84
84
|
activemodel (~> 3.2)
|
85
85
|
moped (~> 1.4)
|
86
86
|
origin (~> 1.0)
|
87
87
|
tzinfo (~> 0.3.29)
|
88
|
-
moped (1.5.
|
89
|
-
multi_json (1.
|
88
|
+
moped (1.5.3)
|
89
|
+
multi_json (1.11.3)
|
90
90
|
multi_xml (0.5.5)
|
91
91
|
multipart-post (2.0.0)
|
92
|
-
nokogiri (1.6.
|
93
|
-
|
92
|
+
nokogiri (1.6.7.2)
|
93
|
+
mini_portile2 (~> 2.0.0.rc2)
|
94
94
|
oauth2 (0.9.4)
|
95
95
|
faraday (>= 0.8, < 0.10)
|
96
96
|
jwt (~> 1.0)
|
@@ -113,36 +113,36 @@ GEM
|
|
113
113
|
origin (1.1.0)
|
114
114
|
orm_adapter (0.5.0)
|
115
115
|
polyglot (0.3.5)
|
116
|
-
rack (1.4.
|
117
|
-
rack-cache (1.
|
116
|
+
rack (1.4.7)
|
117
|
+
rack-cache (1.6.1)
|
118
118
|
rack (>= 0.4)
|
119
119
|
rack-openid (1.3.1)
|
120
120
|
rack (>= 1.1.0)
|
121
121
|
ruby-openid (>= 2.1.8)
|
122
122
|
rack-ssl (1.3.4)
|
123
123
|
rack
|
124
|
-
rack-test (0.6.
|
124
|
+
rack-test (0.6.3)
|
125
125
|
rack (>= 1.0)
|
126
|
-
rake (
|
126
|
+
rake (11.1.2)
|
127
127
|
rdoc (3.12.2)
|
128
128
|
json (~> 1.4)
|
129
|
-
responders (1.1.
|
129
|
+
responders (1.1.2)
|
130
130
|
railties (>= 3.2, < 4.2)
|
131
|
-
ruby-openid (2.
|
132
|
-
sprockets (2.2.
|
131
|
+
ruby-openid (2.7.0)
|
132
|
+
sprockets (2.2.3)
|
133
133
|
hike (~> 1.2)
|
134
134
|
multi_json (~> 1.0)
|
135
135
|
rack (~> 1.0)
|
136
136
|
tilt (~> 1.1, != 1.3.0)
|
137
|
-
sqlite3 (1.3.
|
137
|
+
sqlite3 (1.3.11)
|
138
138
|
thor (0.19.1)
|
139
|
-
thread_safe (0.3.
|
139
|
+
thread_safe (0.3.5)
|
140
140
|
tilt (1.4.1)
|
141
141
|
treetop (1.4.15)
|
142
142
|
polyglot
|
143
143
|
polyglot (>= 0.3.1)
|
144
|
-
tzinfo (0.3.
|
145
|
-
warden (1.2.
|
144
|
+
tzinfo (0.3.49)
|
145
|
+
warden (1.2.6)
|
146
146
|
rack (>= 1.0)
|
147
147
|
webrat (0.7.3)
|
148
148
|
nokogiri (>= 1.2.0)
|
@@ -167,3 +167,6 @@ DEPENDENCIES
|
|
167
167
|
rdoc
|
168
168
|
sqlite3
|
169
169
|
webrat (= 0.7.3)
|
170
|
+
|
171
|
+
BUNDLED WITH
|
172
|
+
1.11.2
|