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 |
# File lib/data_mapper/associations/belongs_to_association.rb, line 120 120: def build(options) 121: @associated = association.associated_constant.new(options) 122: end
# File lib/data_mapper/associations/belongs_to_association.rb, line 120 120: def build(options) 121: @associated = association.associated_constant.new(options) 122: end
# File lib/data_mapper/associations/belongs_to_association.rb, line 116 116: def create(options) 117: @associated = association.associated_constant.create(options) 118: end
# File lib/data_mapper/associations/belongs_to_association.rb, line 116 116: def create(options) 117: @associated = association.associated_constant.create(options) 118: end
# File lib/data_mapper/associations/belongs_to_association.rb, line 146 146: def deactivate 147: end
# File lib/data_mapper/associations/belongs_to_association.rb, line 146 146: def deactivate 147: end
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# File lib/data_mapper/associations/belongs_to_association.rb, line 124 124: def setter_method 125: "#{@association_name}=".to_sym 126: end
# File lib/data_mapper/associations/belongs_to_association.rb, line 124 124: def setter_method 125: "#{@association_name}=".to_sym 126: end
# 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
# 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
# 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