diff options
author | George Claghorn <george@basecamp.com> | 2017-10-12 13:40:25 -0400 |
---|---|---|
committer | George Claghorn <george@basecamp.com> | 2017-10-12 13:40:49 -0400 |
commit | 62ff514d33d3a3b0930956a4b4866e6b228c278c (patch) | |
tree | 7fb2843cf601c9181596e427543018f3e1e61bf4 /activestorage/app/models/active_storage/variation.rb | |
parent | 445c682a8465b1a42f1335ae2cf7d20b9a112fcd (diff) | |
download | rails-62ff514d33d3a3b0930956a4b4866e6b228c278c.tar.gz rails-62ff514d33d3a3b0930956a4b4866e6b228c278c.tar.bz2 rails-62ff514d33d3a3b0930956a4b4866e6b228c278c.zip |
Accept variation keys in #preview and #variant
Diffstat (limited to 'activestorage/app/models/active_storage/variation.rb')
-rw-r--r-- | activestorage/app/models/active_storage/variation.rb | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/activestorage/app/models/active_storage/variation.rb b/activestorage/app/models/active_storage/variation.rb index df2643442a..13bad87cac 100644 --- a/activestorage/app/models/active_storage/variation.rb +++ b/activestorage/app/models/active_storage/variation.rb @@ -13,16 +13,21 @@ class ActiveStorage::Variation attr_reader :transformations class << self - def wrap(variation_or_key) - case variation_or_key + # Returns a Variation instance based on the given variator. If the variator is a Variation, it is + # returned unmodified. If it is a String, it is passed to ActiveStorage::Variation.decode. Otherwise, + # it is assumed to be a transformations Hash and is passed directly to the constructor. + def wrap(variator) + case variator when self - variation_or_key + variator + when String + decode variator else - decode variation_or_key + new variator end end - # Returns a variation instance with the transformations that were encoded by +encode+. + # Returns a Variation instance with the transformations that were encoded by +encode+. def decode(key) new ActiveStorage.verifier.verify(key, purpose: :variation) end |