Class: ActiveRecord::Associations::AssociationCollection
- Inherits:
-
Object
- Object
- ActiveRecord::Associations::AssociationCollection
show all
- Defined in:
- lib/active_record/associations/association_collection.rb
Overview
Instance Method Summary
collapse
Constructor Details
#initialize(owner, association_name, association_class_name, association_class_primary_key_name, options) ⇒ AssociationCollection
Returns a new instance of AssociationCollection.
7
8
9
10
11
12
13
|
# File 'lib/active_record/associations/association_collection.rb', line 7
def initialize(owner, association_name, association_class_name, association_class_primary_key_name, options)
@owner = owner
@options = options
@association_name = association_name
@association_class = eval(association_class_name)
@association_class_primary_key_name = association_class_primary_key_name
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(symbol, *args, &block) ⇒ Object
15
16
17
18
|
# File 'lib/active_record/associations/association_collection.rb', line 15
def method_missing(symbol, *args, &block)
load_collection_to_array
@collection_array.send(symbol, *args, &block)
end
|
Instance Method Details
#concat(*records) ⇒ Object
33
34
35
36
|
# File 'lib/active_record/associations/association_collection.rb', line 33
def concat(*records)
records.flatten!
records.each {|record| self << record; }
end
|
#destroy_all ⇒ Object
38
39
40
41
42
|
# File 'lib/active_record/associations/association_collection.rb', line 38
def destroy_all
load_collection_to_array
@collection_array.each { |object| object.destroy }
@collection_array = []
end
|
#empty? ⇒ Boolean
48
49
50
|
# File 'lib/active_record/associations/association_collection.rb', line 48
def empty?
size == 0
end
|
#proxy_respond_to? ⇒ Object
4
|
# File 'lib/active_record/associations/association_collection.rb', line 4
alias_method :proxy_respond_to?, :respond_to?
|
#reload ⇒ Object
29
30
31
|
# File 'lib/active_record/associations/association_collection.rb', line 29
def reload
@collection_array = nil
end
|
#respond_to?(symbol) ⇒ Boolean
25
26
27
|
# File 'lib/active_record/associations/association_collection.rb', line 25
def respond_to?(symbol)
proxy_respond_to?(symbol) || [].respond_to?(symbol)
end
|
#size ⇒ Object
Also known as:
length
44
45
46
|
# File 'lib/active_record/associations/association_collection.rb', line 44
def size
(@collection_array.nil?) ? count_records : @collection_array.size
end
|
#to_ary ⇒ Object
20
21
22
23
|
# File 'lib/active_record/associations/association_collection.rb', line 20
def to_ary
load_collection_to_array
@collection_array.to_ary
end
|