Class: Droom::Folder
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Droom::Folder
- Defined in:
- app/models/droom/folder.rb
Instance Method Summary collapse
- #ancestor_of?(folder) ⇒ Boolean
- #copy_to_dav ⇒ Object
- #copy_to_dropbox(user) ⇒ Object
- #documents_zipped ⇒ Object
- #dropboxed_for?(user) ⇒ Boolean
- #empty? ⇒ Boolean
-
#family ⇒ Object
If we start to get deep folder trees we’ll have to use ancestry instead of acts_as_tree.
- #get_name_from_holder ⇒ Object
- #loose? ⇒ Boolean
- #path ⇒ Object
- #populated? ⇒ Boolean
- #simple? ⇒ Boolean
- #visible_to?(person) ⇒ Boolean
Instance Method Details
#ancestor_of?(folder) ⇒ Boolean
93 94 95 |
# File 'app/models/droom/folder.rb', line 93 def ancestor_of?(folder) folder && folder.ancestors.include?(self) end |
#copy_to_dav ⇒ Object
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_zipped ⇒ Object
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
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
76 77 78 |
# File 'app/models/droom/folder.rb', line 76 def empty? !populated? end |
#family ⇒ Object
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_holder ⇒ Object
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
89 90 91 |
# File 'app/models/droom/folder.rb', line 89 def loose? !parent end |
#path ⇒ Object
56 57 58 |
# File 'app/models/droom/folder.rb', line 56 def path "#{parent.path if parent}/#{slug}" end |
#populated? ⇒ Boolean
72 73 74 |
# File 'app/models/droom/folder.rb', line 72 def populated? children.any? || documents.any? end |
#simple? ⇒ Boolean
80 81 82 |
# File 'app/models/droom/folder.rb', line 80 def simple? children.empty? && documents.count <= 2 end |
#visible_to?(person) ⇒ Boolean
37 38 39 |
# File 'app/models/droom/folder.rb', line 37 def visible_to?(person) true end |