From a76fccc4796c593669df4b950c134ff8d1387105 Mon Sep 17 00:00:00 2001 From: Dillon Welch Date: Tue, 4 Apr 2017 17:57:33 -0700 Subject: [PATCH 1/2] Fix Ruby 2.4 deprecations lib/devise_security_extension/models/password_archivable.rb:20: warning: constant ::Fixnum is deprecated --- .travis.yml | 2 ++ .../models/password_archivable.rb | 2 +- .../models/password_expirable.rb | 14 ++++++++++---- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 49014c87..38dffdbd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,8 @@ script: bundle exec rake rvm: - 2.1.8 - 2.2.4 + - 2.3.4 + - 2.4.1 - ruby-head matrix: allow_failures: diff --git a/lib/devise_security_extension/models/password_archivable.rb b/lib/devise_security_extension/models/password_archivable.rb index 3913cfd8..a5e4e84d 100644 --- a/lib/devise_security_extension/models/password_archivable.rb +++ b/lib/devise_security_extension/models/password_archivable.rb @@ -16,7 +16,7 @@ def validate_password_archive # validate is the password used in the past def password_archive_included? - unless deny_old_passwords.is_a? Fixnum + unless deny_old_passwords.is_a? 1.class if deny_old_passwords.is_a? TrueClass and archive_count > 0 self.deny_old_passwords = archive_count else diff --git a/lib/devise_security_extension/models/password_expirable.rb b/lib/devise_security_extension/models/password_expirable.rb index 95184ded..a957aed2 100644 --- a/lib/devise_security_extension/models/password_expirable.rb +++ b/lib/devise_security_extension/models/password_expirable.rb @@ -13,7 +13,7 @@ module PasswordExpirable # is an password change required? def need_change_password? - if self.expire_password_after.is_a? Fixnum or self.expire_password_after.is_a? Float + if expired_password_after_numeric? self.password_changed_at.nil? or self.password_changed_at < self.expire_password_after.seconds.ago else false @@ -22,7 +22,7 @@ def need_change_password? # set a fake datetime so a password change is needed and save the record def need_change_password! - if self.expire_password_after.is_a? Fixnum or self.expire_password_after.is_a? Float + if expired_password_after_numeric? need_change_password self.save(:validate => false) end @@ -30,7 +30,7 @@ def need_change_password! # set a fake datetime so a password change is needed def need_change_password - if self.expire_password_after.is_a? Fixnum or self.expire_password_after.is_a? Float + if expired_password_after_numeric? self.password_changed_at = self.expire_password_after.seconds.ago end @@ -39,7 +39,7 @@ def need_change_password self.password_changed_at end - + def expire_password_after self.class.expire_password_after end @@ -51,6 +51,12 @@ def update_password_changed self.password_changed_at = Time.now if (self.new_record? or self.encrypted_password_changed?) and not self.password_changed_at_changed? end + def expired_password_after_numeric? + return @_numeric if defined?(@_numeric) + @_numeric ||= self.expire_password_after.is_a?(1.class) || + self.expire_password_after.is_a?(Float) + end + module ClassMethods ::Devise::Models.config(self, :expire_password_after) end From bfc60edba87187aea6eaa9b9a486100fe6a385b1 Mon Sep 17 00:00:00 2001 From: Andy Pickler Date: Tue, 26 Sep 2017 04:46:28 -0600 Subject: [PATCH 2/2] Merge in Ruby 2.4 fix for deprecation warnings --- Gemfile.lock | 2 +- devise_security_extension.gemspec | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8b7153cd..265ad700 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -4,7 +4,7 @@ PATH devise_security_extension (0.10.0) devise (>= 3.0.0, < 5.0) json (~> 2.0) - railties (>= 3.2.6, < 6.0) + rails (>= 4.2.8, < 6.0) GEM remote: https://rubygems.org/ diff --git a/devise_security_extension.gemspec b/devise_security_extension.gemspec index 443d6732..5e031c13 100644 --- a/devise_security_extension.gemspec +++ b/devise_security_extension.gemspec @@ -20,7 +20,11 @@ Gem::Specification.new do |s| s.require_paths = ['lib'] s.required_ruby_version = '>= 2.4.0' - s.add_runtime_dependency 'railties', '>= 3.2.6', '< 6.0' + if RUBY_VERSION >= '2.4' + s.add_runtime_dependency 'rails', '>= 4.2.8', '< 6.0' + else + s.add_runtime_dependency 'railties', '>= 3.2.6', '< 6.0' + end s.add_runtime_dependency 'devise', '>= 3.0.0', '< 5.0' s.add_runtime_dependency 'json', '~> 2.0' s.add_development_dependency 'bundler', '>= 1.3.0', '< 2.0'