Sha256: 546386e4e7d74048ca6adeafd91a65f8a872803e9fa1ccd21b44629c06caaa66

Contents?: true

Size: 922 Bytes

Versions: 3

Compression:

Stored size: 922 Bytes

Contents

module Lanes

    class Asset < Lanes::Model

        mount_uploader :file, Lanes::Concerns::AssetUploader

        belongs_to :owner, polymorphic: true

        validates :owner,  set: true

        after_update :remove_changed_file, if: lambda{ file_changed? }

        def serializable_hash(options = nil)
            values = super
            values.delete('file')
            values.merge!(file.as_json[:file].stringify_keys)
            values['original'] = { 'url' => values.delete('url') }
            values
        end

        def store_uploaded_file(f)
            ext = File.extname(f[:filename])
            if ext.blank?
                ext = '.' + FastImage.type(f[:tempfile]).to_s
            end
            self[:file] = ::Lanes::Strings.random + ext
            file.store!(f)
        end

        protected

        def remove_changed_file
            self.file_was.remove!
        end

    end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lanes-0.5.6 lib/lanes/asset.rb
lanes-0.5.5 lib/lanes/asset.rb
lanes-0.5.0 lib/lanes/asset.rb