Sha256: 500c6cb0916274bd1ccf66c4f498af5f9bd2b69c31147bbb56e049b685518878

Contents?: true

Size: 1.38 KB

Versions: 1

Compression:

Stored size: 1.38 KB

Contents

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'

# 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 :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)
    super
    @extensions.each {|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.2.4 lib/asset_cloud.rb