module RailsCom::BlobExt
Public Class Methods
prepended(klass)
click to toggle source
# File lib/rails_com/active_storage/blob_ext.rb, line 3 def self.prepended(klass) klass.class_attribute :private_service end
Public Instance Methods
duration()
click to toggle source
# File lib/rails_com/active_storage/blob_ext.rb, line 7 def duration r = metadata[:duration] || 0 rh = TimeHelper.exact_distance_time(r.to_f) "#{rh[:minute]}:#{rh[:second].to_s.rjust(2, '0')}" end
private()
click to toggle source
# File lib/rails_com/active_storage/blob_ext.rb, line 21 def private return @private if defined?(@private) rts = self.attachments.pluck(:record_type, :name).uniq.to_combined_h ps = Rails.cache.fetch('blob_default/private') do ActiveStorage::BlobDefault.where(private: true).pluck(:record_class, :name).to_combined_h end @private = ps.slice(*rts.keys).map { |p, v| (Array(rts[p]) - Array(v)).blank? }.uniq == [true] end
service()
click to toggle source
Calls superclass method
# File lib/rails_com/active_storage/blob_ext.rb, line 13 def service if private && private_service private_service else super end end