diff --git a/lib/build_associated.rb b/lib/build_associated.rb index 5e4de65..fb4e33d 100644 --- a/lib/build_associated.rb +++ b/lib/build_associated.rb @@ -5,13 +5,21 @@ module BuildAssociated module ClassMethods def build_associated association_name - alias_method "_#{association_name}", association_name - remove_method association_name + begin + alias_method "_#{association_name}", association_name + remove_method(association_name) - define_method association_name do - obj = self.send("_#{association_name}") - obj ||= self.send("build_#{association_name}") unless self.frozen? or self.readonly? - return obj + define_method association_name do + obj = self.send("_#{association_name}") || super + obj ||= self.send("build_#{association_name}") unless self.frozen? or self.readonly? + return obj + end + rescue NameError + define_method association_name do + obj = super + obj ||= self.send("build_#{association_name}") unless self.frozen? or self.readonly? + return obj + end end end end diff --git a/lib/build_associated/version.rb b/lib/build_associated/version.rb index 676af89..6ad6bec 100644 --- a/lib/build_associated/version.rb +++ b/lib/build_associated/version.rb @@ -1,3 +1,3 @@ module BuildAssociated - VERSION = "1.0.1" + VERSION = "1.1.2" end