Class: DataMapper::Associations::ManyToOne::Proxy

  • Object
    • DataMapper::Associations::ManyToOne::Proxy

Constructor Summary

private initialize(relationship, child_resource)
[View source]


71
72
73
74
75
76
77
# File 'dm-core/lib/dm-core/associations/many_to_one.rb', line 71

def initialize(relationship, child_resource)
#          raise ArgumentError, "+relationship+ should be a DataMapper::Association::Relationship, but was #{relationship.class}", caller unless Relationship === relationship
#          raise ArgumentError, "+child_resource+ should be a DataMapper::Resource, but was #{child_resource.class}", caller              unless Resource     === child_resource

  @relationship   = relationship
  @child_resource = child_resource
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

private method_missing(method, *args, &block)
[View source]


83
84
85
# File 'dm-core/lib/dm-core/associations/many_to_one.rb', line 83

def method_missing(method, *args, &block)
  parent.__send__(method, *args, &block)
end

Public Visibility

Public Instance Method Summary

#reload!
#replace(parent_resource)
#save

Public Instance Methods Inherited from Object

validatable?

Public Instance Method Details

reload!

public reload!
[View source]


64
65
66
67
68
69
70
71
# File 'dm-core/lib/dm-core/associations/many_to_one.rb', line 64

def reload!




  @parent_resource = nil
  self
end

replace

public replace(parent_resource)
[View source]


50
51
52
53
# File 'dm-core/lib/dm-core/associations/many_to_one.rb', line 50

def replace(parent_resource)
  @parent_resource = parent_resource
  @relationship.attach_parent(@child_resource, @parent_resource) if @parent_resource.nil? || !@parent_resource.new_record?
end

save

public save
[View source]


55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'dm-core/lib/dm-core/associations/many_to_one.rb', line 55

def save




  if parent && parent.new_record?





    repository(@relationship.repository_name) do
      parent.save
      @relationship.attach_parent(@child_resource, parent)
    end
  end
end