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