Sha256: dc6a52d833bf2c5b59cd239880d0e61c7fec5a20ed061b351cb242f7b2b8efb8

Contents?: true

Size: 921 Bytes

Versions: 2

Compression:

Stored size: 921 Bytes

Contents

module Lolita
  module Upload
    class File < ActiveRecord::Base
      set_table_name :lolita_files

      mount_uploader :asset, FileUploader
      belongs_to :fileable, :polymorphic=>true

      validate :size_limit
      before_save :set_metadata
      

      private

      def size_limit
        if self.fileable && lolita=self.fileable.class.lolita
          maxsize=lolita.tabs.by_type(:files).maxfilesize
          if maxsize.to_i>0 && self.asset.file.size>maxsize
            bytes=Lolita::Support::Bytes.new(maxsize)
            self.errors.add(:asset,I18n.t("lolita.upload.errors.file too big",:value=>bytes.value,:unit=>bytes.unit))
          end
        end
      end

      def set_metadata
        self.name||=::File.basename(self.asset.store_path)
        self.asset_size=self.asset.file.size
        self.asset_extension=::File.extname(self.asset.store_path).gsub(".","")
      end

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
lolita-file-upload-0.1.3 app/models/lolita/upload/file.rb
lolita-file-upload-0.1.2 app/models/lolita/upload/file.rb