Class: DataMapper::Associations::OneToMany::Collection

Inherits:
Collection
  • Object
show all
Defined in:
lib/dm-core/associations/one_to_many.rb

Overview

class Relationship

Direct Known Subclasses

ManyToMany::Collection

Instance Attribute Summary collapse

Attributes inherited from Collection

#query

Instance Method Summary collapse

Methods inherited from Collection

#<<, #[], #[]=, #all, #at, #clean?, #collect!, #concat, #create, #create!, #delete, #delete_at, #delete_if, #dirty?, #first, #first_or_create, #first_or_new, #get, #get!, #insert, #inspect, #last, #model, #new, #pop, #properties, #push, #reject!, #relationships, #repository, #respond_to?, #reverse, #reverse!, #save, #save!, #shift, #slice!, #unshift

Methods included from Deprecate

#deprecate

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class DataMapper::Collection

Instance Attribute Details

#relationshipObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

TODO: document



206
207
208
# File 'lib/dm-core/associations/one_to_many.rb', line 206

def relationship
  @relationship
end

#sourceObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

TODO: document



210
211
212
# File 'lib/dm-core/associations/one_to_many.rb', line 210

def source
  @source
end

Instance Method Details

#clearCollection

Removes all Resources from the 1:m Collection

This should remove and orphan each Resource from the 1:m Collection.

Returns:



241
242
243
244
# File 'lib/dm-core/associations/one_to_many.rb', line 241

def clear
  lazy_load  # lazy load so that targets are always orphaned
  super
end

#destroyBoolean

Remove every Resource in the 1:m Collection from the repository

This performs a deletion of each Resource in the Collection from the repository and clears the Collection.

Returns:

  • (Boolean)

    true if the resources were successfully destroyed



283
284
285
286
# File 'lib/dm-core/associations/one_to_many.rb', line 283

def destroy
  assert_source_saved 'The source must be saved before mass-deleting the collection'
  super
end

#destroy!Boolean

Remove every Resource in the 1:m Collection from the repository, bypassing validation

This performs a deletion of each Resource in the Collection from the repository and clears the Collection while skipping validation.

Returns:

  • (Boolean)

    true if the resources were successfully destroyed



298
299
300
301
# File 'lib/dm-core/associations/one_to_many.rb', line 298

def destroy!
  assert_source_saved 'The source must be saved before mass-deleting the collection'
  super
end

#reloadObject

TODO: document



214
215
216
217
# File 'lib/dm-core/associations/one_to_many.rb', line 214

def reload(*)
  assert_source_saved 'The source must be saved before reloading the collection'
  super
end

#replaceCollection

Replace the Resources within the 1:m Collection

Parameters:

  • other (Enumerable)

    List of other Resources to replace with

Returns:



228
229
230
231
# File 'lib/dm-core/associations/one_to_many.rb', line 228

def replace(*)
  lazy_load  # lazy load so that targets are always orphaned
  super
end

#updateBoolean

Update every Resource in the 1:m Collection

Parameters:

  • attributes (Hash)

    attributes to update with

Returns:

  • (Boolean)

    true if the resources were successfully updated



255
256
257
258
# File 'lib/dm-core/associations/one_to_many.rb', line 255

def update(*)
  assert_source_saved 'The source must be saved before mass-updating the collection'
  super
end

#update!Boolean

Update every Resource in the 1:m Collection, bypassing validation

Parameters:

  • attributes (Hash)

    attributes to update

Returns:

  • (Boolean)

    true if the resources were successfully updated



269
270
271
272
# File 'lib/dm-core/associations/one_to_many.rb', line 269

def update!(*)
  assert_source_saved 'The source must be saved before mass-updating the collection'
  super
end