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

Inherits:
Collection 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

Attributes inherited from LazyArray

#head, #tail

Instance Method Summary collapse

Methods inherited from Collection

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

Methods inherited from LazyArray

#<<, #==, #[], #[]=, #any?, #at, #concat, #delete_at, #delete_if, #empty?, #eql?, #fetch, #first, #freeze, #frozen?, #include?, #index, #insert, #kind_of?, #last, #lazy_possible?, #load_with, #loaded?, #pop, #push, #respond_to?, #reverse, #reverse!, #shift, #slice!, #to_a, #unshift, #values_at

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.



165
166
167
# File 'lib/dm-core/associations/one_to_many.rb', line 165

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.



168
169
170
# File 'lib/dm-core/associations/one_to_many.rb', line 168

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:



198
199
200
201
# File 'lib/dm-core/associations/one_to_many.rb', line 198

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



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

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



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

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

#reloadObject



171
172
173
174
# File 'lib/dm-core/associations/one_to_many.rb', line 171

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:



185
186
187
188
# File 'lib/dm-core/associations/one_to_many.rb', line 185

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



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

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



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

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