Module: CarrierWave::Uploader::Configuration::ClassMethods

Defined in:
lib/carrierwave/uploader/configuration.rb

Instance Method Summary (collapse)

Instance Method Details

- (Object) add_config(name)



106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# File 'lib/carrierwave/uploader/configuration.rb', line 106

def add_config(name)
  class_eval <<-RUBY, __FILE__, __LINE__ + 1
    def self.eager_load_fog(fog_credentials)
      # see #1198. This will hopefully no longer be necessary after fog 2.0
      Fog::Storage.new(fog_credentials) if fog_credentials.present?
    end

    def self.#{name}(value=nil)
      @#{name} = value if value
      eager_load_fog(value) if value && '#{name}' == 'fog_credentials'
      return @#{name} if self.object_id == #{self.object_id} || defined?(@#{name})
      name = superclass.#{name}
      return nil if name.nil? && !instance_variable_defined?("@#{name}")
      @#{name} = name && !name.is_a?(Module) && !name.is_a?(Symbol) && !name.is_a?(Numeric) && !name.is_a?(TrueClass) && !name.is_a?(FalseClass) ? name.dup : name
    end

    def self.#{name}=(value)
      eager_load_fog(value) if '#{name}' == 'fog_credentials'
      @#{name} = value
    end

    def #{name}=(value)
      self.class.eager_load_fog(value) if '#{name}' == 'fog_credentials'
      @#{name} = value
    end

    def #{name}
      value = @#{name} if instance_variable_defined?(:@#{name})
      value = self.class.#{name} unless instance_variable_defined?(:@#{name})
      if value.instance_of?(Proc)
        value.arity >= 1 ? value.call(self) : value.call
      else 
        value
      end
    end
  RUBY
end

- (Object) cache_storage(storage = nil) Also known as: cache_storage=

Sets the cache storage engine to be used when storing cache files with this uploader. Same as .storage except for required methods being #cache!(CarrierWave::SanitizedFile), #retrieve_from_cache! and #delete_dir!.

Parameters

storage (Symbol, Class)

The cache storage engine to use for this uploader

Returns

Class

the cache storage engine to be used with this uploader

Examples

cache_storage :file
cache_storage CarrierWave::Storage::File
cache_storage MyCustomStorageEngine


98
99
100
101
102
103
# File 'lib/carrierwave/uploader/configuration.rb', line 98

def cache_storage(storage = nil)
  if storage
    self._cache_storage = storage.is_a?(Symbol) ? eval(storage_engines[storage]) : storage
  end
  _cache_storage
end

- (Object) configure {|_self| ... }

Yields:

  • (_self)

Yield Parameters:



144
145
146
# File 'lib/carrierwave/uploader/configuration.rb', line 144

def configure
  yield self
end

- (Object) reset_config

sets configuration back to default



151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
# File 'lib/carrierwave/uploader/configuration.rb', line 151

def reset_config
  configure do |config|
    config.permissions = 0644
    config.directory_permissions = 0755
    config.storage_engines = {
      :file => "CarrierWave::Storage::File",
      :fog  => "CarrierWave::Storage::Fog"
    }
    config.storage = :file
    config.cache_storage = :file
    config.fog_attributes = {}
    config.fog_credentials = {}
    config.fog_public = true
    config.fog_authenticated_url_expiration = 600
    config.fog_use_ssl_for_aws = true
    config.store_dir = 'uploads'
    config.cache_dir = 'uploads/tmp'
    config.delete_tmp_file_after_storage = true
    config.move_to_cache = false
    config.move_to_store = false
    config.remove_previously_stored_files_after_update = true
    config.ignore_integrity_errors = true
    config.ignore_processing_errors = true
    config.ignore_download_errors = true
    config.validate_integrity = true
    config.validate_processing = true
    config.validate_download = true
    config.root = lambda { CarrierWave.root }
    config.base_path = CarrierWave.base_path
    config.enable_processing = true
    config.ensure_multipart_form = true
  end
end

- (Object) storage(storage = nil) Also known as: storage=

Sets the storage engine to be used when storing files with this uploader. Can be any class that implements a #store!(CarrierWave::SanitizedFile) and a #retrieve! method. See lib/carrierwave/storage/file.rb for an example. Storage engines should be added to CarrierWave::Uploader::Base.storage_engines so they can be referred to by a symbol, which should be more convenient

If no argument is given, it will simply return the currently used storage engine.

Parameters

storage (Symbol, Class)

The storage engine to use for this uploader

Returns

Class

the storage engine to be used with this uploader

Examples

storage :file
storage CarrierWave::Storage::File
storage MyCustomStorageEngine


71
72
73
74
75
76
# File 'lib/carrierwave/uploader/configuration.rb', line 71

def storage(storage = nil)
  if storage
    self._storage = storage.is_a?(Symbol) ? eval(storage_engines[storage]) : storage
  end
  _storage
end