Class: Droom::Folder

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/droom/folder.rb

Instance Method Summary collapse

Instance Method Details

#ancestor_of?(folder) ⇒ Boolean

Returns:

  • (Boolean)


93
94
95
# File 'app/models/droom/folder.rb', line 93

def ancestor_of?(folder)
  folder && folder.ancestors.include?(self)
end

#copy_to_davObject



106
107
108
# File 'app/models/droom/folder.rb', line 106

def copy_to_dav
  Rails.logger.warn ">>> copy folder #{@folder.inspect} to DAV"
end

#copy_to_dropbox(user) ⇒ Object



97
98
99
100
# File 'app/models/droom/folder.rb', line 97

def copy_to_dropbox(user)
  Rails.logger.warn ">>> creating dropbox subfolder #{slug} for user #{user.name}"
  documents.each { |doc| doc.copy_to_dropbox(user) }
end

#documents_zippedObject



60
61
62
63
64
65
66
67
68
69
70
# File 'app/models/droom/folder.rb', line 60

def documents_zipped
  if self.documents.any?
    tempfile = Tempfile.new("droom-temp-#{slug}-#{Time.now}.zip")
    Zip::ZipOutputStream.open(tempfile.path) do |z|
      self.documents.each do |doc|
        z.add(doc.file_file_name, doc.original_file)
      end
    end
    tempfile
  end
end

#dropboxed_for?(user) ⇒ Boolean

Returns:

  • (Boolean)


102
103
104
# File 'app/models/droom/folder.rb', line 102

def dropboxed_for?(user)
  # user.person && dropbox_documents.for_person(person).any?
end

#empty?Boolean

Returns:

  • (Boolean)


76
77
78
# File 'app/models/droom/folder.rb', line 76

def empty?
  !populated?
end

#familyObject

If we start to get deep folder trees we’ll have to use ancestry instead of acts_as_tree.



85
86
87
# File 'app/models/droom/folder.rb', line 85

def family
  self_and_children
end

#get_name_from_holderObject



110
111
112
113
# File 'app/models/droom/folder.rb', line 110

def get_name_from_holder
  send :set_properties
  self.save if self.changed?
end

#loose?Boolean

Returns:

  • (Boolean)


89
90
91
# File 'app/models/droom/folder.rb', line 89

def loose?
  !parent
end

#pathObject



56
57
58
# File 'app/models/droom/folder.rb', line 56

def path
  "#{parent.path if parent}/#{slug}"
end

#populated?Boolean

Returns:

  • (Boolean)


72
73
74
# File 'app/models/droom/folder.rb', line 72

def populated?
  children.any? || documents.any?
end

#simple?Boolean

Returns:

  • (Boolean)


80
81
82
# File 'app/models/droom/folder.rb', line 80

def simple?
  children.empty? && documents.count <= 2
end

#visible_to?(person) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
# File 'app/models/droom/folder.rb', line 37

def visible_to?(person)
  true
end