Class DataMapper::Associations::BelongsToAssociation::Instance
In: lib/data_mapper/associations/belongs_to_association.rb
lib/data_mapper/associations/belongs_to_association.rb
Parent: Associations::Reference

Methods

Public Instance methods

[Source]

     # File lib/data_mapper/associations/belongs_to_association.rb, line 120
120:         def build(options)
121:           @associated = association.associated_constant.new(options)
122:         end

[Source]

     # File lib/data_mapper/associations/belongs_to_association.rb, line 120
120:         def build(options)
121:           @associated = association.associated_constant.new(options)
122:         end

[Source]

     # File lib/data_mapper/associations/belongs_to_association.rb, line 116
116:         def create(options)
117:           @associated = association.associated_constant.create(options)
118:         end

[Source]

     # File lib/data_mapper/associations/belongs_to_association.rb, line 116
116:         def create(options)
117:           @associated = association.associated_constant.create(options)
118:         end

[Source]

     # File lib/data_mapper/associations/belongs_to_association.rb, line 146
146:         def deactivate
147:         end

[Source]

     # File lib/data_mapper/associations/belongs_to_association.rb, line 146
146:         def deactivate
147:         end

[Source]

    # File lib/data_mapper/associations/belongs_to_association.rb, line 69
69:         def dirty?(cleared = ::Set.new)
70:           @associated && (@new_member || @key_not_set)
71:         end

[Source]

    # File lib/data_mapper/associations/belongs_to_association.rb, line 69
69:         def dirty?(cleared = ::Set.new)
70:           @associated && (@new_member || @key_not_set)
71:         end

[Source]

     # File lib/data_mapper/associations/belongs_to_association.rb, line 94
 94:         def instance
 95:           @associated || @associated = begin
 96:             if @instance.loaded_set.nil?
 97:               nil
 98:             else
 99: 
100:               # Temp variable for the instance variable name.
101:               fk = association.foreign_key_column.to_sym
102: 
103:               set = @instance.loaded_set.group_by { |instance| instance.send(fk) }
104: 
105:               @instance.database_context.all(association.constant, association.associated_table.key.to_sym => set.keys).each do |assoc|
106:                 set[assoc.key].each do |primary_instance|
107:                   primary_instance.send("#{@association_name}_association").shallow_append(assoc)
108:                 end
109:               end
110: 
111:               @associated
112:             end
113:           end
114:         end

[Source]

     # File lib/data_mapper/associations/belongs_to_association.rb, line 94
 94:         def instance
 95:           @associated || @associated = begin
 96:             if @instance.loaded_set.nil?
 97:               nil
 98:             else
 99: 
100:               # Temp variable for the instance variable name.
101:               fk = association.foreign_key_column.to_sym
102: 
103:               set = @instance.loaded_set.group_by { |instance| instance.send(fk) }
104: 
105:               @instance.database_context.all(association.constant, association.associated_table.key.to_sym => set.keys).each do |assoc|
106:                 set[assoc.key].each do |primary_instance|
107:                   primary_instance.send("#{@association_name}_association").shallow_append(assoc)
108:                 end
109:               end
110: 
111:               @associated
112:             end
113:           end
114:         end

[Source]

    # File lib/data_mapper/associations/belongs_to_association.rb, line 88
88:         def reload!
89:           @new_member = false
90:           @associated = nil
91:           instance
92:         end

[Source]

    # File lib/data_mapper/associations/belongs_to_association.rb, line 88
88:         def reload!
89:           @new_member = false
90:           @associated = nil
91:           instance
92:         end

[Source]

    # File lib/data_mapper/associations/belongs_to_association.rb, line 77
77:         def save_without_validation(database_context, cleared)
78:           @new_member = false
79:           unless @associated.nil?
80:             @instance.instance_variable_set(
81:               association.foreign_key_column.instance_variable_name,
82:               @associated.key
83:             )
84:             @instance.database_context.adapter.save_without_validation(database_context, @instance, cleared)
85:           end
86:         end

[Source]

    # File lib/data_mapper/associations/belongs_to_association.rb, line 77
77:         def save_without_validation(database_context, cleared)
78:           @new_member = false
79:           unless @associated.nil?
80:             @instance.instance_variable_set(
81:               association.foreign_key_column.instance_variable_name,
82:               @associated.key
83:             )
84:             @instance.database_context.adapter.save_without_validation(database_context, @instance, cleared)
85:           end
86:         end

[Source]

     # File lib/data_mapper/associations/belongs_to_association.rb, line 128
128:         def set(member)
129:           shallow_append(member)
130: 
131:           if complement = association.complementary_association
132:             member.send(complement.name).shallow_append(@instance)
133:           end
134: 
135:           return self
136:         end

[Source]

     # File lib/data_mapper/associations/belongs_to_association.rb, line 128
128:         def set(member)
129:           shallow_append(member)
130: 
131:           if complement = association.complementary_association
132:             member.send(complement.name).shallow_append(@instance)
133:           end
134: 
135:           return self
136:         end

[Source]

     # File lib/data_mapper/associations/belongs_to_association.rb, line 124
124:         def setter_method
125:           "#{@association_name}=".to_sym
126:         end

[Source]

     # File lib/data_mapper/associations/belongs_to_association.rb, line 124
124:         def setter_method
125:           "#{@association_name}=".to_sym
126:         end

[Source]

     # File lib/data_mapper/associations/belongs_to_association.rb, line 138
138:         def shallow_append(val)
139:           raise RecursionError.new if val == @instance
140:           @instance.instance_variable_set(association.foreign_key_column.instance_variable_name, val.key)
141:           @associated = val
142:           @key_not_set = true if val.key.nil?
143:           return self
144:         end

[Source]

     # File lib/data_mapper/associations/belongs_to_association.rb, line 138
138:         def shallow_append(val)
139:           raise RecursionError.new if val == @instance
140:           @instance.instance_variable_set(association.foreign_key_column.instance_variable_name, val.key)
141:           @associated = val
142:           @key_not_set = true if val.key.nil?
143:           return self
144:         end

[Source]

    # File lib/data_mapper/associations/belongs_to_association.rb, line 73
73:         def validate_recursively(event, cleared)
74:           @associated.nil? || cleared.include?(@associated) || @associated.validate_recursively(event, cleared)
75:         end

[Source]

    # File lib/data_mapper/associations/belongs_to_association.rb, line 73
73:         def validate_recursively(event, cleared)
74:           @associated.nil? || cleared.include?(@associated) || @associated.validate_recursively(event, cleared)
75:         end

[Validate]