module ActiveFolder::Model::Traits::Collection

Public Instance Methods

build(args) { |instance| ... } click to toggle source
# File lib/activefolder/model/traits/collection.rb, line 10
def build(args, &block)
  dir = File.join(model_base_dir, model_name)
  args = args.merge(base_dir: dir)

  instance = model_class.new(args)
  yield instance if block_given?; instance
end
create(args, &block) click to toggle source
# File lib/activefolder/model/traits/collection.rb, line 18
def create(args, &block)
  instance = build(args, &block);
  instance.save; instance
end
create!(args, &block) click to toggle source
# File lib/activefolder/model/traits/collection.rb, line 23
def create!(args, &block)
  if find args[:name]
    raise DuplicateError.new args[:name]
  end

  create(args, &block)
end
destroy_all() click to toggle source
# File lib/activefolder/model/traits/collection.rb, line 31
def destroy_all
  all.each { |element| element.destroy }
end
find_or_create(args, &block) click to toggle source
# File lib/activefolder/model/traits/collection.rb, line 35
def find_or_create(args, &block)
  find(args[:name]) || create(args, &block)
end
find_or_initialize(args, &block) click to toggle source
# File lib/activefolder/model/traits/collection.rb, line 39
def find_or_initialize(args, &block)
  find(args[:name]) || build(args, &block)
end