Sha256: 824b113c668d8f2438b73cf69b3e4702018b12a09ef4f7315563ae74d5a89b79

Contents?: true

Size: 1.03 KB

Versions: 13

Compression:

Stored size: 1.03 KB

Contents

# frozen_string_literal: true

require 'active_record'

module Uploadcare
  module Rails
    module Objects
      # A module that contains methods for attribute assignation and caching
      module Loadable
        extend ActiveSupport::Concern
        include ::ActiveRecord::AttributeAssignment

        class_methods do
          def build_cache_key(key)
            [uploadcare_configuration.cache_namespace, key].flatten.reject(&:blank?)
          end

          def uploadcare_configuration
            Uploadcare::Rails.configuration
          end
        end

        def update_attrs(new_attrs)
          assign_attributes(new_attrs)
          self
        end

        def cache_expires_in
          uploadcare_configuration.cache_expires_in
        end

        def caching_enabled?
          uploadcare_configuration.cache_files
        end

        def uploadcare_configuration
          self.class.uploadcare_configuration
        end

        def cache_key
          self.class.build_cache_key(cdn_url)
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
uploadcare-rails-3.4.3 lib/uploadcare/rails/objects/concerns/loadable.rb
uploadcare-rails-3.4.1 lib/uploadcare/rails/objects/concerns/loadable.rb
uploadcare-rails-3.4.0 lib/uploadcare/rails/objects/concerns/loadable.rb
uploadcare-rails-3.3.4 lib/uploadcare/rails/objects/concerns/loadable.rb
uploadcare-rails-3.3.3 lib/uploadcare/rails/objects/concerns/loadable.rb
uploadcare-rails-3.3.2.1 lib/uploadcare/rails/objects/concerns/loadable.rb
uploadcare-rails-3.3.2 lib/uploadcare/rails/objects/concerns/loadable.rb
uploadcare-rails-3.3.1 lib/uploadcare/rails/objects/concerns/loadable.rb
uploadcare-rails-3.3.0 lib/uploadcare/rails/objects/concerns/loadable.rb
uploadcare-rails-3.2.0 lib/uploadcare/rails/objects/concerns/loadable.rb
uploadcare-rails-2.1.1 lib/uploadcare/rails/objects/concerns/loadable.rb
uploadcare-rails-2.1.0 lib/uploadcare/rails/objects/concerns/loadable.rb
uploadcare-rails-2.0.0 lib/uploadcare/rails/objects/concerns/loadable.rb