forked from carrierwaveuploader/carrierwave
/
carrierwave.rb
110 lines (88 loc) · 3.29 KB
/
carrierwave.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# encoding: utf-8
require 'fileutils'
require 'active_support/core_ext/object/blank'
require 'active_support/core_ext/class/attribute'
begin
require 'active_support/core_ext/class/inheritable_attributes'
rescue LoadError
end
require 'active_support/concern'
require 'active_support/memoizable'
module CarrierWave
class << self
attr_accessor :root, :base_url
def configure(&block)
CarrierWave::Uploader::Base.configure(&block)
end
def clean_cached_files!
CarrierWave::Uploader::Base.clean_cached_files!
end
end
class UploadError < StandardError; end
class IntegrityError < UploadError; end
class InvalidParameter < UploadError; end
class ProcessingError < UploadError; end
class DownloadError < UploadError; end
autoload :SanitizedFile, 'carrierwave/sanitized_file'
autoload :Mount, 'carrierwave/mount'
autoload :RMagick, 'carrierwave/processing/rmagick'
autoload :ImageScience, 'carrierwave/processing/image_science'
autoload :MiniMagick, 'carrierwave/processing/mini_magick'
autoload :MimeTypes, 'carrierwave/processing/mime_types'
autoload :VERSION, 'carrierwave/version'
module Storage
autoload :Abstract, 'carrierwave/storage/abstract'
autoload :File, 'carrierwave/storage/file'
autoload :Fog, 'carrierwave/storage/fog'
autoload :S3, 'carrierwave/storage/s3'
autoload :GridFS, 'carrierwave/storage/grid_fs'
autoload :RightS3, 'carrierwave/storage/right_s3'
autoload :CloudFiles, 'carrierwave/storage/cloud_files'
end
module Uploader
autoload :Base, 'carrierwave/uploader'
autoload :Cache, 'carrierwave/uploader/cache'
autoload :Store, 'carrierwave/uploader/store'
autoload :Download, 'carrierwave/uploader/download'
autoload :Callbacks, 'carrierwave/uploader/callbacks'
autoload :Processing, 'carrierwave/uploader/processing'
autoload :Versions, 'carrierwave/uploader/versions'
autoload :Remove, 'carrierwave/uploader/remove'
autoload :ExtensionWhitelist, 'carrierwave/uploader/extension_whitelist'
autoload :DefaultUrl, 'carrierwave/uploader/default_url'
autoload :Proxy, 'carrierwave/uploader/proxy'
autoload :Url, 'carrierwave/uploader/url'
autoload :Mountable, 'carrierwave/uploader/mountable'
autoload :Configuration, 'carrierwave/uploader/configuration'
end
module Compatibility
autoload :Paperclip, 'carrierwave/compatibility/paperclip'
end
module Test
autoload :Matchers, 'carrierwave/test/matchers'
end
end
if defined?(Merb)
CarrierWave.root = Merb.dir_for(:public)
Merb::BootLoader.before_app_loads do
# Setup path for uploaders and load all of them before classes are loaded
Merb.push_path(:uploaders, Merb.root / 'app' / 'uploaders', '*.rb')
Dir.glob(File.join(Merb.load_paths[:uploaders])).each {|f| require f }
end
elsif defined?(Rails)
module CarrierWave
class Railtie < Rails::Railtie
initializer "carrierwave.setup_paths" do
CarrierWave.root = Rails.root.join(Rails.public_path).to_s
CarrierWave.base_url = ENV['RAILS_RELATIVE_URL_ROOT']
end
initializer "carrierwave.active_record" do
ActiveSupport.on_load :active_record do
require 'carrierwave/orm/activerecord'
end
end
end
end
elsif defined?(Sinatra)
CarrierWave.root = Sinatra::Application.public
end