Module: ActiveFolder::Model::Traits::Collection

Includes:
Enumeration
Included in:
Base, Utilities::Folder
Defined in:
lib/activefolder/model/traits/collection.rb

Instance Method Summary collapse

Methods included from Enumeration

#all, #count, #find, #find!, #first, #last, #to_a, #where

Instance Method Details

#build(args) {|instance| ... } ⇒ Object

Yields:

  • (instance)


10
11
12
13
14
15
16
# 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) ⇒ Object



18
19
20
21
# File 'lib/activefolder/model/traits/collection.rb', line 18

def create(args, &block)
  instance = build(args, &block);
  instance.save; instance
end

#create!(args, &block) ⇒ Object



23
24
25
26
27
28
29
# 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_allObject



31
32
33
# File 'lib/activefolder/model/traits/collection.rb', line 31

def destroy_all
  all.each { |element| element.destroy }
end

#find_or_create(args, &block) ⇒ Object



35
36
37
# 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) ⇒ Object



39
40
41
# File 'lib/activefolder/model/traits/collection.rb', line 39

def find_or_initialize(args, &block)
  find(args[:name]) || build(args, &block)
end