Module: RailsCom::BlobExt
- Defined in:
- lib/rails_com/active_storage/blob_ext.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.prepended(klass) ⇒ Object
3 4 5 |
# File 'lib/rails_com/active_storage/blob_ext.rb', line 3 def self.prepended(klass) klass.class_attribute :private_service end |
Instance Method Details
#duration ⇒ Object
7 8 9 10 11 |
# File 'lib/rails_com/active_storage/blob_ext.rb', line 7 def duration r = [:duration] || 0 rh = TimeHelper.exact_distance_time(r.to_f) "#{rh[:minute]}:#{rh[:second].to_s.rjust(2, '0')}" end |
#private ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/rails_com/active_storage/blob_ext.rb', line 21 def private return @private if defined?(@private) rts = self..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 ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/rails_com/active_storage/blob_ext.rb', line 13 def service if private && private_service private_service else super end end |