lib/effective_assets.rb in effective_assets-0.1 vs lib/effective_assets.rb in effective_assets-1.0.0

- old
+ new

@@ -1,9 +1,10 @@ require "effective_assets/engine" require 'carrierwave' require 'delayed_job_active_record' require 'migrant' # Required for rspec to run properly +require 'jquery-fileupload-rails' module EffectiveAssets # The following are all valid config keys mattr_accessor :assets_table_name mattr_accessor :attachments_table_name @@ -12,20 +13,50 @@ mattr_accessor :aws_bucket mattr_accessor :aws_access_key_id mattr_accessor :aws_secret_access_key - mattr_accessor :aws_upload_path # This directory is where the flash s3 uploader first places files - mattr_accessor :aws_final_path # We then authenticate and use Fog to copy the object from upload_path to final_path + mattr_accessor :aws_path # This directory is where we upload files to mattr_accessor :aws_acl mattr_accessor :authorization_method + mattr_accessor :use_active_admin + def self.setup yield self + + configure_carrierwave end + def self.permitted_params + {:attachments_attributes => [:id, :asset_id, :attachable_type, :attachable_id, :position, :box, :_destroy]} + end + def self.authorized?(controller, action, resource) - raise ActiveResource::UnauthorizedAccess.new('') unless (controller || self).instance_exec(controller, action, resource, &EffectiveAssets.authorization_method) + if authorization_method.respond_to?(:call) || authorization_method.kind_of?(Symbol) + raise Effective::AccessDenied.new() unless (controller || self).instance_exec(controller, action, resource, &authorization_method) + end true end + + private + + def self.configure_carrierwave + if (@carrierwave_configured != true) && EffectiveAssets.uploader.present? && EffectiveAssets.aws_bucket.present? + CarrierWave.configure do |config| + config.fog_credentials = { + :provider => 'AWS', + :aws_access_key_id => EffectiveAssets.aws_access_key_id, + :aws_secret_access_key => EffectiveAssets.aws_secret_access_key + } + config.fog_directory = EffectiveAssets.aws_bucket + config.fog_public = EffectiveAssets.aws_acl.to_s.include?('public') + config.fog_attributes = {'Cache-Control'=>'max-age=315576000'} + config.cache_dir = "#{Rails.root}/tmp/uploads" # For heroku + end + + @carrierwave_configured = true + end + end + end