Sha256: 99387e4068949d3a1285954fc1e00b860f0c7cbc836881ca44dbf2043f278671

Contents?: true

Size: 1.58 KB

Versions: 1

Compression:

Stored size: 1.58 KB

Contents

module ActiveMetadata::Persistence::Mongoid::Attachment

  def self.included(receiver)
    receiver.send :include, InstanceMethods
  end

  module InstanceMethods

    def save_attachment_for(field, file)
      label = ActiveMeta.find_or_create_by(:document_id => metadata_id).labels.find_or_create_by(:name => field.to_s)
      counter = label.attachments.count > 0 ? label.attachments.last.counter : 0
      attachment = Attachment.new(:attach => file, :counter => (counter + 1))
      label.attachments << attachment
      label.save
      
      self.send(:send_notification, field, "", attachment.attach.original_filename)
    end

    def attachments_for(field)
      label = ActiveMeta.find_or_create_by(:document_id => metadata_id).labels.find_or_create_by(:name => field.to_s)
      label.attachments.desc(:attach_updated_at).to_a
    end

    def delete_attachment_for(field,id)
      a = ActiveMeta.find_or_create_by(:document_id => metadata_id).labels.find_or_create_by(:name => field.to_s).attachments.find(id)
      filename = a.attach.original_filename
      a.destroy
      
      self.send(:send_notification, field, filename, "")
    end

    def update_attachment_for(field, id, newfile)
      a = ActiveMeta.find_or_create_by(:document_id => metadata_id).labels.find_or_create_by(:name => field.to_s).attachments.find(id)
      old_filename = a.attach.original_filename
      a.attach = newfile
      a.save                                            
      new_filename = a.attach.original_filename
      
      self.send(:send_notification, field, old_filename, new_filename)
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
active_metadata-0.1.9 lib/active_metadata/persistence/mongoid/attachment.rb