module ActiveFolder::Model::Traits::Relation
Public Instance Methods
belongs_to(element)
click to toggle source
# File lib/activefolder/model/traits/relation.rb, line 21 def belongs_to element define_method element do element.to_class.find_by_path(self.path) end end
has_many(collection)
click to toggle source
# File lib/activefolder/model/traits/relation.rb, line 15 def has_many collection define_method collection do Utilities::Folder.new(self, collection) end end
has_one(element)
click to toggle source
# File lib/activefolder/model/traits/relation.rb, line 27 def has_one element define_method element do begin path = link_file(element).load element.to_class.load(path) rescue Metal::NotFoundError => _ end end define_method "#{element}=" do |value| link_file(element).save(value.path) end end
link_file(name)
click to toggle source
# File lib/activefolder/model/traits/relation.rb, line 43 def link_file name params = { dir: path, name: name.to_s } Metal::Files::Text.new(**params) end