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