Sha256: 09a840dcb92479b6b79c2925839c5c0761f75b44dd0900ff1a3d21a6c26f21e3

Contents?: true

Size: 1.52 KB

Versions: 1

Compression:

Stored size: 1.52 KB

Contents

# frozen_string_literal: true

require "addressable"
require "active_support"

# Core
require "asset_cloud/asset"
require "asset_cloud/metadata"
require "asset_cloud/bucket"
require "asset_cloud/buckets/active_record_bucket"
require "asset_cloud/buckets/blackhole_bucket"
require "asset_cloud/buckets/bucket_chain"
require "asset_cloud/buckets/file_system_bucket"
require "asset_cloud/buckets/invalid_bucket"
require "asset_cloud/buckets/memory_bucket"
require "asset_cloud/buckets/versioned_memory_bucket"
require "asset_cloud/base"

# S3
require "asset_cloud/buckets/s3_bucket"

# GCS
require "asset_cloud/buckets/gcs_bucket"

# Extensions
require "asset_cloud/free_key_locator"
require "asset_cloud/callbacks"
require "asset_cloud/validations"

require "asset_cloud/asset_extension"

AssetCloud::Base.class_eval do
  include AssetCloud::FreeKeyLocator
  include AssetCloud::Callbacks
  callback_methods :create, :update, :write, :delete
end

AssetCloud::Asset.class_eval do
  include AssetCloud::Callbacks
  callback_methods :store, :delete

  include AssetCloud::Validations
  callback_methods :validate
  validate :valid_key

  def execute_callbacks(symbol, args)
    result = super
    result && @extensions.all? { |ext| ext.execute_callbacks(symbol, args) }
  end

  protected

  def valid_key_path?(key)
    key =~ AssetCloud::Base::VALID_PATHS
  end

  private

  def valid_key
    if key.blank?
      add_error("key cannot be empty")
    elsif !valid_key_path?(key)
      add_error("#{key.inspect} contains illegal characters")
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
asset_cloud-2.7.2 lib/asset_cloud.rb