56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
# File 'lib/arc_weld/relationship.rb', line 56
def register_relationship(name, multiple=false)
unless class_relationship_types.include?(name)
class_relationship_types << name
if ArcWeld::Relationships.const_defined? constantize(name)
self.class_eval "include ArcWeld::Relationships::#{constantize(name)}"
end
unless self.method_defined? name
if multiple
self.class_eval do
define_method("#{name}") do
val = self.instance_variable_get("@#{name}")
if val.nil?
self.instance_variable_set("@#{name}",[])
end
self.instance_variable_get("@#{name}")
end
end
else
self.class_eval do
define_method("#{name}") do
self.instance_variable_get("@#{name}")
end
end
end
end
unless self.method_defined? "#{name}="
self.class_eval do
define_method("#{name}=") do |val|
self.instance_variable_set("@#{name}",val)
end
end
end
end
end
|