Sha256: 71e74ab41309a85bcaade41a4cdad8d27f38629af9210e73b18c74b8543b8cc7

Contents?: true

Size: 1.25 KB

Versions: 13

Compression:

Stored size: 1.25 KB

Contents

require 'active_support'

module CarrierWave
  module Uploader
    module FileSize
      extend ActiveSupport::Concern

      included do
        before :cache, :check_size!
      end

      ##
      # Override this method in your uploader to provide a Range of Size which
      # are allowed to be uploaded.
      # === Returns
      #
      # [NilClass, Range] a size range (in bytes) which are permitted to be uploaded
      #
      # === Examples
      #
      #     def size_range
      #       3256...5748
      #     end
      #
      def size_range; end

    private

      def check_size!(new_file)
        size = new_file.size
        expected_size_range = size_range
        if expected_size_range.is_a?(::Range)
          if size < expected_size_range.min
            raise CarrierWave::IntegrityError, I18n.translate(:"errors.messages.min_size_error", :min_size => ActiveSupport::NumberHelper.number_to_human_size(expected_size_range.min))
          elsif size > expected_size_range.max
            raise CarrierWave::IntegrityError, I18n.translate(:"errors.messages.max_size_error", :max_size => ActiveSupport::NumberHelper.number_to_human_size(expected_size_range.max))
          end
        end
      end

    end # FileSize
  end # Uploader
end # CarrierWave

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
carrierwave-3.1.1 lib/carrierwave/uploader/file_size.rb
carrierwave-3.1.0 lib/carrierwave/uploader/file_size.rb
carrierwave-3.1.0.rc lib/carrierwave/uploader/file_size.rb
carrierwave-3.1.0.beta lib/carrierwave/uploader/file_size.rb
carrierwave-3.0.7 lib/carrierwave/uploader/file_size.rb
carrierwave-3.0.6 lib/carrierwave/uploader/file_size.rb
carrierwave-3.0.5 lib/carrierwave/uploader/file_size.rb
carrierwave-3.0.4 lib/carrierwave/uploader/file_size.rb
carrierwave-3.0.3 lib/carrierwave/uploader/file_size.rb
carrierwave-3.0.2 lib/carrierwave/uploader/file_size.rb
carrierwave-3.0.1 lib/carrierwave/uploader/file_size.rb
carrierwave-3.0.0 lib/carrierwave/uploader/file_size.rb
carrierwave-3.0.0.rc lib/carrierwave/uploader/file_size.rb