Class: Droom::Folder
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Droom::Folder
- Includes:
- ActsAsTree, Concerns::Slugged
- Defined in:
- app/models/droom/folder.rb
Instance Method Summary collapse
- #ancestor_of?(folder) ⇒ Boolean
- #copy_to_dropbox(user) ⇒ 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?(user) ⇒ Boolean
Instance Method Details
#ancestor_of?(folder) ⇒ Boolean
85 86 87 |
# File 'app/models/droom/folder.rb', line 85 def ancestor_of?(folder) folder && folder.ancestors.include?(self) end |
#copy_to_dropbox(user) ⇒ Object
89 90 91 92 |
# File 'app/models/droom/folder.rb', line 89 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 |
#dropboxed_for?(user) ⇒ Boolean
94 95 96 |
# File 'app/models/droom/folder.rb', line 94 def dropboxed_for?(user) # dropbox_documents.for_user(user).any? end |
#empty? ⇒ Boolean
68 69 70 |
# File 'app/models/droom/folder.rb', line 68 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.
77 78 79 |
# File 'app/models/droom/folder.rb', line 77 def family self_and_children end |
#get_name_from_holder ⇒ Object
98 99 100 101 |
# File 'app/models/droom/folder.rb', line 98 def get_name_from_holder send :set_properties self.save if self.changed? end |
#loose? ⇒ Boolean
81 82 83 |
# File 'app/models/droom/folder.rb', line 81 def loose? !parent end |
#path ⇒ Object
60 61 62 |
# File 'app/models/droom/folder.rb', line 60 def path "#{parent.path if parent}/#{slug}" end |
#populated? ⇒ Boolean
64 65 66 |
# File 'app/models/droom/folder.rb', line 64 def populated? children.any? || documents.any? end |
#simple? ⇒ Boolean
72 73 74 |
# File 'app/models/droom/folder.rb', line 72 def simple? children.empty? && documents.count <= 3 end |
#visible_to?(user) ⇒ Boolean
38 39 40 41 42 43 44 45 |
# File 'app/models/droom/folder.rb', line 38 def visible_to?(user) return true if self.public? return false unless user return true if user.admin? return true if user.has_folder?(self) return false if self.private? return true end |