Module: ActiveFolder::Model::Traits::Collection
Instance Method Summary
collapse
#all, #count, #find, #find!, #first, #last, #to_a, #where
Instance Method Details
#build(args) {|instance| ... } ⇒ Object
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_all ⇒ Object
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
|