lib/active_data/model/attributes/reflections/represents.rb in active_data-1.0.0 vs lib/active_data/model/attributes/reflections/represents.rb in active_data-1.1.0

- old
+ new

@@ -1,23 +1,22 @@ module ActiveData module Model module Attributes module Reflections class Represents < Attribute - def self.build target, generated_methods, name, *args, &block + def self.build(target, generated_methods, name, *args, &block) options = args.extract_options! reference = target.reflect_on_association(options[:of]) if target.respond_to?(:reflect_on_association) reference ||= target.reflect_on_attribute(options[:of]) if target.respond_to?(:reflect_on_attribute) - if reference - options[:of] = reference.name - target.validates_nested options[:of] - end + options[:of] = reference.name if reference + validates_nested = target.respond_to?(:validates_nested) && !target.validates_nested?(options[:of]) + target.validates_nested(options[:of]) if validates_nested super(target, generated_methods, name, *args, options, &block) end - def initialize name, options + def initialize(name, options) super raise ArgumentError, "Undefined reference for `#{name}`" if reference.blank? end def type