diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2017-07-04 15:01:55 +0200 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2017-07-04 15:01:55 +0200 |
commit | 2a2f8ca521e9ffaebd4227940b802ce88fdbb02d (patch) | |
tree | 364bb1b04a0acc96a82bb180e23367581a31137b /lib | |
parent | a146858a143ab14cf1af3bda3e0705c63404c7f1 (diff) | |
download | rails-2a2f8ca521e9ffaebd4227940b802ce88fdbb02d.tar.gz rails-2a2f8ca521e9ffaebd4227940b802ce88fdbb02d.tar.bz2 rails-2a2f8ca521e9ffaebd4227940b802ce88fdbb02d.zip |
Extract explaining methods
Diffstat (limited to 'lib')
-rw-r--r-- | lib/active_file/verified_key_with_expiration.rb | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/lib/active_file/verified_key_with_expiration.rb b/lib/active_file/verified_key_with_expiration.rb index b475f40f40..e9e811d364 100644 --- a/lib/active_file/verified_key_with_expiration.rb +++ b/lib/active_file/verified_key_with_expiration.rb @@ -1,15 +1,24 @@ class ActiveFile::VerifiedKeyWithExpiration class_attribute :verifier, default: defined?(Rails) ? Rails.application.message_verifier('ActiveFile') : nil - def self.encode(key, expires_in: nil) - verifier.generate([ key, expires_in ? Time.now.utc.advance(seconds: expires_in) : nil ]) - end + class << self + def encode(key, expires_in: nil) + verifier.generate([ key, expires_at(expires_in) ]) + end - def self.decode(encoded_key) - key, expires_at = verifier.verified(encoded_key) + def decode(encoded_key) + key, expires_at = verifier.verified(encoded_key) - if key - key if expires_at.nil? || Time.now.utc < expires_at + key if key && fresh?(expires_at) end + + private + def expires_at(expires_in) + expires_in ? Time.now.utc.advance(seconds: expires_in) : nil + end + + def fresh?(expires_at) + expires_at.nil? || Time.now.utc < expires_at + end end end |